>4
+
+ if(track.overlay)
+ track.overlay=null
+ var/image/I = image(icon, icon_state=state, dir=num2dir(truedir))
+ I.color = track.basecolor
+
+ track.fresh=0
+ track.overlay=I
+ stack[stack_idx]=track
+ overlays += I
+ updatedtracks=0 // Clear our memory of updated tracks.
+
+/obj/effect/decal/cleanable/blood/tracks/footprints
+ name = "wet footprints"
+ desc = "Whoops..."
+ coming_state = "human1"
+ going_state = "human2"
+ amount = 0
+
+/obj/effect/decal/cleanable/blood/tracks/wheels
+ name = "wet tracks"
+ desc = "Whoops..."
+ coming_state = "wheels"
+ going_state = ""
+ desc = "They look like tracks left by wheels."
+ gender = PLURAL
+ random_icon_states = null
+ amount = 0
\ No newline at end of file
diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm
index ae8fc7220a..619935b8b2 100644
--- a/code/game/objects/effects/gibs.dm
+++ b/code/game/objects/effects/gibs.dm
@@ -1,8 +1,8 @@
/proc/gibs(atom/location, var/list/viruses, var/datum/dna/MobDNA) //CARN MARKER
new /obj/effect/gibspawner/generic(get_turf(location),viruses,MobDNA)
-/proc/hgibs(atom/location, var/list/viruses, var/datum/dna/MobDNA)
- new /obj/effect/gibspawner/human(get_turf(location),viruses,MobDNA)
+/proc/hgibs(atom/location, var/list/viruses, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
+ new /obj/effect/gibspawner/human(get_turf(location),viruses,MobDNA,fleshcolor,bloodcolor)
/proc/xgibs(atom/location, var/list/viruses)
new /obj/effect/gibspawner/xeno(get_turf(location),viruses)
@@ -16,10 +16,15 @@
var/list/gibtypes = list()
var/list/gibamounts = list()
var/list/gibdirections = list() //of lists
+ var/fleshcolor //Used for gibbed humans.
+ var/bloodcolor //Used for gibbed humans.
- New(location, var/list/viruses, var/datum/dna/MobDNA)
+ New(location, var/list/viruses, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
..()
+ if(fleshcolor) src.fleshcolor = fleshcolor
+ if(bloodcolor) src.bloodcolor = bloodcolor
+
if(istype(loc,/turf)) //basically if a badmin spawns it
Gib(loc,viruses,MobDNA)
@@ -44,6 +49,14 @@
var/gibType = gibtypes[i]
gib = new gibType(location)
+ // Apply human species colouration to masks.
+ if(fleshcolor)
+ gib.fleshcolor = fleshcolor
+ if(bloodcolor)
+ gib.basecolor = bloodcolor
+
+ gib.update_icon()
+
if(viruses.len > 0)
for(var/datum/disease/D in viruses)
if(prob(virusProb))
diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm
index c519439237..5446ba348e 100644
--- a/code/game/objects/effects/spawners/gibspawner.dm
+++ b/code/game/objects/effects/spawners/gibspawner.dm
@@ -17,7 +17,7 @@
..()
xeno
- gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up,/obj/effect/decal/cleanable/xenoblood/xgibs/down,/obj/effect/decal/cleanable/xenoblood/xgibs,/obj/effect/decal/cleanable/xenoblood/xgibs,/obj/effect/decal/cleanable/xenoblood/xgibs/body,/obj/effect/decal/cleanable/xenoblood/xgibs/limb,/obj/effect/decal/cleanable/xenoblood/xgibs/core)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up,/obj/effect/decal/cleanable/blood/gibs/xeno/down,/obj/effect/decal/cleanable/blood/gibs/xeno,/obj/effect/decal/cleanable/blood/gibs/xeno,/obj/effect/decal/cleanable/blood/gibs/xeno/body,/obj/effect/decal/cleanable/blood/gibs/xeno/limb,/obj/effect/decal/cleanable/blood/gibs/xeno/core)
gibamounts = list(1,1,1,1,1,1,1)
New()
@@ -27,7 +27,7 @@
robot
sparks = 1
- gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up,/obj/effect/decal/cleanable/robot_debris/down,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris,/obj/effect/decal/cleanable/robot_debris/limb)
+ gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/robot/up,/obj/effect/decal/cleanable/blood/gibs/robot/down,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot/limb)
gibamounts = list(1,1,1,1,1,1)
New()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 16e5ef3a9a..e93c1846c1 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -1,7 +1,7 @@
/obj/item
name = "item"
icon = 'icons/obj/items.dmi'
- var/icon/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
+ var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
var/abstract = 0
var/item_state = null
var/r_speed = 1.0
@@ -569,6 +569,7 @@
//apply the blood-splatter overlay if it isn't already in there
if(!blood_DNA.len)
+ blood_overlay.color = blood_color
overlays += blood_overlay
//if this blood isn't already in the list, add it
@@ -589,4 +590,17 @@
//not sure if this is worth it. It attaches the blood_overlay to every item of the same type if they don't have one already made.
for(var/obj/item/A in world)
if(A.type == type && !A.blood_overlay)
- A.blood_overlay = I
\ No newline at end of file
+ A.blood_overlay = image(I)
+
+/obj/item/proc/showoff(mob/user)
+ for (var/mob/M in view(user))
+ M.show_message("[user] holds up [src]. Take a closer look.",1)
+
+/mob/living/carbon/verb/showoff()
+ set name = "Show Held Item"
+ set category = "Object"
+
+ var/obj/item/I = get_active_hand()
+ if(I && !I.abstract)
+ I.showoff(src)
+
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index ad757325b9..ee73d537d8 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -80,6 +80,7 @@
if(instant || do_after(user, 50))
new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype)
user << "You finish drawing."
+ target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on.
if(uses)
uses--
if(!uses)
@@ -97,4 +98,4 @@
user << "\red You ate your crayon!"
del(src)
else
- ..()
\ No newline at end of file
+ ..()
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 2750af1b05..b875ed8076 100755
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -26,7 +26,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
var/f_lum = 2 //Luminosity for the flashlight function
var/silent = 0 //To beep or not to beep, that is the question
var/toff = 0 //If 1, messenger disabled
- var/tnote = null //Current Texts
+ var/tnote[0] //Current Texts
var/last_text //No text spamming
var/last_honk //Also no honk spamming that's bad too
var/ttone = "beep" //The ringtone!
@@ -38,7 +38,10 @@ var/global/list/obj/item/device/pda/PDAs = list()
var/cart = "" //A place to stick cartridge menu information
var/detonate = 1 // Can the PDA be blown up?
var/hidden = 0 // Is the PDA hidden from the PDA list?
-
+ var/active_conversation = null // New variable that allows us to only view a single conversation.
+ var/list/conversations = list() // For keeping up with who we have PDA messsages from.
+ var/newmessage = 0 //To remove hackish overlay check
+
var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both.
var/ownjob = null //related to above
@@ -243,7 +246,13 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(usr.stat == 2)
usr << "You can't do that because you are dead!"
return
- var/HTML = "AI PDA Message Log[tnote]"
+ var/HTML = "AI PDA Message Log"
+ for(var/index in tnote)
+ if(index["sent"])
+ HTML += addtext("→ To ", index["owner"],":
", index["message"], "
")
+ else
+ HTML += addtext("← From ", index["owner"],":
", index["message"], "
")
+ HTML +=""
usr << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
@@ -310,6 +319,180 @@ var/global/list/obj/item/device/pda/PDAs = list()
return attack_self(M)
return
+
+
+
+/* Notes for those wanting to modify this code or even understand it.
+ There are two modes: New UI and a UI already existing.
+ If the UI is new, you define your variables, if the ui already exists if it didn't have variables in data for what you want to add
+ then it won't add it even if you make a data["blahblah"] for it. That's the reason for the = null all over the place, so that.
+ ui.push_data(data) proc has to have the var structure already setup otherwise it can't push the update.
+
+ The exception to the "YOU HAVE TO DEFINE IT" rule is cartridges, we later force
+ the ui to close if a cartridge is inserted so that never will be a problem.
+ So there will never be a time a UI creation causes that to be a problem.
+*/
+
+/obj/item/device/pda/ui_interact(mob/user, ui_key = "main")
+ var/title = "Personal Data Assistant"
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
+
+ var/data[0] // This is the data that will be sent to the PDA
+
+
+ data["owner"] = owner // Who is your daddy...
+ data["ownjob"] = ownjob // ...and what does he do?
+
+ data["mode"] = mode // The current view
+ data["scanmode"] = scanmode // Scanners
+ data["fon"] = fon // Flashlight on?
+ data["pai"] = (isnull(pai) ? 0 : 1) // pAI inserted?
+ data["note"] = note // current pda notes
+ data["silent"] = silent // does the pda make noise when it receives a message?
+ data["toff"] = toff // is the messenger function turned off?
+ data["active_conversation"] = active_conversation // Which conversation are we following right now?
+
+
+ data["idInserted"] = (id ? 1 : 0)
+ data["idLink"] = (id ? text("[id.registered_name], [id.assignment]") : "--------")
+
+
+ if(cartridge)
+ var/cartdata[0]
+
+
+ data["records"] = cartridge.create_NanoUI_values()
+
+
+ cartdata["name"] = cartridge.name
+ cartdata["access"] = list(\
+ "access_security" = cartridge.access_security,\
+ "access_engine" = cartridge.access_engine,\
+ "access_atmos" = cartridge.access_atmos,\
+ "access_medical" = cartridge.access_medical,\
+ "access_clown" = cartridge.access_clown,\
+ "access_mime" = cartridge.access_mime,\
+ "access_janitor" = cartridge.access_janitor,\
+ "access_quartermaster" = cartridge.access_quartermaster,\
+ "access_hydroponics" = cartridge.access_hydroponics,\
+ "access_reagent_scanner" = cartridge.access_reagent_scanner,\
+ "access_remote_door" = cartridge.access_remote_door,\
+ "access_status_display" = cartridge.access_status_display\
+ )
+ if(isnull(cartridge.radio))
+ cartdata["radio"] = 0
+ else
+ if(istype(cartridge.radio, /obj/item/radio/integrated/beepsky))
+ cartdata["radio"] = 1
+ if(istype(cartridge.radio, /obj/item/radio/integrated/signal))
+ cartdata["radio"] = 2
+ if(istype(cartridge.radio, /obj/item/radio/integrated/mule))
+ cartdata["radio"] = 3
+
+ cartdata["type"] = cartridge.type
+ cartdata["charges"] = cartridge.charges ? cartridge.charges : 0
+ data["cartridge"] = cartdata
+
+
+
+
+
+ data["stationTime"] = worldtime2text()
+ data["newMessage"] = newmessage
+
+
+
+ var/convopdas[0]
+ var/pdas[0]
+ var/count = 0
+ for (var/obj/item/device/pda/P in sortAtom(PDAs))
+ if (!P.owner||P.toff||P == src||P.hidden) continue
+ if(conversations.Find("\ref[P]"))
+ convopdas.Add(list(list("Name" = "[P]", "Reference" = "\ref[P]", "Detonate" = "[P.detonate]", "inconvo" = "1")))
+ else
+ pdas.Add(list(list("Name" = "[P]", "Reference" = "\ref[P]", "Detonate" = "[P.detonate]", "inconvo" = "0")))
+ count++
+
+ data["convopdas"] = convopdas
+ data["pdas"] = pdas
+ data["pda_count"] = count
+
+ if(mode==21)
+ data["messagescount"] = tnote.len
+ data["messages"] = tnote
+ else
+ data["messagescount"] = null
+ data["messages"] = null
+
+ var/found = 0
+ if(active_conversation)
+ for(var/c in tnote)
+ if(c["target"] == active_conversation)
+ data["convo_name"] = sanitize(c["owner"])
+ data["convo_job"] = sanitize(c["job"])
+ found = 1
+ break
+ if(!found)
+ data["convo_name"] = null
+ data["convo_job"] = null
+
+ if(!ui || mode==41)
+ data["manifest"] = data_core.get_manifest_json()
+
+
+ if(!ui || mode==3)
+ var/turf/T = get_turf_or_move(user.loc)
+ if(!isnull(T) || mode!=3)
+ var/datum/gas_mixture/environment = T.return_air()
+
+ var/pressure = environment.return_pressure()
+ var/total_moles = environment.total_moles()
+
+ if (total_moles)
+ var/o2_level = environment.oxygen/total_moles
+ var/n2_level = environment.nitrogen/total_moles
+ var/co2_level = environment.carbon_dioxide/total_moles
+ var/plasma_level = environment.toxins/total_moles
+ var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
+ data["aircontents"] = list(\
+ "pressure" = "[round(pressure,0.1)]",\
+ "nitrogen" = "[round(n2_level*100,0.1)]",\
+ "oxygen" = "[round(o2_level*100,0.1)]",\
+ "carbon_dioxide" = "[round(co2_level*100,0.1)]",\
+ "plasma" = "[round(plasma_level*100,0.01)]",\
+ "other" = "[round(unknown_level, 0.01)]",\
+ "temp" = "[round(environment.temperature-T0C,0.1)]",\
+ "reading" = 1\
+ )
+ if(isnull(data["aircontents"]))
+ data["aircontents"] = list(\
+ "pressure" = null,\
+ "nitrogen" = null,\
+ "oxygen" = null,\
+ "carbon_dioxide" = null,\
+ "plasma" = null,\
+ "other" = null,\
+ "temp" = null,\
+ "reading" = 0\
+ )
+
+
+
+
+ if (!ui)
+ // the ui does not exist, so we'll create a new one
+ ui = new(user, src, ui_key, "pda.tmpl", title, 630, 600)
+ // When the UI is first opened this is the data it will use
+ ui.set_initial_data(data)
+ ui.open()
+ ui.set_auto_update(1)
+ else
+ // The UI is already open so push the new data to it
+ ui.push_data(data)
+ return
+
+
+
//NOTE: graphic resources are loaded on client login
/obj/item/device/pda/attack_self(mob/user as mob)
@@ -318,203 +501,21 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(active_uplink_check(user))
return
- var/dat = "Personal Data Assistant"
-
- dat += "
Close"
-
- if ((!isnull(cartridge)) && (mode == 0))
- dat += " |
Eject [cartridge]"
- if (mode)
- dat += " |
Return"
- dat += " |
Refresh"
-
- dat += "
"
-
- if (!owner)
- dat += "Warning: No owner information entered. Please swipe card.
"
- dat += "
Retry"
- else
- switch (mode)
- if (0)
- dat += "PERSONAL DATA ASSISTANT v.1.2
"
- dat += "Owner: [owner], [ownjob]
"
- dat += text("ID: [id ? "[id.registered_name], [id.assignment]" : "----------"]")
- dat += text("
[id ? "Update PDA Info" : ""]
")
-
- dat += "Station Time: [worldtime2text()]"//:[world.time / 100 % 6][world.time / 100 % 10]"
-
- dat += "
"
-
- dat += "General Functions
"
- dat += ""
- if (cartridge.access_engine)
- dat += "Engineering Functions
"
- dat += ""
- if (cartridge.access_medical)
- dat += "Medical Functions
"
- dat += ""
- if (cartridge.access_security)
- dat += "Security Functions
"
- dat += ""
- else dat += ""
- if(cartridge.access_quartermaster)
- dat += "Quartermaster Functions:
"
- dat += ""
- dat += ""
-
- dat += "Utilities
"
- dat += ""
-
- if (1)
- dat += "
Notekeeper V2.1
"
- dat += " Edit
"
- dat += note
-
- if (2)
- dat += "
SpaceMessenger V3.9.4
"
- dat += "
Ringer: [silent == 1 ? "Off" : "On"] | "
- dat += "
Send / Receive: [toff == 1 ? "Off" : "On"] | "
- dat += "
Set Ringtone | "
- dat += "
Messages
"
-
- if (istype(cartridge, /obj/item/weapon/cartridge/syndicate))
- dat += "[cartridge:shock_charges] detonation charges left.
"
- if (istype(cartridge, /obj/item/weapon/cartridge/clown))
- dat += "[cartridge:honk_charges] viral files left.
"
- if (istype(cartridge, /obj/item/weapon/cartridge/mime))
- dat += "[cartridge:mime_charges] viral files left.
"
-
- dat += "
Detected PDAs
"
-
- dat += ""
-
- var/count = 0
-
- if (!toff)
- for (var/obj/item/device/pda/P in sortAtom(PDAs))
- if (!P.owner||P.toff||P == src||P.hidden) continue
- dat += "- [P]"
- if (istype(cartridge, /obj/item/weapon/cartridge/syndicate) && P.detonate)
- dat += " (
*Detonate*)"
- if (istype(cartridge, /obj/item/weapon/cartridge/clown))
- dat += " (
*Send Virus*)"
- if (istype(cartridge, /obj/item/weapon/cartridge/mime))
- dat += " (*Send Virus*)"
- dat += " "
- count++
- dat += "
"
- if (count == 0)
- dat += "None detected.
"
-
- if(21)
- dat += "
SpaceMessenger V3.9.4
"
- dat += "
Clear Messages"
-
- dat += "
Messages
"
-
- dat += tnote
- dat += "
"
-
- if (3)
- dat += "
Atmospheric Readings
"
-
- var/turf/T = get_turf_or_move(user.loc)
- if (isnull(T))
- dat += "Unable to obtain a reading.
"
- else
- var/datum/gas_mixture/environment = T.return_air()
-
- var/pressure = environment.return_pressure()
- var/total_moles = environment.total_moles()
-
- dat += "Air Pressure: [round(pressure,0.1)] kPa
"
-
- if (total_moles)
- var/o2_level = environment.oxygen/total_moles
- var/n2_level = environment.nitrogen/total_moles
- var/co2_level = environment.carbon_dioxide/total_moles
- var/plasma_level = environment.toxins/total_moles
- var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
- dat += "Nitrogen: [round(n2_level*100)]%
"
- dat += "Oxygen: [round(o2_level*100)]%
"
- dat += "Carbon Dioxide: [round(co2_level*100)]%
"
- dat += "Plasma: [round(plasma_level*100)]%
"
- if(unknown_level > 0.01)
- dat += "OTHER: [round(unknown_level)]%
"
- dat += "Temperature: [round(environment.temperature-T0C)]°C
"
- dat += "
"
-
- if (5)
- dat += "
Nanotrasen Relay Chat
"
-
- dat += "
Detected Channels
: "
- for(var/datum/chatroom/C in chatrooms)
- dat += "#[html_encode(lowertext(C.name))]"
- if(C.password != "")
- dat += "
"
- dat += ""
-
- if (41) //crew manifest
- dat += "
Crew Manifest
"
- dat += "Entries cannot be modified from this terminal.
"
- if(data_core)
- dat += data_core.get_manifest(1) // make it monochrome
- dat += "
"
-
- else//Else it links to the cart menu proc. Although, it really uses menu hub 4--menu 4 doesn't really exist as it simply redirects to hub.
- dat += cart
-
- dat += ""
- user << browse(dat, "window=pda;size=400x444;border=1;can_resize=1;can_close=0;can_minimize=0")
- onclose(user, "pda", src)
+ ui_interact(user) //NanoUI requires this proc
+ return
/obj/item/device/pda/Topic(href, href_list)
+ if(href_list["cartmenu"] && !isnull(cartridge))
+ cartridge.Topic(href, href_list)
+ return 1
+ if(href_list["radiomenu"] && !isnull(cartridge) && !isnull(cartridge.radio))
+ cartridge.radio.Topic(href, href_list)
+ return 1
+
+
..()
+ var/mob/user = usr
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
var/mob/living/U = usr
//Looking for master was kind of pointless since PDAs don't appear to have one.
//if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ) )
@@ -531,7 +532,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if("Close")//Self explanatory
U.unset_machine()
- U << browse(null, "window=pda")
+ ui.close()
return
if("Refresh")//Refresh, goes to the end of the proc.
if("Return")//Return
@@ -539,11 +540,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
mode = 0
else
mode = round(mode/10)
+ if(mode==2)
+ active_conversation = null
if(mode==4)//Fix for cartridges. Redirects to hub.
mode = 0
else if(mode >= 40 && mode <= 49)//Fix for cartridges. Redirects to refresh the menu.
cartridge.mode = mode
- cartridge.unlock()
if ("Authenticate")//Checks for ID
id_check(U, 1)
if("UpdateInfo")
@@ -555,6 +557,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(ismob(T))
T = T.loc
cartridge.loc = T
+ ui.close()
+ mode = 0
scanmode = 0
if (cartridge.radio)
cartridge.radio.hostpda = null
@@ -623,60 +627,85 @@ var/global/list/obj/item/device/pda/PDAs = list()
if (in_range(src, U) && loc == U)
n = copytext(adminscrub(n), 1, MAX_MESSAGE_LEN)
if (mode == 1)
- note = replacetext(n, "\n", "
")
- notehtml = n
+ note = html_decode(n)
+ notehtml = note
+ note = replacetext(note, "\n", "
")
else
- U << browse(null, "window=pda")
- return
+ ui.close()
if("Toggle Messenger")
toff = !toff
if("Toggle Ringer")//If viewing texts then erase them, if not then toggle silent status
silent = !silent
if("Clear")//Clears messages
- tnote = null
+ if(href_list["option"] == "All")
+ tnote.Cut()
+ conversations.Cut()
+ if(href_list["option"] == "Convo")
+ var/new_tnote[0]
+ for(var/i in tnote)
+ if(i["target"] != active_conversation)
+ new_tnote[++new_tnote.len] = i
+ tnote = new_tnote
+ conversations.Remove(active_conversation)
+
+ active_conversation = null
+ if(mode==21)
+ mode=2
+
if("Ringtone")
var/t = input(U, "Please enter new ringtone", name, ttone) as text
if (in_range(src, U) && loc == U)
if (t)
if(src.hidden_uplink && hidden_uplink.check_trigger(U, lowertext(t), lowertext(lock_code)))
U << "The PDA softly beeps."
- U << browse(null, "window=pda")
+ ui.close()
else
t = copytext(sanitize(t), 1, 20)
ttone = t
else
- U << browse(null, "window=pda")
+ ui.close()
return
if("Message")
+
var/obj/item/device/pda/P = locate(href_list["target"])
src.create_message(U, P)
+ if(mode == 2)
+ if(href_list["target"] in conversations) // Need to make sure the message went through, if not welp.
+ active_conversation = href_list["target"]
+ mode = 21
+ if("Select Conversation")
+ var/P = href_list["convo"]
+ for(var/n in conversations)
+ if(P == n)
+ active_conversation=P
+ mode=21
if("Send Honk")//Honk virus
if(istype(cartridge, /obj/item/weapon/cartridge/clown))//Cartridge checks are kind of unnecessary since everything is done through switch.
var/obj/item/device/pda/P = locate(href_list["target"])//Leaving it alone in case it may do something useful, I guess.
if(!isnull(P))
- if (!P.toff && cartridge:honk_charges > 0)
- cartridge:honk_charges--
+ if (!P.toff && cartridge.charges > 0)
+ cartridge.charges--
U.show_message("\blue Virus sent!", 1)
P.honkamt = (rand(15,20))
else
U << "PDA not found."
else
- U << browse(null, "window=pda")
+ ui.close()
return
if("Send Silence")//Silent virus
if(istype(cartridge, /obj/item/weapon/cartridge/mime))
var/obj/item/device/pda/P = locate(href_list["target"])
if(!isnull(P))
- if (!P.toff && cartridge:mime_charges > 0)
- cartridge:mime_charges--
+ if (!P.toff && cartridge.charges > 0)
+ cartridge.charges--
U.show_message("\blue Virus sent!", 1)
P.silent = 1
P.ttone = "silence"
else
U << "PDA not found."
else
- U << browse(null, "window=pda")
+ ui.close()
return
@@ -695,8 +724,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(istype(cartridge, /obj/item/weapon/cartridge/syndicate))
var/obj/item/device/pda/P = locate(href_list["target"])
if(!isnull(P))
- if (!P.toff && cartridge:shock_charges > 0)
- cartridge:shock_charges--
+ if (!P.toff && cartridge.charges > 0)
+ cartridge.charges--
var/difficulty = 0
@@ -713,7 +742,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
U.show_message("\red An error flashes on your [src].", 1)
else if (prob(difficulty * 3))
U.show_message("\red Energy feeds back into your [src]!", 1)
- U << browse(null, "window=pda")
+ ui.close()
explode()
log_admin("[key_name(U)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up")
message_admins("[key_name_admin(U)] just attempted to blow up [P] with the Detomatix cartridge but failed, blowing themselves up", 1)
@@ -726,7 +755,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
U << "PDA not found."
else
U.unset_machine()
- U << browse(null, "window=pda")
+ ui.close()
return
//pAI FUNCTIONS===================================
@@ -738,33 +767,31 @@ var/global/list/obj/item/device/pda/PDAs = list()
var/turf/T = get_turf_or_move(src.loc)
if(T)
pai.loc = T
+ pai = null
-//LINK FUNCTIONS===================================
-
- else//Cartridge menu linking
+ else
mode = text2num(href_list["choice"])
- cartridge.mode = mode
- cartridge.unlock()
+ if(cartridge)
+ cartridge.mode = mode
+
+
else//If not in range or not using the pda.
U.unset_machine()
- U << browse(null, "window=pda")
+ ui.close()
return
//EXTRA FUNCTIONS===================================
if (mode == 2||mode == 21)//To clear message overlays.
overlays.Cut()
+ newmessage = 0
if ((honkamt > 0) && (prob(60)))//For clown virus.
honkamt--
playsound(loc, 'sound/items/bikehorn.ogg', 30, 1)
- if(U.machine == src && href_list["skiprefresh"]!="1")//Final safety.
- attack_self(U)//It auto-closes the menu prior if the user is not in range and so on.
- else
- U.unset_machine()
- U << browse(null, "window=pda")
- return
+ src.updateUsrDialog()
+ return 1 // return 1 tells it to refresh the UI in NanoUI
/obj/item/device/pda/proc/remove_id()
if (id)
@@ -793,7 +820,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(!can_use())
return
-
+
last_text = world.time
// check if telecomms I/O route 1459 is stable
//var/telecomms_intact = telecomms_process(P.owner, owner, t)
@@ -823,19 +850,24 @@ var/global/list/obj/item/device/pda/PDAs = list()
U << "ERROR: Cannot reach recepient."
return
useMS.send_pda_message("[P.owner]","[owner]","[t]")
+ tnote.Add(list(list("sent" = 1, "owner" = "[P.owner]", "job" = "[P.ownjob]", "message" = "[t]", "target" = "\ref[P]")))
+ P.tnote.Add(list(list("sent" = 0, "owner" = "[owner]", "job" = "[ownjob]", "message" = "[t]", "target" = "\ref[src]")))
+ if(!conversations.Find("\ref[P]"))
+ conversations.Add("\ref[P]")
+ if(!P.conversations.Find("\ref[src]"))
+ P.conversations.Add("\ref[src]")
- tnote += "→ To [P.owner]:
[t]
"
- P.tnote += "← From [owner] ([ownjob]):
[t]
"
if (prob(15)) //Give the AI a chance of intercepting the message
var/who = src.owner
if(prob(50))
- who = P:owner
+ who = P.owner
for(var/mob/living/silicon/ai/ai in mob_list)
// Allows other AIs to intercept the message but the AI won't intercept their own message.
if(ai.aiPDA != P && ai.aiPDA != src)
ai.show_message("Intercepted message from [who]: [t]")
+
if (!P.silent)
playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, P.loc))
@@ -848,12 +880,17 @@ var/global/list/obj/item/device/pda/PDAs = list()
else
L = get(P, /mob/living/silicon)
+
if(L)
L << "\icon[P] Message from [src.owner] ([ownjob]), \"[t]\" (Reply)"
+ nanomanager.update_user_uis(L, P) // Update the recieving user's PDA UI so that they can see the new message
+
+ nanomanager.update_user_uis(U, P) // Update the sending user's PDA UI so that they can see the new message
log_pda("[usr] (PDA: [src.name]) sent \"[t]\" to [P.name]")
P.overlays.Cut()
P.overlays += image('icons/obj/pda.dmi', "pda-r")
+ P.newmessage = 1
else
U << "ERROR: Messaging server is not responding."
@@ -923,12 +960,15 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/attackby(obj/item/C as obj, mob/user as mob)
..()
if(istype(C, /obj/item/weapon/cartridge) && !cartridge)
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
cartridge = C
user.drop_item()
cartridge.loc = src
user << "You insert [cartridge] into [src]."
if(cartridge.radio)
cartridge.radio.hostpda = src
+ if(ui)
+ ui.close()
else if(istype(C, /obj/item/weapon/card/id))
var/obj/item/weapon/card/id/idcard = C
@@ -1042,9 +1082,6 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(5)
if((istype(A, /obj/item/weapon/tank)) || (istype(A, /obj/machinery/portable_atmospherics)))
- if(istype(A, /obj/item/weapon/tank))
- var/obj/item/weapon/tank/t = A
- t.manipulated_by = user.real_name
var/obj/icon = A
for (var/mob/O in viewers(user, null))
O << "\red [user] has used [src] on \icon[icon] [A]"
@@ -1135,8 +1172,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
return
if ((istype(M, /mob/living/carbon/human) && (M.real_name != src.owner) && (istype(src.cartridge, /obj/item/weapon/cartridge/clown))))
- if (src.cartridge:honk_charges < 5)
- src.cartridge:honk_charges++
+ if (src.cartridge.charges < 5)
+ src.cartridge.charges++
M.stop_pulling()
M << "\blue You slipped on the PDA!"
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index f0e3ee98f1..d27b744ca8 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -21,6 +21,7 @@
var/access_status_display = 0
var/access_quartermaster = 0
var/access_hydroponics = 0
+ var/charges = 0
var/mode = null
var/menu
var/datum/data/record/active1 = null //General
@@ -32,575 +33,518 @@
var/message2
var/list/stored_data = list()
- engineering
- name = "Power-ON Cartridge"
- icon_state = "cart-e"
- access_engine = 1
+/obj/item/weapon/cartridge/engineering
+ name = "Power-ON Cartridge"
+ icon_state = "cart-e"
+ access_engine = 1
- atmos
- name = "BreatheDeep Cartridge"
- icon_state = "cart-a"
- access_atmos = 1
+/obj/item/weapon/cartridge/atmos
+ name = "BreatheDeep Cartridge"
+ icon_state = "cart-a"
+ access_atmos = 1
- medical
- name = "Med-U Cartridge"
- icon_state = "cart-m"
- access_medical = 1
+/obj/item/weapon/cartridge/medical
+ name = "Med-U Cartridge"
+ icon_state = "cart-m"
+ access_medical = 1
- chemistry
- name = "ChemWhiz Cartridge"
- icon_state = "cart-chem"
- access_reagent_scanner = 1
+/obj/item/weapon/cartridge/chemistry
+ name = "ChemWhiz Cartridge"
+ icon_state = "cart-chem"
+ access_reagent_scanner = 1
- security
- name = "R.O.B.U.S.T. Cartridge"
- icon_state = "cart-s"
- access_security = 1
+/obj/item/weapon/cartridge/security
+ name = "R.O.B.U.S.T. Cartridge"
+ icon_state = "cart-s"
+ access_security = 1
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/beepsky(src)
+/obj/item/weapon/cartridge/security/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/beepsky(src)
- detective
- name = "D.E.T.E.C.T. Cartridge"
- icon_state = "cart-s"
- access_security = 1
- access_medical = 1
+/obj/item/weapon/cartridge/detective
+ name = "D.E.T.E.C.T. Cartridge"
+ icon_state = "cart-s"
+ access_security = 1
+ access_medical = 1
- janitor
- name = "CustodiPRO Cartridge"
- desc = "The ultimate in clean-room design."
- icon_state = "cart-j"
- access_janitor = 1
+/obj/item/weapon/cartridge/janitor
+ name = "CustodiPRO Cartridge"
+ desc = "The ultimate in clean-room design."
+ icon_state = "cart-j"
+ access_janitor = 1
- lawyer
- name = "P.R.O.V.E. Cartridge"
- icon_state = "cart-s"
- access_security = 1
+/obj/item/weapon/cartridge/lawyer
+ name = "P.R.O.V.E. Cartridge"
+ icon_state = "cart-s"
+ access_security = 1
- clown
- name = "Honkworks 5.0"
- icon_state = "cart-clown"
- access_clown = 1
- var/honk_charges = 5
+/obj/item/weapon/cartridge/clown
+ name = "Honkworks 5.0"
+ icon_state = "cart-clown"
+ access_clown = 1
+ charges = 5
- mime
- name = "Gestur-O 1000"
- icon_state = "cart-mi"
- access_mime = 1
- var/mime_charges = 5
+/obj/item/weapon/cartridge/mime
+ name = "Gestur-O 1000"
+ icon_state = "cart-mi"
+ access_mime = 1
+ charges = 5
/*
- botanist
- name = "Green Thumb v4.20"
- icon_state = "cart-b"
- access_flora = 1
+/obj/item/weapon/cartridge/botanist
+ name = "Green Thumb v4.20"
+ icon_state = "cart-b"
+ access_flora = 1
*/
- signal
- name = "generic signaler cartridge"
- desc = "A data cartridge with an integrated radio signaler module."
-
- toxins
- name = "Signal Ace 2"
- desc = "Complete with integrated radio signaler!"
- icon_state = "cart-tox"
- access_reagent_scanner = 1
- access_atmos = 1
-
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/signal(src)
-
-
-
- quartermaster
- name = "Space Parts & Space Vendors Cartridge"
- desc = "Perfect for the Quartermaster on the go!"
- icon_state = "cart-q"
- access_quartermaster = 1
-
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/mule(src)
-
- head
- name = "Easy-Record DELUXE"
- icon_state = "cart-h"
- access_status_display = 1
-
- hop
- name = "HumanResources9001"
- icon_state = "cart-h"
- access_status_display = 1
- access_quartermaster = 1
- access_janitor = 1
- access_security = 1
-
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/mule(src)
-
- hos
- name = "R.O.B.U.S.T. DELUXE"
- icon_state = "cart-hos"
- access_status_display = 1
- access_security = 1
-
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/beepsky(src)
-
- ce
- name = "Power-On DELUXE"
- icon_state = "cart-ce"
- access_status_display = 1
- access_engine = 1
- access_atmos = 1
-
- cmo
- name = "Med-U DELUXE"
- icon_state = "cart-cmo"
- access_status_display = 1
- access_reagent_scanner = 1
- access_medical = 1
-
- rd
- name = "Signal Ace DELUXE"
- icon_state = "cart-rd"
- access_status_display = 1
- access_reagent_scanner = 1
- access_atmos = 1
-
- New()
- ..()
- spawn(5)
- radio = new /obj/item/radio/integrated/signal(src)
-
- captain
- name = "Value-PAK Cartridge"
- desc = "Now with 200% more value!"
- icon_state = "cart-c"
- access_engine = 1
- access_security = 1
- access_medical = 1
- access_reagent_scanner = 1
- access_status_display = 1
- access_atmos = 1
-
- syndicate
- name = "Detomatix Cartridge"
- icon_state = "cart"
- access_remote_door = 1
- remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
- var/shock_charges = 4
-
- proc/unlock()
- if (!istype(loc, /obj/item/device/pda))
- return
-
- generate_menu()
- print_to_host(menu)
- return
-
- proc/print_to_host(var/text)
- if (!istype(loc, /obj/item/device/pda))
- return
- loc:cart = text
-
- for (var/mob/M in viewers(1, loc.loc))
- if (M.client && M.machine == loc)
- loc:attack_self(M)
-
- return
-
- proc/post_status(var/command, var/data1, var/data2)
-
- var/datum/radio_frequency/frequency = radio_controller.return_frequency(1435)
-
- if(!frequency) return
-
- var/datum/signal/status_signal = new
- status_signal.source = src
- status_signal.transmission_method = 1
- status_signal.data["command"] = command
-
- switch(command)
- if("message")
- status_signal.data["msg1"] = data1
- status_signal.data["msg2"] = data2
- if(loc)
- var/obj/item/PDA = loc
- var/mob/user = PDA.fingerprintslast
- if(istype(PDA.loc,/mob/living))
- name = PDA.loc
- log_admin("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
- message_admins("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
-
- if("alert")
- status_signal.data["picture_state"] = data1
-
- frequency.post_signal(src, status_signal)
-
- proc/generate_menu()
- switch(mode)
- if(40) //signaller
- menu = "
Remote Signaling System
"
-
- menu += {"
-Send Signal
-Frequency:
--
--
-[format_frequency(radio:frequency)]
-+
-+
-
-Code:
--
--
-[radio:code]
-+
-+
"}
-
- if (42) //status displays
- menu = "
Station Status Display Interlink
"
-
- menu += "\[ Clear \]
"
- menu += "\[ Shuttle ETA \]
"
- menu += "\[ Message \]"
- menu += "
"
- menu += "\[ Alert: None |"
- menu += " Red Alert |"
- menu += " Lockdown |"
- menu += " Biohazard \]
"
-
- if (43) //Muskets' and Rockdtben's power monitor :D
- menu = "
Power Monitors - Please select one
"
- powmonitor = null
- powermonitors = list()
- var/powercount = 0
-
-
-
- for(var/obj/machinery/power/monitor/pMon in world)
- if(!(pMon.stat & (NOPOWER|BROKEN)) )
- powercount++
- powermonitors += pMon
-
-
- if(!powercount)
- menu += "\red No connection
"
- else
-
- menu += ""
- var/count = 0
- for(var/obj/machinery/power/monitor/pMon in powermonitors)
- count++
- menu += " [pMon]
"
-
- menu += ""
-
- if (433) //Muskets' and Rockdtben's power monitor :D
- menu = "
Power Monitor
"
- if(!powmonitor)
- menu += "\red No connection
"
- else
- var/list/L = list()
- for(var/obj/machinery/power/terminal/term in powmonitor.powernet.nodes)
- if(istype(term.master, /obj/machinery/power/apc))
- var/obj/machinery/power/apc/A = term.master
- L += A
-
- menu += "Total power: [powmonitor.powernet.avail] W
Total load: [num2text(powmonitor.powernet.viewload,10)] W
"
-
- menu += ""
-
- if(L.len > 0)
- menu += "Area Eqp./Lgt./Env. Load Cell
"
-
- var/list/S = list(" Off","AOff"," On", " AOn")
- var/list/chg = list("N","C","F")
-
- for(var/obj/machinery/power/apc/A in L)
- menu += copytext(add_tspace(A.area.name, 30), 1, 30)
- menu += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]
"
-
- menu += "
"
-
- if (44) //medical records //This thing only displays a single screen so it's hard to really get the sub-menu stuff working.
- menu = "
Medical Record List
"
- if(!isnull(data_core.general))
- for (var/datum/data/record/R in sortRecord(data_core.general))
- menu += "[R.fields["id"]]: [R.fields["name"]]
"
- menu += "
"
- if(441)
- menu = "
Medical Record
"
-
- if (istype(active1, /datum/data/record) && (active1 in data_core.general))
- menu += "Name: [active1.fields["name"]] ID: [active1.fields["id"]]
"
- menu += "Sex: [active1.fields["sex"]]
"
- menu += "Age: [active1.fields["age"]]
"
- menu += "Rank: [active1.fields["rank"]]
"
- menu += "Fingerprint: [active1.fields["fingerprint"]]
"
- menu += "Physical Status: [active1.fields["p_stat"]]
"
- menu += "Mental Status: [active1.fields["m_stat"]]
"
- else
- menu += "Record Lost!
"
-
- menu += "
"
-
- menu += "
Medical Data
"
- if (istype(active2, /datum/data/record) && (active2 in data_core.medical))
- menu += "Blood Type: [active2.fields["b_type"]]
"
-
- menu += "Minor Disabilities: [active2.fields["mi_dis"]]
"
- menu += "Details: [active2.fields["mi_dis_d"]]
"
-
- menu += "Major Disabilities: [active2.fields["ma_dis"]]
"
- menu += "Details: [active2.fields["ma_dis_d"]]
"
-
- menu += "Allergies: [active2.fields["alg"]]
"
- menu += "Details: [active2.fields["alg_d"]]
"
-
- menu += "Current Diseases: [active2.fields["cdi"]]
"
- menu += "Details: [active2.fields["cdi_d"]]
"
-
- menu += "Important Notes: [active2.fields["notes"]]
"
- else
- menu += "Record Lost!
"
-
- menu += "
"
- if (45) //security records
- menu = "
Security Record List
"
- if(!isnull(data_core.general))
- for (var/datum/data/record/R in sortRecord(data_core.general))
- menu += "[R.fields["id"]]: [R.fields["name"]]
"
-
- menu += "
"
- if(451)
- menu = "
Security Record
"
-
- if (istype(active1, /datum/data/record) && (active1 in data_core.general))
- menu += "Name: [active1.fields["name"]] ID: [active1.fields["id"]]
"
- menu += "Sex: [active1.fields["sex"]]
"
- menu += "Age: [active1.fields["age"]]
"
- menu += "Rank: [active1.fields["rank"]]
"
- menu += "Fingerprint: [active1.fields["fingerprint"]]
"
- menu += "Physical Status: [active1.fields["p_stat"]]
"
- menu += "Mental Status: [active1.fields["m_stat"]]
"
- else
- menu += "Record Lost!
"
-
- menu += "
"
-
- menu += "
Security Data
"
- if (istype(active3, /datum/data/record) && (active3 in data_core.security))
- menu += "Criminal Status: [active3.fields["criminal"]]
"
-
- menu += "Minor Crimes: [active3.fields["mi_crim"]]
"
- menu += "Details: [active3.fields["mi_crim"]]
"
-
- menu += "Major Crimes: [active3.fields["ma_crim"]]
"
- menu += "Details: [active3.fields["ma_crim_d"]]
"
-
- menu += "Important Notes:
"
- menu += "[active3.fields["notes"]]"
- else
- menu += "Record Lost!
"
-
- menu += "
"
- if (46) //beepsky control
- var/obj/item/radio/integrated/beepsky/SC = radio
- if(!SC)
- menu = "Interlink Error - Please reinsert cartridge."
- return
-
- menu = "
Securitron Interlink
"
-
- if(!SC.active)
- // list of bots
- if(!SC.botlist || (SC.botlist && SC.botlist.len==0))
- menu += "No bots found.
"
-
- else
- for(var/obj/machinery/bot/B in SC.botlist)
- if (B)
- menu += "[B] at [B.loc.loc]
"
-
- menu += "
Scan for active bots
"
-
- else // bot selected, control it
-
- menu += "[SC.active]
Status: (
refresh)
"
-
- if(!SC.botstatus)
- menu += "Waiting for response...
"
- else
-
- menu += "Location: [SC.botstatus["loca"] ]
"
- menu += "Mode: "
-
- switch(SC.botstatus["mode"])
- if(0)
- menu += "Ready"
- if(1)
- menu += "Apprehending target"
- if(2,3)
- menu += "Arresting target"
- if(4)
- menu += "Starting patrol"
- if(5)
- menu += "On patrol"
- if(6)
- menu += "Responding to summons"
-
- menu += "
\[Stop Patrol\] "
- menu += "\[Start Patrol\] "
- menu += "\[Summon Bot\]
"
- menu += "
Return to bot list"
-
- if (47) //quartermaster order records
- menu = "
Supply Record Interlink
"
-
- menu += "
Supply shuttle
"
- menu += "Location: [supply_shuttle.moving ? "Moving to station ([supply_shuttle.eta] Mins.)":supply_shuttle.at_station ? "Station":"Dock"]
"
- menu += "Current approved orders:
"
- for(var/S in supply_shuttle.shoppinglist)
- var/datum/supply_order/SO = S
- menu += "- #[SO.ordernum] - [SO.object.name] approved by [SO.orderedby] [SO.comment ? "([SO.comment])":""]
"
- menu += "
"
-
- menu += "Current requests:
"
- for(var/S in supply_shuttle.requestlist)
- var/datum/supply_order/SO = S
- menu += "- #[SO.ordernum] - [SO.object.name] requested by [SO.orderedby]
"
- menu += "
Upgrade NOW to Space Parts & Space Vendors PLUS for full remote order control and inventory management."
-
- if (48) //mulebot control
- var/obj/item/radio/integrated/mule/QC = radio
- if(!QC)
- menu = "Interlink Error - Please reinsert cartridge."
- return
-
- menu = "
M.U.L.E. bot Interlink V0.8
"
-
- if(!QC.active)
- // list of bots
- if(!QC.botlist || (QC.botlist && QC.botlist.len==0))
- menu += "No bots found.
"
-
- else
- for(var/obj/machinery/bot/mulebot/B in QC.botlist)
- menu += "[B] at [get_area(B)]
"
- menu += "
Scan for active bots
"
-
- else // bot selected, control it
-
- menu += "[QC.active]
Status: (
refresh)
"
-
- if(!QC.botstatus)
- menu += "Waiting for response...
"
- else
-
- menu += "Location: [QC.botstatus["loca"] ]
"
- menu += "Mode: "
-
- switch(QC.botstatus["mode"])
- if(0)
- menu += "Ready"
- if(1)
- menu += "Loading/Unloading"
- if(2)
- menu += "Navigating to Delivery Location"
- if(3)
- menu += "Navigating to Home"
- if(4)
- menu += "Waiting for clear path"
- if(5,6)
- menu += "Calculating navigation path"
- if(7)
- menu += "Unable to locate destination"
- var/obj/structure/closet/crate/C = QC.botstatus["load"]
- menu += "
Current Load: [ !C ? "none" : "[C.name] (unload)" ]
"
- menu += "Destination: [!QC.botstatus["dest"] ? "none" : QC.botstatus["dest"] ] (set)
"
- menu += "Power: [QC.botstatus["powr"]]%
"
- menu += "Home: [!QC.botstatus["home"] ? "none" : QC.botstatus["home"] ]
"
- menu += "Auto Return Home: [QC.botstatus["retn"] ? "On Off" : "(On) Off"]
"
- menu += "Auto Pickup Crate: [QC.botstatus["pick"] ? "On Off" : "(On) Off"]
"
-
- menu += "\[Stop\] "
- menu += "\[Proceed\] "
- menu += "\[Return Home\]
"
- menu += "
Return to bot list"
-
- if (49) //janitorial locator
- menu = "
Persistent Custodial Object Locator
"
-
- var/turf/cl = get_turf(src)
- if (cl)
- menu += "Current Orbital Location: \[[cl.x],[cl.y]\]"
-
- menu += "Located Mops:
"
-
- var/ldat
- for (var/obj/item/weapon/mop/M in world)
- var/turf/ml = get_turf(M)
-
- if(ml)
- if (ml.z != cl.z)
- continue
- var/direction = get_dir(src, M)
- ldat += "Mop - \[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\] - [M.reagents.total_volume ? "Wet" : "Dry"]
"
-
- if (!ldat)
- menu += "None"
- else
- menu += "[ldat]"
-
- menu += "Located Mop Buckets:
"
-
- ldat = null
- for (var/obj/structure/mopbucket/B in world)
- var/turf/bl = get_turf(B)
-
- if(bl)
- if (bl.z != cl.z)
- continue
- var/direction = get_dir(src, B)
- ldat += "Bucket - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - Water level: [B.reagents.total_volume]/100
"
-
- if (!ldat)
- menu += "None"
- else
- menu += "[ldat]"
-
- menu += "Located Cleanbots:
"
-
- ldat = null
- for (var/obj/machinery/bot/cleanbot/B in world)
- var/turf/bl = get_turf(B)
-
- if(bl)
- if (bl.z != cl.z)
- continue
- var/direction = get_dir(src, B)
- ldat += "Cleanbot - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - [B.on ? "Online" : "Offline"]
"
-
- if (!ldat)
- menu += "None"
- else
- menu += "[ldat]"
-
- else
- menu += "ERROR: Unable to determine current location."
- menu += "
Refresh GPS Locator"
+/obj/item/weapon/cartridge/signal
+ name = "generic signaler cartridge"
+ desc = "A data cartridge with an integrated radio signaler module."
+
+/obj/item/weapon/cartridge/signal/toxins
+ name = "Signal Ace 2"
+ desc = "Complete with integrated radio signaler!"
+ icon_state = "cart-tox"
+ access_reagent_scanner = 1
+ access_atmos = 1
+
+/obj/item/weapon/cartridge/signal/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/signal(src)
+
+
+
+/obj/item/weapon/cartridge/quartermaster
+ name = "Space Parts & Space Vendors Cartridge"
+ desc = "Perfect for the Quartermaster on the go!"
+ icon_state = "cart-q"
+ access_quartermaster = 1
+
+/obj/item/weapon/cartridge/quartermaster/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/mule(src)
+
+/obj/item/weapon/cartridge/head
+ name = "Easy-Record DELUXE"
+ icon_state = "cart-h"
+ access_status_display = 1
+
+/obj/item/weapon/cartridge/hop
+ name = "HumanResources9001"
+ icon_state = "cart-h"
+ access_status_display = 1
+ access_quartermaster = 1
+ access_janitor = 1
+ access_security = 1
+
+/obj/item/weapon/cartridge/hop/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/mule(src)
+
+/obj/item/weapon/cartridge/hos
+ name = "R.O.B.U.S.T. DELUXE"
+ icon_state = "cart-hos"
+ access_status_display = 1
+ access_security = 1
+
+/obj/item/weapon/cartridge/hos/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/beepsky(src)
+
+/obj/item/weapon/cartridge/ce
+ name = "Power-On DELUXE"
+ icon_state = "cart-ce"
+ access_status_display = 1
+ access_engine = 1
+ access_atmos = 1
+
+/obj/item/weapon/cartridge/cmo
+ name = "Med-U DELUXE"
+ icon_state = "cart-cmo"
+ access_status_display = 1
+ access_reagent_scanner = 1
+ access_medical = 1
+
+/obj/item/weapon/cartridge/rd
+ name = "Signal Ace DELUXE"
+ icon_state = "cart-rd"
+ access_status_display = 1
+ access_reagent_scanner = 1
+ access_atmos = 1
+
+/obj/item/weapon/cartridge/rd/New()
+ ..()
+ spawn(5)
+ radio = new /obj/item/radio/integrated/signal(src)
+
+/obj/item/weapon/cartridge/captain
+ name = "Value-PAK Cartridge"
+ desc = "Now with 200% more value!"
+ icon_state = "cart-c"
+ access_quartermaster = 1
+ access_janitor = 1
+ access_engine = 1
+ access_security = 1
+ access_medical = 1
+ access_reagent_scanner = 1
+ access_status_display = 1
+ access_atmos = 1
+
+/obj/item/weapon/cartridge/syndicate
+ name = "Detomatix Cartridge"
+ icon_state = "cart"
+ access_remote_door = 1
+ remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
+ charges = 4
+
+/obj/item/weapon/cartridge/proc/post_status(var/command, var/data1, var/data2)
+
+ var/datum/radio_frequency/frequency = radio_controller.return_frequency(1435)
+ if(!frequency) return
+
+ var/datum/signal/status_signal = new
+ status_signal.source = src
+ status_signal.transmission_method = 1
+ status_signal.data["command"] = command
+
+ switch(command)
+ if("message")
+ status_signal.data["msg1"] = data1
+ status_signal.data["msg2"] = data2
+ if(loc)
+ var/obj/item/PDA = loc
+ var/mob/user = PDA.fingerprintslast
+ if(istype(PDA.loc,/mob/living))
+ name = PDA.loc
+ log_admin("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
+ message_admins("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
+
+ if("alert")
+ status_signal.data["picture_state"] = data1
+
+ frequency.post_signal(src, status_signal)
+
+
+/*
+ This generates the nano values of the cart menus.
+ Because we close the UI when we insert a new cart
+ we don't have to worry about null values on items
+ the user can't access. Well, unless they are href hacking.
+ But in that case their UI will just lock up.
+*/
+
+
+/obj/item/weapon/cartridge/proc/create_NanoUI_values(mob/user as mob)
+ var/obj/item/device/pda/PDA = loc
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, PDA, "main")
+ var/values[0]
+
+ /* Signaler (Mode: 40) */
+
+
+ if(istype(radio,/obj/item/radio/integrated/signal) && (mode==40 || !ui ))
+ var/obj/item/radio/integrated/signal/R = radio
+ values["signal_freq"] = format_frequency(R.frequency)
+ values["signal_code"] = R.code
+
+
+ /* Station Display (Mode: 42) */
+
+ if(mode==42 || (!ui && access_status_display))
+ values["message1"] = message1 ? message1 : "(none)"
+ values["message2"] = message2 ? message2 : "(none)"
+
+
+
+ /* Power Monitor (Mode: 43 / 433) */
+ if(mode==43 || mode==433 || (!ui && access_engine))
+ var/pMonData[0]
+ for(var/obj/machinery/power/monitor/pMon in world)
+ if(!(pMon.stat & (NOPOWER|BROKEN)) )
+ pMonData[++pMonData.len] = list ("Name" = pMon.name, "ref" = "\ref[pMon]")
+ if(isnull(powmonitor)) powmonitor = pMon
+
+ values["powermonitors"] = pMonData
+
+ values["poweravail"] = powmonitor.powernet.avail
+ values["powerload"] = num2text(powmonitor.powernet.viewload,10)
+
+ var/list/L = list()
+ for(var/obj/machinery/power/terminal/term in powmonitor.powernet.nodes)
+ if(istype(term.master, /obj/machinery/power/apc))
+ var/obj/machinery/power/apc/A = term.master
+ L += A
+
+ var/list/Status = list(0,0,1,1) // Status: off, auto-off, on, auto-on
+ var/list/chg = list(0,1,1) // Charging: nope, charging, full
+ var/apcData[0]
+ for(var/obj/machinery/power/apc/A in L)
+ apcData[++apcData.len] = list("Name" = html_encode(A.area.name), "Equipment" = Status[A.equipment+1], "Lights" = Status[A.lighting+1], "Environment" = Status[A.environ+1], "CellPct" = A.cell ? round(A.cell.percent(),1) : -1, "CellStatus" = A.cell ? chg[A.charging+1] : 0)
+
+ values["apcs"] = apcData
+
+
+
+
+
+ /* General Records (Mode: 44 / 441 / 45 / 451) */
+ if(mode == 44 || mode == 441 || mode == 45 || mode ==451 || (!ui && (access_medical || access_security)))
+ if(istype(active1, /datum/data/record) && (active1 in data_core.general))
+ values["general"] = active1.fields
+ values["general_exists"] = 1
+
+ else
+
+ values["general"] = list("name" = null,\
+ "id" = null,\
+ "sex" = null,\
+ "species" = null,\
+ "age" = null,\
+ "rank" = null,\
+ "fingerprint" = null,\
+ "p_stat" = null,\
+ "m_stat" = null,\
+ )
+ values["general_exists"] = 0
+
+
+
+ /* Medical Records (Mode: 44 / 441) */
+
+ if(mode == 44 || mode == 441 || (!ui && access_medical))
+ var/medData[0]
+ for(var/datum/data/record/R in sortRecord(data_core.general))
+ medData[++medData.len] = list(Name = R.fields["name"],"ref" = "\ref[R]")
+ values["medical_records"] = medData
+
+ if(istype(active2, /datum/data/record) && (active2 in data_core.medical))
+ values["medical"] = active2.fields
+ values["medical_exists"] = 1
+ else
+ values["medical"] = list(\
+ "b_type" = null,\
+ "mi_dis" = null,\
+ "mi_dis_d" = null,\
+ "ma_dis" = null,\
+ "ma_dis_d" = null,\
+ "alg" = null,\
+ "alg_d" = null,\
+ "cdi" = null,\
+ "cdi_d" = null,\
+ "notes" = null,\
+ )
+ values["medical_exists"] = 0
+
+ /* Security Records (Mode:45 / 451) */
+
+ if(mode == 45 || mode == 451 || (!ui && access_security))
+ var/secData[0]
+ for (var/datum/data/record/R in sortRecord(data_core.general))
+ secData[++secData.len] = list(Name = R.fields["name"], "ref" = "\ref[R]")
+ values["security_records"] = secData
+
+ if(istype(active3, /datum/data/record) && (active3 in data_core.security))
+ values["security"] = active3.fields
+ values["security_exists"] = 1
+ else
+ values["security"] = list(\
+ "criminal" = null,\
+ "mi_crim" = null,\
+ "ma_crim" = null,\
+ "ma_crim_d" = null,\
+ "notes"\
+ )
+ values["security_exists"] = 0
+
+ /* Security Bot Control (Mode: 46) */
+
+ if(mode==46 || !ui)
+ var/botsData[0]
+ var/beepskyData[0]
+ if(istype(radio,/obj/item/radio/integrated/beepsky))
+ var/obj/item/radio/integrated/beepsky/SC = radio
+ beepskyData["active"] = SC.active
+ if(SC.active && !isnull(SC.botstatus))
+ var/area/loca = SC.botstatus["loca"]
+ var/loca_name = sanitize(loca.name)
+ beepskyData["botstatus"] = list("loca" = loca_name, "mode" = SC.botstatus["mode"])
+ else
+ beepskyData["botstatus"] = list("loca" = null, "mode" = -1)
+ var/botsCount=0
+ if(SC.botlist && SC.botlist.len)
+ for(var/obj/machinery/bot/B in SC.botlist)
+ botsCount++
+ if(B.loc)
+ botsData[++botsData.len] = list("Name" = sanitize(B.name), "Location" = sanitize(B.loc.loc.name), "ref" = "\ref[B]")
+
+ if(!botsData.len)
+ botsData[++botsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
+
+ beepskyData["bots"] = botsData
+ beepskyData["count"] = botsCount
+
+ else
+ beepskyData["active"] = 0
+ botsData[++botsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
+ beepskyData["botstatus"] = list("loca" = null, "mode" = null)
+ beepskyData["bots"] = botsData
+ beepskyData["count"] = 0
+
+ values["beepsky"] = beepskyData
+
+
+ /* MULEBOT Control (Mode: 48) */
+
+ if(mode==48 || !ui)
+ var/muleData[0]
+ var/mulebotsData[0]
+ if(istype(radio,/obj/item/radio/integrated/mule))
+ var/obj/item/radio/integrated/mule/QC = radio
+ muleData["active"] = QC.active
+ if(QC.active && !isnull(QC.botstatus))
+ var/area/loca = QC.botstatus["loca"]
+ var/loca_name = sanitize(loca.name)
+ muleData["botstatus"] = list("loca" = loca_name, "mode" = QC.botstatus["mode"],"home"=QC.botstatus["home"],"powr" = QC.botstatus["powr"],"retn" =QC.botstatus["retn"], "pick"=QC.botstatus["pick"], "load" = QC.botstatus["load"], "dest" = sanitize(QC.botstatus["dest"]))
+
+ else
+ muleData["botstatus"] = list("loca" = null, "mode" = -1,"home"=null,"powr" = null,"retn" =null, "pick"=null, "load" = null, "dest" = null)
+
+
+ var/mulebotsCount=0
+ for(var/obj/machinery/bot/B in QC.botlist)
+ mulebotsCount++
+ if(B.loc)
+ mulebotsData[++mulebotsData.len] = list("Name" = sanitize(B.name), "Location" = sanitize(B.loc.loc.name), "ref" = "\ref[B]")
+
+ if(!mulebotsData.len)
+ mulebotsData[++mulebotsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
+
+ muleData["bots"] = mulebotsData
+ muleData["count"] = mulebotsCount
+
+ else
+ muleData["botstatus"] = list("loca" = null, "mode" = -1,"home"=null,"powr" = null,"retn" =null, "pick"=null, "load" = null, "dest" = null)
+ muleData["active"] = 0
+ mulebotsData[++mulebotsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
+ muleData["bots"] = mulebotsData
+ muleData["count"] = 0
+
+ values["mulebot"] = muleData
+
+
+
+ /* Supply Shuttle Requests Menu (Mode: 47) */
+
+ if(mode==47 || (!ui && access_quartermaster))
+ var/supplyData[0]
+ supplyData["shuttle_moving"] = supply_shuttle.moving
+ supplyData["shuttle_eta"] = supply_shuttle.eta
+ supplyData["shuttle_loc"] = supply_shuttle.at_station ? "Station" : "Dock"
+ var/supplyOrderCount = 0
+ var/supplyOrderData[0]
+ for(var/S in supply_shuttle.shoppinglist)
+ var/datum/supply_order/SO = S
+
+ supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.orderedby, "Comment" = html_encode(SO.comment))
+ if(!supplyOrderData.len)
+ supplyOrderData[++supplyOrderData.len] = list("Number" = null, "Name" = null, "OrderedBy"=null)
+
+ supplyData["approved"] = supplyOrderData
+ supplyData["approved_count"] = supplyOrderCount
+
+ var/requestCount = 0
+ var/requestData[0]
+ for(var/S in supply_shuttle.requestlist)
+ var/datum/supply_order/SO = S
+ requestCount++
+ requestData[++requestData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "OrderedBy" = SO.orderedby, "Comment" = html_encode(SO.comment))
+ if(!requestData.len)
+ requestData[++requestData.len] = list("Number" = null, "Name" = null, "orderedBy" = null, "Comment" = null)
+
+ supplyData["requests"] = requestData
+ supplyData["requests_count"] = requestCount
+
+
+ values["supply"] = supplyData
+
+
+
+ /* Janitor Supplies Locator (Mode: 49) */
+ if(mode==49 || (!ui && access_janitor))
+ var/JaniData[0]
+ var/turf/cl = get_turf(src)
+
+ if(cl)
+ JaniData["user_loc"] = list("x" = cl.x, "y" = cl.y)
+ else
+ JaniData["user_loc"] = list("x" = 0, "y" = 0)
+ var/MopData[0]
+ for(var/obj/item/weapon/mop/M in world)
+ var/turf/ml = get_turf(M)
+ if(ml)
+ if(ml.z != cl.z)
+ continue
+ var/direction = get_dir(src, M)
+ MopData[++MopData.len] = list ("x" = ml.x, "y" = ml.y, "dir" = uppertext(dir2text(direction)), "status" = M.reagents.total_volume ? "Wet" : "Dry")
+
+ if(!MopData.len)
+ MopData[++MopData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
+
+
+ var/BucketData[0]
+ for(var/obj/structure/mopbucket/B in world)
+ var/turf/bl = get_turf(B)
+ if(bl)
+ if(bl.z != cl.z)
+ continue
+ var/direction = get_dir(src,B)
+ BucketData[++BucketData.len] = list ("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.reagents.total_volume/100)
+
+ if(!BucketData.len)
+ BucketData[++BucketData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
+
+ var/CbotData[0]
+ for(var/obj/machinery/bot/cleanbot/B in world)
+ var/turf/bl = get_turf(B)
+ if(bl)
+ if(bl.z != cl.z)
+ continue
+ var/direction = get_dir(src,B)
+ CbotData[++CbotData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.on ? "Online" : "Offline")
+
+
+ if(!CbotData.len)
+ CbotData[++CbotData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
+ var/CartData[0]
+ for(var/obj/structure/janitorialcart/B in world)
+ var/turf/bl = get_turf(B)
+ if(bl)
+ if(bl.z != cl.z)
+ continue
+ var/direction = get_dir(src,B)
+ CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.reagents.total_volume/100)
+ if(!CartData.len)
+ CartData[++CartData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
+
+
+
+
+ JaniData["mops"] = MopData
+ JaniData["buckets"] = BucketData
+ JaniData["cleanbots"] = CbotData
+ JaniData["carts"] = CartData
+ values["janitor"] = JaniData
+
+ return values
+
+
+
/obj/item/weapon/cartridge/Topic(href, href_list)
@@ -611,6 +555,9 @@ Code:
usr << browse(null, "window=pda")
return
+
+
+
switch(href_list["choice"])
if("Medical Records")
var/datum/data/record/R = locate(href_list["target"])
@@ -668,10 +615,9 @@ Code:
else
post_status(href_list["statdisp"])
if("Power Select")
- var/pnum = text2num(href_list["target"])
- powmonitor = powermonitors[pnum]
+ var/pref = href_list["target"]
+ powmonitor = locate(pref)
loc:mode = 433
mode = 433
- generate_menu()
- print_to_host(menu)
+ return 1
diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm
index 45bcff1c05..9dc462814e 100644
--- a/code/game/objects/items/devices/PDA/radio.dm
+++ b/code/game/objects/items/devices/PDA/radio.dm
@@ -31,15 +31,6 @@
frequency.post_signal(src, signal, filter = s_filter)
- proc/print_to_host(var/text)
- if (isnull(src.hostpda))
- return
- src.hostpda.cart = text
-
- for (var/mob/M in viewers(1, src.hostpda.loc))
- if (M.client && M.machine == src.hostpda)
- src.hostpda.cartridge.unlock()
-
return
proc/generate_menu()
@@ -107,7 +98,6 @@
if("summon")
post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , s_filter = RADIO_SECBOT)
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = RADIO_SECBOT)
- PDA.cartridge.unlock()
/obj/item/radio/integrated/mule
var/list/botlist = null // list of bots
@@ -163,7 +153,6 @@
Topic(href, href_list)
..()
- var/obj/item/device/pda/PDA = src.hostpda
var/cmd = "command"
if(active) cmd = "command [active.suffix]"
@@ -208,7 +197,6 @@
if("stop", "go", "home")
post_signal(control_freq, cmd, href_list["op"], s_filter = RADIO_MULEBOT)
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
- PDA.cartridge.unlock()
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index a5a4093028..7e616a8f35 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -143,7 +143,9 @@ REAGENT SCANNER
user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
- if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0)
+ if (M.has_brain_worms())
+ user.show_message("\red Subject suffering from aberrant brain activity. Recommend further scanning.")
+ else if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0)
user.show_message("\red Subject is brain dead.")
else if (M.getBrainLoss() >= 60)
user.show_message("\red Severe brain damage detected. Subject likely to have mental retardation.")
diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm
index 0bb76efacd..4e42765238 100644
--- a/code/game/objects/items/devices/uplinks.dm
+++ b/code/game/objects/items/devices/uplinks.dm
@@ -14,6 +14,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
var/item_data // raw item text
var/list/ItemList // Parsed list of items
var/uses // Numbers of crystals
+ var/nanoui_items[0]
// List of items not to shove in their hands.
var/list/NotInHand = list(/obj/machinery/singularity_beacon/syndicate)
@@ -25,6 +26,39 @@ A list of items and costs is stored under the datum of every game mode, alongsid
items = replacetext(item_data)
ItemList = text2list(src.items, ";") // Parsing the items text string
uses = ticker.mode.uplink_uses
+ nanoui_items = generate_nanoui_items()
+
+/*
+ Built the Items List for use with NanoUI
+*/
+
+/obj/item/device/uplink/proc/generate_nanoui_items()
+ var/items_nano[0]
+ for(var/D in ItemList)
+ var/list/O = stringsplit(D, ":")
+ if(O.len != 3) //If it is not an actual item, make a break in the menu.
+ if(O.len == 1) //If there is one item, it's probably a title
+ items_nano[++items_nano.len] = list("Category" = "[O[1]]", "items" = list())
+ continue
+
+ var/path_text = O[1]
+ var/cost = text2num(O[2])
+
+ var/path_obj = text2path(path_text)
+
+ // Because we're using strings, this comes up if item paths change.
+ // Failure to handle this error borks uplinks entirely. -Sayu
+ if(!path_obj)
+ error("Syndicate item is not a valid path: [path_text]")
+ else
+ var/itemname = O[3]
+ items_nano[items_nano.len]["items"] += list(list("Name" = itemname, "Cost" = cost, "obj_path" = path_text))
+
+ return items_nano
+
+
+
+
//Halfassed fix for href exploit ~Z
for(var/D in ItemList)
@@ -238,8 +272,8 @@ A list of items and costs is stored under the datum of every game mode, alongsid
feedback_add_details("traitor_uplink_items_bought","ST")
/obj/item/device/uplink/Topic(href, href_list)
-
if (href_list["buy_item"])
+
if(href_list["buy_item"] == "random")
var/boughtItem = chooseRandomItem()
if(boughtItem)
@@ -307,31 +341,48 @@ A list of items and costs is stored under the datum of every game mode, alongsid
return 1
return 0
-// Interaction code. Gathers a list of items purchasable from the paren't uplink and displays it. It also adds a lock button.
-/obj/item/device/uplink/hidden/interact(mob/user as mob)
+/*
+ NANO UI FOR UPLINK WOOP WOOP
+*/
+/obj/item/device/uplink/hidden/ui_interact(mob/user, ui_key = "main")
+ var/title = "Syndicate Uplink"
+ var/data[0]
+
+ data["crystals"] = uses
+ data["nano_items"] = nanoui_items
+ data["welcome"] = welcome
- var/dat = ""
- dat += src.generate_menu()
- dat += "Lock"
- dat += ""
- user << browse(dat, "window=hidden")
- onclose(user, "hidden")
- return
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
+ if (!ui)
+ // the ui does not exist, so we'll create a new one
+ ui = new(user, src, ui_key, "uplink.tmpl", title, 450, 600)
+ // When the UI is first opened this is the data it will use
+ ui.set_initial_data(data)
+ ui.open()
+ else
+ // The UI is already open so push the new data to it
+ ui.push_data(data)
+ return
+
+// Interaction code. Gathers a list of items purchasable from the paren't uplink and displays it. It also adds a lock button.
+/obj/item/device/uplink/hidden/interact(mob/user)
+
+ ui_interact(user)
// The purchasing code.
/obj/item/device/uplink/hidden/Topic(href, href_list)
-
if (usr.stat || usr.restrained())
return
if (!( istype(usr, /mob/living/carbon/human)))
return 0
-
+ var/mob/user = usr
+ var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, "main")
if ((usr.contents.Find(src.loc) || (in_range(src.loc, usr) && istype(src.loc.loc, /turf))))
usr.set_machine(src)
if(href_list["lock"])
toggle()
- usr << browse(null, "window=hidden")
+ ui.close()
return 1
if(..(href, href_list) == 1)
@@ -347,7 +398,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
A.put_in_any_hand_if_possible(I)
purchase_log += "[usr] ([usr.ckey]) bought [I]."
interact(usr)
- return
+ return 1
// I placed this here because of how relevant it is.
// You place this in your uplinkable item to check if an uplink is active or not.
@@ -388,4 +439,4 @@ A list of items and costs is stored under the datum of every game mode, alongsid
/obj/item/device/radio/headset/uplink/New()
..()
hidden_uplink = new(src)
- hidden_uplink.uses = 10
\ No newline at end of file
+ hidden_uplink.uses = 10
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 43e0f8caef..87720c5f2c 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -157,14 +157,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/turf/location = get_turf(src)
smoketime--
if(smoketime < 1)
- new type_butt(location)
- processing_objects.Remove(src)
- if(ismob(loc))
- var/mob/living/M = loc
- M << "Your [name] goes out."
- M.u_equip(src) //un-equip it so the overlays can update
- M.update_inv_wear_mask(0)
- del(src)
+ die()
return
if(location)
location.hotspot_expose(700, 5)
@@ -182,13 +175,21 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/attack_self(mob/user as mob)
if(lit == 1)
user.visible_message("[user] calmly drops and treads on the lit [src], putting it out instantly.")
- var/turf/T = get_turf(src)
- new type_butt(T)
- processing_objects.Remove(src)
- del(src)
+ die()
return ..()
+/obj/item/clothing/mask/cigarette/proc/die()
+ var/turf/T = get_turf(src)
+ var/obj/item/butt = new type_butt(T)
+ transfer_fingerprints_to(butt)
+ if(ismob(loc))
+ var/mob/living/M = loc
+ M << "Your [name] goes out."
+ M.u_equip(src) //un-equip it so the overlays can update
+ M.update_inv_wear_mask(0)
+ processing_objects.Remove(src)
+ del(src)
////////////
// CIGARS //
@@ -229,6 +230,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
w_class = 1
throwforce = 1
+/obj/item/weapon/cigbutt/New()
+ ..()
+ pixel_x = rand(-10,10)
+ pixel_y = rand(-10,10)
+ transform = turn(transform,rand(0,360))
+
/obj/item/weapon/cigbutt/cigarbutt
name = "cigar butt"
desc = "A manky old cigar butt."
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index fd878e8582..d0b19f88e9 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -3,11 +3,8 @@
desc = "This injects the person with DNA."
icon = 'icons/obj/items.dmi'
icon_state = "dnainjector"
- var/dnatype = null
- var/list/dna = null
- var/block = null
- var/owner = null
- var/ue = null
+ var/block=0
+ var/datum/dna2/record/buf=null
var/s_time = 10.0
throw_speed = 1
throw_range = 5
@@ -17,57 +14,76 @@
var/is_bullet = 0
var/inuse = 0
+ // USE ONLY IN PREMADE SYRINGES. WILL NOT WORK OTHERWISE.
+ var/datatype=0
+ var/value=0
+
+/obj/item/weapon/dnainjector/New()
+ if(datatype && block)
+ buf=new
+ buf.dna=new
+ buf.types = datatype
+ buf.dna.ResetSE()
+ //testing("[name]: DNA2 SE blocks prior to SetValue: [english_list(buf.dna.SE)]")
+ SetValue(src.value)
+ //testing("[name]: DNA2 SE blocks after SetValue: [english_list(buf.dna.SE)]")
+
/obj/item/weapon/dnainjector/attack_paw(mob/user as mob)
return attack_hand(user)
+/obj/item/weapon/dnainjector/proc/GetRealBlock(var/selblock)
+ if(selblock==0)
+ return block
+ else
+ return selblock
/obj/item/weapon/dnainjector/proc/GetState(var/selblock=0)
- var/real_block
- if(!selblock)
- real_block=block
- selblock=1
+ var/real_block=GetRealBlock(selblock)
+ if(buf.types&DNA2_BUF_SE)
+ return buf.dna.GetSEState(real_block)
else
- real_block=selblock
- var/list/BOUNDS = GetDNABounds(real_block)
- return dna[selblock] > BOUNDS[DNA_ON_LOWERBOUND]
+ return buf.dna.GetUIState(real_block)
/obj/item/weapon/dnainjector/proc/SetState(var/on, var/selblock=0)
- var/real_block
- if(!selblock)
- real_block=block
- selblock=1
+ var/real_block=GetRealBlock(selblock)
+ if(buf.types&DNA2_BUF_SE)
+ return buf.dna.SetSEState(real_block,on)
else
- real_block=selblock
- var/list/BOUNDS=GetDNABounds(real_block)
- var/val
- if(on)
- val=rand(BOUNDS[DNA_ON_LOWERBOUND],BOUNDS[DNA_ON_UPPERBOUND])
- else
- val=rand(BOUNDS[DNA_OFF_LOWERBOUND],BOUNDS[DNA_OFF_UPPERBOUND])
- dna[selblock]=val
+ return buf.dna.SetUIState(real_block,on)
-/obj/item/weapon/dnainjector/proc/GetValue(var/block=1)
- return dna[block]
+/obj/item/weapon/dnainjector/proc/GetValue(var/selblock=0)
+ var/real_block=GetRealBlock(selblock)
+ if(buf.types&DNA2_BUF_SE)
+ return buf.dna.GetSEValue(real_block)
+ else
+ return buf.dna.GetUIValue(real_block)
+
+/obj/item/weapon/dnainjector/proc/SetValue(var/val,var/selblock=0)
+ var/real_block=GetRealBlock(selblock)
+ if(buf.types&DNA2_BUF_SE)
+ return buf.dna.SetSEValue(real_block,val)
+ else
+ return buf.dna.SetUIValue(real_block,val)
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob, mob/user as mob)
if(istype(M,/mob/living))
M.radiation += rand(5,20)
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
- if (dnatype == "ui")
+ if (buf.types & DNA2_BUF_UI)
if (!block) //isolated block?
- M.UpdateAppearance(dna)
- if (ue) //unique enzymes? yes
- M.real_name = ue
- M.name = ue
+ M.UpdateAppearance(buf.dna)
+ if (buf.types & DNA2_BUF_UE) //unique enzymes? yes
+ M.real_name = buf.dna.real_name
+ M.name = buf.dna.real_name
uses--
else
M.dna.SetUIValue(block,src.GetValue())
M.UpdateAppearance()
uses--
- if (dnatype == "se")
+ if (buf.types & DNA2_BUF_SE)
if (!block) //isolated block?
- M.dna.SE = dna
+ M.dna.SE = buf.dna.SE
M.dna.UpdateSE()
else
M.dna.SetSEValue(block,src.GetValue())
@@ -107,15 +123,24 @@
spawn(50) // Not the best fix. There should be an failure proc, for /effect/equip_e/, which is called when the first initital checks fail
inuse = 0
M.requests += O
- if (dnatype == "se")
- // So you're checking for 14, and yet MONKEYBLOCK is 27 in globals.dm,
- // and domutcheck checks MONKEYBLOCK...? wat. - N3X
- //if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
- if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human) )
- msg_admin_attack("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY) (JMP)")
+ if (buf.types & DNA2_BUF_SE)
+ if(block)// Isolated injector
+ testing("Isolated block [block] injector with contents: [GetValue()]")
+ if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ else
+ log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else
- // message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
- log_attack("[key_name(user)] injected [key_name(M)] with the [name]")
+ testing("DNA injector with contents: [english_list(buf.dna.SE)]")
+ if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human) )
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ log_attack("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ else
+ // message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
+ log_attack("[key_name(user)] injected [key_name(M)] with the [name]")
else
// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
log_attack("[key_name(user)] injected [key_name(M)] with the [name]")
@@ -132,15 +157,24 @@
if (!(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)))
user << "\red Apparently it didn't work."
return
- if (dnatype == "se")
- // And again... ?
- //if (isblockon(getblock(dna, 14,3),14) && istype(M, /mob/living/carbon/human))
- if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human))
- message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
- log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
+
+ if (buf.types & DNA2_BUF_SE)
+ if(block)// Isolated injector
+ testing("Isolated block [block] injector with contents: [GetValue()]")
+ if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
+ log_game("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] \red(MONKEY)")
+ else
+ log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else
-// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
- log_game("[key_name(user)] injected [key_name(M)] with the [name]")
+ testing("DNA injector with contents: [english_list(buf.dna.SE)]")
+ if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human))
+ message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] \red(MONKEY)")
+ log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
+ else
+ // message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
+ log_game("[key_name(user)] injected [key_name(M)] with the [name]")
else
// message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name]")
log_game("[key_name(user)] injected [key_name(M)] with the [name]")
@@ -165,460 +199,462 @@
/obj/item/weapon/dnainjector/hulkmut
name = "DNA-Injector (Hulk)"
desc = "This will make you big and strong, but give you a bad skin condition."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = HULKBLOCK
+ ..()
/obj/item/weapon/dnainjector/antihulk
name = "DNA-Injector (Anti-Hulk)"
desc = "Cures green skin."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = HULKBLOCK
+ ..()
/obj/item/weapon/dnainjector/xraymut
name = "DNA-Injector (Xray)"
desc = "Finally you can see what the Captain does."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 8
New()
- ..()
block = XRAYBLOCK
+ ..()
/obj/item/weapon/dnainjector/antixray
name = "DNA-Injector (Anti-Xray)"
desc = "It will make you see harder."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 8
New()
- ..()
block = XRAYBLOCK
+ ..()
/obj/item/weapon/dnainjector/firemut
name = "DNA-Injector (Fire)"
desc = "Gives you fire."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 10
New()
- ..()
block = FIREBLOCK
+ ..()
/obj/item/weapon/dnainjector/antifire
name = "DNA-Injector (Anti-Fire)"
desc = "Cures fire."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 10
New()
- ..()
block = FIREBLOCK
+ ..()
/obj/item/weapon/dnainjector/telemut
name = "DNA-Injector (Tele.)"
desc = "Super brain man!"
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 12
New()
- ..()
block = TELEBLOCK
+ ..()
/obj/item/weapon/dnainjector/antitele
name = "DNA-Injector (Anti-Tele.)"
desc = "Will make you not able to control your mind."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 12
New()
- ..()
block = TELEBLOCK
+ ..()
/obj/item/weapon/dnainjector/nobreath
name = "DNA-Injector (No Breath)"
desc = "Hold your breath and count to infinity."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = NOBREATHBLOCK
+ ..()
/obj/item/weapon/dnainjector/antinobreath
name = "DNA-Injector (Anti-No Breath)"
desc = "Hold your breath and count to 100."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = NOBREATHBLOCK
+ ..()
/obj/item/weapon/dnainjector/remoteview
name = "DNA-Injector (Remote View)"
desc = "Stare into the distance for a reason."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = REMOTEVIEWBLOCK
+ ..()
/obj/item/weapon/dnainjector/antiremoteview
name = "DNA-Injector (Anti-Remote View)"
desc = "Cures green skin."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = REMOTEVIEWBLOCK
+ ..()
/obj/item/weapon/dnainjector/regenerate
name = "DNA-Injector (Regeneration)"
desc = "Healthy but hungry."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = REGENERATEBLOCK
+ ..()
/obj/item/weapon/dnainjector/antiregenerate
name = "DNA-Injector (Anti-Regeneration)"
desc = "Sickly but sated."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = REGENERATEBLOCK
+ ..()
/obj/item/weapon/dnainjector/runfast
name = "DNA-Injector (Increase Run)"
desc = "Running Man."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = INCREASERUNBLOCK
+ ..()
/obj/item/weapon/dnainjector/antirunfast
name = "DNA-Injector (Anti-Increase Run)"
desc = "Walking Man."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = INCREASERUNBLOCK
+ ..()
/obj/item/weapon/dnainjector/morph
name = "DNA-Injector (Morph)"
desc = "A total makeover."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = MORPHBLOCK
+ ..()
/obj/item/weapon/dnainjector/antimorph
name = "DNA-Injector (Anti-Morph)"
desc = "Cures identity crisis."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = MORPHBLOCK
-/*
+ ..()
+
+/* No COLDBLOCK on bay
/obj/item/weapon/dnainjector/cold
name = "DNA-Injector (Cold)"
desc = "Feels a bit chilly."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = COLDBLOCK
+ ..()
/obj/item/weapon/dnainjector/anticold
name = "DNA-Injector (Anti-Cold)"
desc = "Feels room-temperature."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = COLDBLOCK
+ ..()
*/
+
/obj/item/weapon/dnainjector/noprints
name = "DNA-Injector (No Prints)"
desc = "Better than a pair of budget insulated gloves."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = NOPRINTSBLOCK
+ ..()
/obj/item/weapon/dnainjector/antinoprints
name = "DNA-Injector (Anti-No Prints)"
desc = "Not quite as good as a pair of budget insulated gloves."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = NOPRINTSBLOCK
+ ..()
/obj/item/weapon/dnainjector/insulation
name = "DNA-Injector (Shock Immunity)"
desc = "Better than a pair of real insulated gloves."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = SHOCKIMMUNITYBLOCK
+ ..()
/obj/item/weapon/dnainjector/antiinsulation
name = "DNA-Injector (Anti-Shock Immunity)"
desc = "Not quite as good as a pair of real insulated gloves."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = SHOCKIMMUNITYBLOCK
+ ..()
/obj/item/weapon/dnainjector/midgit
name = "DNA-Injector (Small Size)"
desc = "Makes you shrink."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = SMALLSIZEBLOCK
+ ..()
/obj/item/weapon/dnainjector/antimidgit
name = "DNA-Injector (Anti-Small Size)"
desc = "Makes you grow. But not too much."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = SMALLSIZEBLOCK
+ ..()
/////////////////////////////////////
/obj/item/weapon/dnainjector/antiglasses
name = "DNA-Injector (Anti-Glasses)"
desc = "Toss away those glasses!"
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 1
New()
- ..()
block = GLASSESBLOCK
+ ..()
/obj/item/weapon/dnainjector/glassesmut
name = "DNA-Injector (Glasses)"
desc = "Will make you need dorkish glasses."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 1
New()
- ..()
block = GLASSESBLOCK
+ ..()
/obj/item/weapon/dnainjector/epimut
name = "DNA-Injector (Epi.)"
desc = "Shake shake shake the room!"
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 3
New()
- ..()
block = HEADACHEBLOCK
+ ..()
/obj/item/weapon/dnainjector/antiepi
name = "DNA-Injector (Anti-Epi.)"
desc = "Will fix you up from shaking the room."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 3
New()
- ..()
block = HEADACHEBLOCK
+ ..()
/obj/item/weapon/dnainjector/anticough
name = "DNA-Injector (Anti-Cough)"
desc = "Will stop that awful noise."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 5
New()
- ..()
block = COUGHBLOCK
+ ..()
/obj/item/weapon/dnainjector/coughmut
name = "DNA-Injector (Cough)"
desc = "Will bring forth a sound of horror from your throat."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 5
New()
- ..()
block = COUGHBLOCK
+ ..()
/obj/item/weapon/dnainjector/clumsymut
name = "DNA-Injector (Clumsy)"
desc = "Makes clumsy minions."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 6
New()
- ..()
block = CLUMSYBLOCK
+ ..()
/obj/item/weapon/dnainjector/anticlumsy
name = "DNA-Injector (Anti-Clumy)"
desc = "Cleans up confusion."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 6
New()
- ..()
block = CLUMSYBLOCK
+ ..()
/obj/item/weapon/dnainjector/antitour
name = "DNA-Injector (Anti-Tour.)"
desc = "Will cure tourrets."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 7
New()
- ..()
block = TWITCHBLOCK
+ ..()
/obj/item/weapon/dnainjector/tourmut
name = "DNA-Injector (Tour.)"
desc = "Gives you a nasty case off tourrets."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 7
New()
- ..()
block = TWITCHBLOCK
+ ..()
/obj/item/weapon/dnainjector/stuttmut
name = "DNA-Injector (Stutt.)"
desc = "Makes you s-s-stuttterrr"
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 9
New()
- ..()
block = NERVOUSBLOCK
+ ..()
/obj/item/weapon/dnainjector/antistutt
name = "DNA-Injector (Anti-Stutt.)"
desc = "Fixes that speaking impairment."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 9
New()
- ..()
block = NERVOUSBLOCK
+ ..()
/obj/item/weapon/dnainjector/blindmut
name = "DNA-Injector (Blind)"
desc = "Makes you not see anything."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 11
New()
- ..()
block = BLINDBLOCK
+ ..()
/obj/item/weapon/dnainjector/antiblind
name = "DNA-Injector (Anti-Blind)"
desc = "ITS A MIRACLE!!!"
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 11
New()
- ..()
block = BLINDBLOCK
+ ..()
/obj/item/weapon/dnainjector/deafmut
name = "DNA-Injector (Deaf)"
desc = "Sorry, what did you say?"
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 13
New()
- ..()
block = DEAFBLOCK
+ ..()
/obj/item/weapon/dnainjector/antideaf
name = "DNA-Injector (Anti-Deaf)"
desc = "Will make you hear once more."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 13
New()
- ..()
block = DEAFBLOCK
+ ..()
/obj/item/weapon/dnainjector/hallucination
name = "DNA-Injector (Halluctination)"
desc = "What you see isn't always what you get."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 2
New()
- ..()
block = HALLUCINATIONBLOCK
+ ..()
/obj/item/weapon/dnainjector/antihallucination
name = "DNA-Injector (Anti-Hallucination)"
desc = "What you see is what you get."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 2
New()
- ..()
block = HALLUCINATIONBLOCK
+ ..()
/obj/item/weapon/dnainjector/h2m
name = "DNA-Injector (Human > Monkey)"
desc = "Will make you a flea bag."
- dnatype = "se"
- dna = list(4090)
+ datatype = DNA2_BUF_SE
+ value = 0xFFF
//block = 14
New()
- ..()
block = MONKEYBLOCK
+ ..()
/obj/item/weapon/dnainjector/m2h
name = "DNA-Injector (Monkey > Human)"
desc = "Will make you...less hairy."
- dnatype = "se"
- dna = list(1)
+ datatype = DNA2_BUF_SE
+ value = 0x001
//block = 14
New()
- ..()
block = MONKEYBLOCK
+ ..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index e1ed768593..0e3642b4aa 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -16,8 +16,8 @@
/obj/item/weapon/storage/bible/booze/New()
..()
- new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
- new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
new /obj/item/weapon/spacecash(src)
new /obj/item/weapon/spacecash(src)
new /obj/item/weapon/spacecash(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
index b75222fcdc..95ac7f0c94 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
@@ -12,16 +12,16 @@
New()
..()
sleep(2)
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
+ new /obj/item/weapon/reagent_containers/food/drinks/cans/beer( src )
return
/obj/structure/closet/secure_closet/bar/update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm
new file mode 100644
index 0000000000..8fb8b0c92c
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm
@@ -0,0 +1,53 @@
+/obj/structure/closet/secure_closet/guncabinet
+ name = "gun cabinet"
+ req_access = list(access_armory)
+ icon = 'icons/obj/guncabinet.dmi'
+ icon_state = "base"
+ icon_off ="base"
+ icon_broken ="base"
+ icon_locked ="base"
+ icon_closed ="base"
+ icon_opened = "base"
+
+/obj/structure/closet/secure_closet/guncabinet/New()
+ ..()
+ update_icon()
+
+/obj/structure/closet/secure_closet/guncabinet/toggle()
+ ..()
+ update_icon()
+
+/obj/structure/closet/secure_closet/guncabinet/update_icon()
+ overlays.Cut()
+ if(opened)
+ overlays += icon(icon,"door_open")
+ else
+ var/lazors = 0
+ var/shottas = 0
+ for (var/obj/item/weapon/gun/G in contents)
+ if (istype(G, /obj/item/weapon/gun/energy))
+ lazors++
+ if (istype(G, /obj/item/weapon/gun/projectile/))
+ shottas++
+ if (lazors || shottas)
+ for (var/i = 0 to 2)
+ var/image/gun = image(icon(src.icon))
+
+ if (lazors > 0 && (shottas <= 0 || prob(50)))
+ lazors--
+ gun.icon_state = "laser"
+ else if (shottas > 0)
+ shottas--
+ gun.icon_state = "projectile"
+
+ gun.pixel_x = i*4
+ overlays += gun
+
+ overlays += icon(src.icon,"door")
+
+ if(broken)
+ overlays += icon(src.icon,"broken")
+ else if (locked)
+ overlays += icon(src.icon,"locked")
+ else
+ overlays += icon(src.icon,"open")
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index 1dc3ca6f58..7dc173e33b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -39,9 +39,12 @@
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
new /obj/item/clothing/under/rank/research_director(src)
+ new /obj/item/clothing/under/rank/research_director/rdalt(src)
+ new /obj/item/clothing/under/rank/research_director/dress_rd(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/weapon/cartridge/rd(src)
new /obj/item/clothing/shoes/white(src)
+ new /obj/item/clothing/shoes/leather(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/device/radio/headset/heads/rd(src)
new /obj/item/weapon/tank/air(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index d115c40ff4..28e0958206 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -367,5 +367,6 @@
new /obj/item/clothing/shoes/green(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/purple(src)
+ new /obj/item/clothing/shoes/red(src)
new /obj/item/clothing/shoes/leather(src)
return
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index 7827749fa1..7e894c1359 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -174,3 +174,28 @@
name = "\improper HYDROPONICS"
desc = "A warning sign which reads 'HYDROPONICS'"
icon_state = "hydro1"
+
+/obj/structure/sign/directions/science
+ name = "\improper Science department"
+ desc = "A direction sign, pointing out which way Science department is."
+ icon_state = "direction_sci"
+
+/obj/structure/sign/directions/engineering
+ name = "\improper Engineering department"
+ desc = "A direction sign, pointing out which way Engineering department is."
+ icon_state = "direction_eng"
+
+/obj/structure/sign/directions/security
+ name = "\improper Security department"
+ desc = "A direction sign, pointing out which way Security department is."
+ icon_state = "direction_sec"
+
+/obj/structure/sign/directions/medical
+ name = "\improper Medical Bay"
+ desc = "A direction sign, pointing out which way Meducal Bay is."
+ icon_state = "direction_med"
+
+/obj/structure/sign/directions/evac
+ name = "\improper Escape Arm"
+ desc = "A direction sign, pointing out which way escape shuttle dock is."
+ icon_state = "direction_evac"
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index ab8884d96c..eb59003ace 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -163,6 +163,7 @@
if("boiling")
watertemp = "normal"
user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I].")
+ add_fingerprint(user)
/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up
overlays.Cut() //once it's been on for a while, in addition to handling the water overlay.
@@ -412,4 +413,4 @@
/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob)
icon_state = "puddle-splash"
..()
- icon_state = "puddle"
\ No newline at end of file
+ icon_state = "puddle"
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index ed415411a5..5250148688 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -9,10 +9,17 @@
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to
var/dirt = 0
+
/turf/simulated/New()
..()
levelupdate()
+/turf/simulated/proc/AddTracks(var/typepath,var/bloodDNA,var/comingdir,var/goingdir,var/bloodcolor="#A10808")
+ var/obj/effect/decal/cleanable/blood/tracks/tracks = locate(typepath) in src
+ if(!tracks)
+ tracks = new typepath(src)
+ tracks.AddTracks(bloodDNA,comingdir,goingdir,bloodcolor)
+
/turf/simulated/Entered(atom/A, atom/OL)
if(movement_disabled && usr.ckey != movement_disabled_exception)
usr << "\red Movement is admin-disabled." //This is to identify lag problems
@@ -32,31 +39,39 @@
if(istype(M, /mob/living/carbon/human))
var/mob/living/carbon/human/H = M
+ if(istype(H.shoes, /obj/item/clothing/shoes/clown_shoes))
+ var/obj/item/clothing/shoes/clown_shoes/O = H.shoes
+ if(H.m_intent == "run")
+ if(O.footstep >= 2)
+ O.footstep = 0
+ playsound(src, "clownstep", 50, 1) // this will get annoying very fast.
+ else
+ O.footstep++
+ else
+ playsound(src, "clownstep", 20, 1)
+ // Tracking blood
var/list/bloodDNA = null
+ var/bloodcolor=""
if(H.shoes)
var/obj/item/clothing/shoes/S = H.shoes
if(S.track_blood && S.blood_DNA)
bloodDNA = S.blood_DNA
+ bloodcolor=S.blood_color
S.track_blood--
else
if(H.track_blood && H.feet_blood_DNA)
bloodDNA = H.feet_blood_DNA
+ bloodcolor=H.feet_blood_color
H.track_blood--
if (bloodDNA)
- var/obj/effect/decal/cleanable/blood/footprints/here = new(src)
- here.icon_state = "blood1"
- here.dir = H.dir
- here.blood_DNA |= bloodDNA.Copy()
+ src.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,H.dir,0,bloodcolor) // Coming
var/turf/simulated/from = get_step(H,reverse_direction(H.dir))
- if(from)
- var/obj/effect/decal/cleanable/blood/footprints/there = new(from)
- there.icon_state = "blood2"
- there.dir = H.dir
- there.blood_DNA |= bloodDNA.Copy()
+ if(istype(from) && from)
+ from.AddTracks(/obj/effect/decal/cleanable/blood/tracks/footprints,bloodDNA,0,H.dir,bloodcolor) // Going
- bloodDNA = null
+ bloodDNA = null
switch (src.wet)
if(1)
@@ -66,8 +81,8 @@
step(M, M.dir)
M << "\blue You slipped on the wet floor!"
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
- M.Stun(8)
- M.Weaken(5)
+ M.Stun(5)
+ M.Weaken(3)
else
M.inertia_dir = 0
return
@@ -77,13 +92,13 @@
step(M, M.dir)
M << "\blue You slipped on the wet floor!"
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
- M.Stun(8)
- M.Weaken(5)
+ M.Stun(5)
+ M.Weaken(3)
else
M.inertia_dir = 0
return
- if(2) //lube //can cause infinite loops - needs work
+ if(2) //lube //can cause infinite loops - needs work
if(!istype(M, /mob/living/carbon/slime))
M.stop_pulling()
step(M, M.dir)
@@ -95,6 +110,29 @@
M << "\blue You slipped on the floor!"
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
M.Weaken(10)
+ if(3) // Ice
+ if(istype(M, /mob/living/carbon/human)) // Added check since monkeys don't have shoes
+ if ((M.m_intent == "run") && !(istype(M:shoes, /obj/item/clothing/shoes) && M:shoes.flags&NOSLIP) && prob(30))
+ M.stop_pulling()
+ step(M, M.dir)
+ M << "\blue You slipped on the icy floor!"
+ playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
+ M.Stun(4)
+ M.Weaken(3)
+ else
+ M.inertia_dir = 0
+ return
+ else if(!istype(M, /mob/living/carbon/slime))
+ if (M.m_intent == "run" && prob(30))
+ M.stop_pulling()
+ step(M, M.dir)
+ M << "\blue You slipped on the icy floor!"
+ playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
+ M.Stun(4)
+ M.Weaken(3)
+ else
+ M.inertia_dir = 0
+ return
..()
@@ -106,29 +144,49 @@
for(var/obj/effect/decal/cleanable/blood/B in contents)
if(!B.blood_DNA[M.dna.unique_enzymes])
B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
- if (M.virus2.len)
- B.virus2 |= virus_copylist(M.virus2)
return 1 //we bloodied the floor
//if there isn't a blood decal already, make one.
var/obj/effect/decal/cleanable/blood/newblood = new /obj/effect/decal/cleanable/blood(src)
+
+ //Species-specific blood.
+ if(M.species)
+ newblood.basecolor = M.species.blood_color
+ else
+ newblood.basecolor = "#A10808"
+
newblood.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
- if (M.virus2.len)
- newblood.virus2 |= virus_copylist(M.virus2)
+ newblood.update_icon()
+
return 1 //we bloodied the floor
// Only adds blood on the floor -- Skie
/turf/simulated/proc/add_blood_floor(mob/living/carbon/M as mob)
- if( istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/human))
+ if(istype(M, /mob/living/carbon/monkey))
+
var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(src)
this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
- if (M.virus2.len)
- this.virus2 = virus_copylist(M.virus2)
+ this.basecolor = "#A10808"
+ this.update_icon()
+
+ else if(istype(M,/mob/living/carbon/human))
+
+ var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(src)
+ var/mob/living/carbon/human/H = M
+
+ //Species-specific blood.
+ if(H.species)
+ this.basecolor = H.species.blood_color
+ else
+ this.basecolor = "#A10808"
+ this.update_icon()
+
+ this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
else if( istype(M, /mob/living/carbon/alien ))
- var/obj/effect/decal/cleanable/xenoblood/this = new /obj/effect/decal/cleanable/xenoblood(src)
+ var/obj/effect/decal/cleanable/blood/xeno/this = new /obj/effect/decal/cleanable/blood/xeno(src)
this.blood_DNA["UNKNOWN BLOOD"] = "X*"
else if( istype(M, /mob/living/silicon/robot ))
- new /obj/effect/decal/cleanable/oil(src)
\ No newline at end of file
+ new /obj/effect/decal/cleanable/blood/oil(src)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index c6dcc662a6..097cf4cc27 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -581,7 +581,8 @@ var/global/floorIsLava = 0
Spawn a gravitational anomaly (aka lagitational anomolag)
Spawn wormholes
Spawn blob
- Trigger an Alien infestation
+ Trigger a Xenomorph infestation
+ Trigger a Cortical Borer infestation
Spawn an Alien silently
Trigger a Spider infestation
Send in a space ninja
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 1196f14ebd..98efacef1a 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -65,6 +65,7 @@ var/list/admin_verbs_admin = list(
/client/proc/cmd_admin_rejuvenate,
/client/proc/toggleattacklogs,
/client/proc/toggledebuglogs,
+ /client/proc/toggleghostwriters,
/datum/admins/proc/show_skills,
/client/proc/check_customitem_activity,
/client/proc/man_up,
@@ -72,7 +73,7 @@ var/list/admin_verbs_admin = list(
/client/proc/response_team, // Response Teams admin verb
/client/proc/toggle_antagHUD_use,
/client/proc/toggle_antagHUD_restrictions,
- /client/proc/allow_character_respawn /* Allows a ghost to respawn */
+ /client/proc/allow_character_respawn /* Allows a ghost to respawn */
)
var/list/admin_verbs_ban = list(
/client/proc/unban_panel,
@@ -359,14 +360,11 @@ var/list/admin_verbs_mod = list(
if(mob.invisibility == INVISIBILITY_OBSERVER)
mob.invisibility = initial(mob.invisibility)
mob << "\red Invisimin off. Invisibility reset."
- mob.icon_state = "ghost"
- mob.icon = 'icons/mob/human.dmi'
- mob.update_icons()
+ mob.alpha = max(mob.alpha + 100, 255)
else
mob.invisibility = INVISIBILITY_OBSERVER
mob << "\blue Invisimin on. You are now as invisible as a ghost."
- mob.icon_state = "ghost"
- mob.icon = 'icons/mob/mob.dmi'
+ mob.alpha = max(mob.alpha - 100, 0)
/client/proc/player_panel()
@@ -727,6 +725,21 @@ var/list/admin_verbs_mod = list(
usr << "You now won't get attack log messages"
+/client/proc/toggleghostwriters()
+ set name = "Toggle ghost writers"
+ set category = "Server"
+ if(!holder) return
+ if(config)
+ if(config.cult_ghostwriter)
+ config.cult_ghostwriter = 0
+ src << "Disallowed ghost writers."
+ message_admins("Admin [key_name_admin(usr)] has disabled ghost writers.", 1)
+ else
+ config.cult_ghostwriter = 1
+ src << "Enabled ghost writers."
+ message_admins("Admin [key_name_admin(usr)] has enabled ghost writers.", 1)
+
+
/client/proc/toggledebuglogs()
set name = "Toggle Debug Log Messages"
set category = "Preferences"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 43dc61c73f..b09712350c 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -511,10 +511,10 @@
jobs += ""
counter = 0
- if(jobban_isbanned(M, "Internal Affairs Agent"))
+ if(jobban_isbanned(M, "Internal Affairs Agent"))
jobs += "| Internal Affairs Agent | "
else
- jobs += "Internal Affairs Agent | "
+ jobs += "Internal Affairs Agent | "
jobs += "
"
@@ -539,7 +539,7 @@
counter = 0
//pAI isn't technically a job, but it goes in here.
-
+
if(jobban_isbanned(M, "pAI"))
jobs += "pAI | "
else
@@ -804,7 +804,11 @@
if (ismob(M))
if(!check_if_greater_rights_than(M.client))
return
- M << "\red You have been kicked from the server"
+ var/reason = input("Please enter reason")
+ if(!reason)
+ M << "\red You have been kicked from the server"
+ else
+ M << "\red You have been kicked from the server: [reason]"
log_admin("[key_name(usr)] booted [key_name(M)].")
message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1)
//M.client = null
@@ -1773,7 +1777,12 @@
log_admin("[key_name(usr)] spawned an alien infestation", 1)
message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1)
new /datum/event/alien_infestation
-
+ if("borers")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","Borers")
+ log_admin("[key_name(usr)] spawned a cortical borer infestation.", 1)
+ message_admins("\blue [key_name_admin(usr)] spawned a cortical borer infestation.", 1)
+ new /datum/event/borer_infestation
if("power")
feedback_inc("admin_secrets_fun_used",1)
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 95c5d63840..eabee2ba46 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -254,13 +254,17 @@
'nano/templates/geoscanner.tmpl',
'nano/templates/dna_modifier.tmpl',
'nano/templates/telescience_console.tmpl',
+ 'nano/templates/pda.tmpl',
+ 'nano/templates/uplink.tmpl',
'nano/images/uiBackground.png',
'nano/images/uiIcons16.png',
'nano/images/uiIcons24.png',
+ 'nano/images/uiBackground-Syndicate.png',
'nano/images/uiLinkPendingIcon.gif',
'nano/images/uiMaskBackground.png',
'nano/images/uiNoticeBackground.jpg',
'nano/images/uiTitleFluff.png',
+ 'nano/images/uiTitleFluff-Syndicate.png',
'html/search.js',
'html/panels.css',
'icons/pda_icons/pda_atmos.png',
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index e3fff70f36..aedb20c70d 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -73,6 +73,12 @@
holder.icon_state = "hudxeno"
else if(foundVirus)
holder.icon_state = "hudill"
+ else if(patient.has_brain_worms())
+ var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
+ if(B.controlling)
+ holder.icon_state = "hudbrainworm"
+ else
+ holder.icon_state = "hudhealthy"
else
holder.icon_state = "hudhealthy"
C.images += holder
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 277b42d364..d168edc4c1 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -35,6 +35,12 @@
icon_state = "amp"
siemens_coefficient = 0.8
+/obj/item/clothing/head/wizard/cap
+ name = "Gentlemans Cap"
+ desc = "A checkered gray flat cap woven together with the rarest of threads."
+ icon_state = "gentcap"
+ siemens_coefficient = 0.8
+
/obj/item/clothing/suit/wizrobe
name = "wizard robe"
desc = "A magnificant, gem-lined robe that seems to radiate power."
@@ -79,6 +85,12 @@
icon_state = "psyamp"
item_state = "psyamp"
+/obj/item/clothing/suit/wizrobe/gentlecoat
+ name = "Gentlemans Coat"
+ desc = "A heavy threaded twead gray jacket. For a different sort of Gentleman."
+ icon_state = "gentlecoat"
+ item_state = "gentlecoat"
+
/obj/item/clothing/suit/wizrobe/fake
name = "wizard robe"
desc = "A rather dull, blue robe meant to mimick real wizard robes."
diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm
index 4ae31f9d89..549a824d54 100644
--- a/code/modules/clothing/under/jobs/medsci.dm
+++ b/code/modules/clothing/under/jobs/medsci.dm
@@ -10,6 +10,24 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
flags = FPRINT | TABLEPASS
+/obj/item/clothing/under/rank/research_director/rdalt
+ desc = "A dress suit and slacks stained with hard work and dedication to science. Perhaps other things as well, but mostly hard work and dedication."
+ name = "head researcher uniform"
+ icon_state = "rdalt"
+ item_state = "rdalt"
+ item_color = "rdalt"
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
+ flags = FPRINT | TABLEPASS
+
+/obj/item/clothing/under/rank/research_director/dress_rd
+ name = "research director dress uniform"
+ desc = "Feminine fashion for the style concious RD. Its fabric provides minor protection from biological contaminants."
+ icon_state = "dress_rd"
+ item_color = "dress_rd"
+ armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
+ flags = FPRINT | TABLEPASS
+
+
/obj/item/clothing/under/rank/scientist
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
name = "scientist's jumpsuit"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 3681a43eca..15365e1eac 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -138,6 +138,13 @@
item_state = "psysuit"
item_color = "psysuit"
+/obj/item/clothing/under/gentlesuit
+ name = "Gentlemans Suit"
+ desc = "A silk black shirt with a white tie and a matching gray vest and slacks. Feels proper."
+ icon_state = "gentlesuit"
+ item_state = "gentlesuit"
+ item_color = "gentlesuit"
+
/obj/item/clothing/under/gimmick/rank/captain/suit
name = "captain's suit"
desc = "A green suit and yellow necktie. Exemplifies authority."
@@ -285,11 +292,6 @@
icon_state = "dress_saloon"
item_color = "dress_saloon"
-/obj/item/clothing/under/dress/dress_rd
- name = "research director dress uniform"
- desc = "Feminine fashion for the style concious RD."
- icon_state = "dress_rd"
- item_color = "dress_rd"
/obj/item/clothing/under/dress/dress_cap
name = "captain dress uniform"
@@ -358,7 +360,7 @@
flags_inv = HIDESHOES
/obj/item/clothing/under/wedding/bride_white
- name = "orange wedding dress"
+ name = "silky wedding dress"
desc = "A white wedding gown made from the finest silk."
icon_state = "bride_white"
item_color = "bride_white"
diff --git a/code/modules/destilery/main.dm b/code/modules/destilery/main.dm
index 1ce22ef909..429a29afdf 100644
--- a/code/modules/destilery/main.dm
+++ b/code/modules/destilery/main.dm
@@ -118,7 +118,7 @@
switch(fermenting_item.type)
if(/obj/item/weapon/reagent_containers/food/drinks/flour) //Flour is still flour
- var/obj/item/weapon/reagent_containers/food/drinks/beer/B = new(src)
+ var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = new(src)
output += B
else
error = 1
@@ -178,7 +178,7 @@
return //Not done yet.
switch(destilling_item.type)
- if(/obj/item/weapon/reagent_containers/food/drinks/beer) //Flour is still flour
+ if(/obj/item/weapon/reagent_containers/food/drinks/cans/beer) //Flour is still flour
var/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/V = new(src)
output += V
else
diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm
index efe2ebfa52..e8a207ca8e 100644
--- a/code/modules/detectivework/footprints_and_rag.dm
+++ b/code/modules/detectivework/footprints_and_rag.dm
@@ -4,6 +4,7 @@
var/track_blood = 0
var/list/feet_blood_DNA
var/track_blood_type
+ var/feet_blood_color
/obj/item/clothing/gloves
var/transfer_blood = 0
diff --git a/code/modules/events/borers.dm b/code/modules/events/borers.dm
new file mode 100644
index 0000000000..2c6a2820fb
--- /dev/null
+++ b/code/modules/events/borers.dm
@@ -0,0 +1,38 @@
+//Cortical borer spawn event - care of RobRichards1997 with minor editing by Zuhayr.
+
+/datum/event/borer_infestation
+ oneShot = 1
+
+/datum/event/borer_infestation
+ announceWhen = 400
+
+ var/spawncount = 1
+ var/successSpawn = 0 //So we don't make a command report if nothing gets spawned.
+
+/datum/event/borer_infestation/setup()
+ announceWhen = rand(announceWhen, announceWhen + 50)
+ spawncount = rand(1, 3)
+
+/datum/event/borer_infestation/announce()
+ if(successSpawn)
+ command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert")
+ world << sound('sound/AI/aliens.ogg')
+
+/datum/event/borer_infestation/start()
+ var/list/vents = list()
+ for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world)
+ if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network)
+ //Stops cortical borers getting stuck in small networks. See: Security, Virology
+ if(temp_vent.network.normal_members.len > 50)
+ vents += temp_vent
+
+ var/list/candidates = get_alien_candidates()
+ while(spawncount > 0 && vents.len && candidates.len)
+ var/obj/vent = pick_n_take(vents)
+ var/client/C = pick_n_take(candidates)
+
+ var/mob/living/simple_animal/borer/new_borer = new(vent.loc)
+ new_borer.key = C.key
+
+ spawncount--
+ successSpawn = 1
\ No newline at end of file
diff --git a/code/modules/events/money_spam.dm b/code/modules/events/money_spam.dm
index 17c312eea2..f610b0d2f9 100644
--- a/code/modules/events/money_spam.dm
+++ b/code/modules/events/money_spam.dm
@@ -94,7 +94,8 @@
if(ai.aiPDA != P && ai.aiPDA != src)
ai.show_message("Intercepted message from [sender] (Unknown / spam?) to [P:owner]: [message]")
- P.tnote += "← From [sender] (Unknown / spam?):
[message]
"
+ //Commented out because we don't send messages like this anymore. Instead it will just popup in their chat window.
+ //P.tnote += "← From [sender] (Unknown / spam?):
[message]
"
if (!P.silent)
playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1)
diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm
index ad79eed516..91bf29e00a 100644
--- a/code/modules/events/radiation_storm.dm
+++ b/code/modules/events/radiation_storm.dm
@@ -34,10 +34,10 @@
H.apply_effect((rand(40,70)),IRRADIATE,0)
if (prob(75))
randmutb(H) // Applies bad mutation
- domutcheck(H,null,1)
+ domutcheck(H,null,MUTCHK_FORCED)
else
randmutg(H) // Applies good mutation
- domutcheck(H,null,1)
+ domutcheck(H,null,MUTCHK_FORCED)
for(var/mob/living/carbon/monkey/M in living_mob_list)
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index a297cb6183..705200241c 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -477,6 +477,15 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/popcorn
+
+/datum/recipe/cookie
+ reagents = list("milk" = 5, "flour" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cookie
+
/datum/recipe/fortunecookie
reagents = list("flour" = 5)
items = list(
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 2f82ff42c9..9627c55d82 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -21,12 +21,13 @@
var/antagHUD = 0
universal_speak = 1
var/atom/movable/following = null
+
/mob/dead/observer/New(mob/body)
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
see_invisible = SEE_INVISIBLE_OBSERVER
see_in_dark = 100
verbs += /mob/dead/observer/proc/dead_tele
-
+
stat = DEAD
var/turf/T
@@ -93,12 +94,12 @@ Works together with spawning an observer, noted above.
/mob/dead/observer/Life()
..()
- if(!loc) return
+ if(!loc) return
if(!client) return 0
if(client.images.len)
- for(var/image/hud in client.images)
+ for(var/image/hud in client.images)
if(copytext(hud.icon_state,1,4) == "hud")
client.images.Remove(hud)
if(antagHUD)
@@ -145,7 +146,7 @@ Works together with spawning an observer, noted above.
var/foundVirus = 0
if(patient.virus2.len)
foundVirus = 1
- if(!C) return
+ if(!C) return
holder = patient.hud_list[HEALTH_HUD]
if(patient.stat == 2)
holder.icon_state = "hudhealth-100"
@@ -160,10 +161,17 @@ Works together with spawning an observer, noted above.
holder.icon_state = "hudxeno"
else if(foundVirus)
holder.icon_state = "hudill"
+ else if(patient.has_brain_worms())
+ var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
+ if(B.controlling)
+ holder.icon_state = "hudbrainworm"
+ else
+ holder.icon_state = "hudhealthy"
else
holder.icon_state = "hudhealthy"
- C.images += holder
-
+
+ C.images += holder
+
/mob/dead/proc/assess_targets(list/target_list, mob/dead/observer/U)
var/icon/tempHud = 'icons/mob/hud.dmi'
@@ -319,7 +327,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(jobban_isbanned(M, "AntagHUD"))
src << "\red You have been banned from using this feature"
return
- if(config.antag_hud_restricted && !M.has_enabled_antagHUD &&!client.holder)
+ if(config.antag_hud_restricted && !M.has_enabled_antagHUD &&!client.holder)
var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No")
if(response == "No") return
M.can_reenter_corpse = 0
@@ -489,3 +497,79 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
dat += data_core.get_manifest()
src << browse(dat, "window=manifest;size=370x420;can_close=1")
+
+//Used for drawing on walls with blood puddles as a spooky ghost.
+/mob/dead/verb/bloody_doodle()
+
+ set category = "Ghost"
+ set name = "Write in blood"
+ set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
+
+ if(!(config.cult_ghostwriter))
+ src << "\red That verb is not currently permitted."
+ return
+
+ if (!src.stat)
+ return
+
+ if (usr != src)
+ return 0 //something is terribly wrong
+
+ var/ghosts_can_write
+ if(ticker.mode.name == "cult")
+ var/datum/game_mode/cult/C = ticker.mode
+ if(C.cult.len > config.cult_ghostwriter_req_cultists)
+ ghosts_can_write = 1
+
+ if(!ghosts_can_write)
+ src << "\red The veil is not thin enough for you to do that."
+ return
+
+ var/list/choices = list()
+ for(var/obj/effect/decal/cleanable/blood/B in view(1,src))
+ if(B.amount > 0)
+ choices += B
+
+ if(!choices.len)
+ src << "There is no blood to use nearby."
+ return
+
+ var/obj/effect/decal/cleanable/blood/choice = input(src,"What blood would you like to use?") in null|choices
+
+ var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West")
+ var/turf/simulated/T = src.loc
+ if (direction != "Here")
+ T = get_step(T,text2dir(direction))
+
+ if (!istype(T))
+ src << "You cannot doodle there."
+ return
+
+ if(!choice || choice.amount == 0 || !(src.Adjacent(choice)))
+ return
+
+ var/doodle_color = (choice.basecolor) ? choice.basecolor : "#A10808"
+
+ var/num_doodles = 0
+ for (var/obj/effect/decal/cleanable/blood/writing/W in T)
+ num_doodles++
+ if (num_doodles > 4)
+ src << "There is no space to write on!"
+ return
+
+ var/max_length = 50
+
+ var/message = stripped_input(src,"Write a message. It cannot be longer than [max_length] characters.","Blood writing", "")
+
+ if (message)
+
+ if (length(message) > max_length)
+ message += "-"
+ src << "You ran out of blood to write with!"
+
+ var/obj/effect/decal/cleanable/blood/writing/W = new(T)
+ W.basecolor = doodle_color
+ W.update_icon()
+ W.message = message
+ W.add_hiddenprint(src)
+ W.visible_message("\red Invisible fingers crudely paint something in blood on [T]...")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index 7487ffa631..2b084ce8b5 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -31,6 +31,10 @@
continue
no_queen = 0
+ if(src.has_brain_worms())
+ src << "We cannot perform this ability at the present time!"
+ return
+
if(no_queen)
adjustToxLoss(-500)
src << "\green You begin to evolve!"
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index dbca1091c6..f841b09d13 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -532,7 +532,7 @@
B.host_brain << "\red Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!"
//Check for brain worms in head.
-/mob/living/carbon/proc/has_brain_worms()
+/mob/proc/has_brain_worms()
for(var/I in contents)
if(istype(I,/mob/living/simple_animal/borer))
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 95ebdf2011..289ecf67ac 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -20,7 +20,10 @@
E.droplimb(1,1)
flick("gibbed-h", animation)
- hgibs(loc, viruses, dna)
+ if(species)
+ hgibs(loc, viruses, dna, species.flesh_color, species.blood_color)
+ else
+ hgibs(loc, viruses, dna)
spawn(15)
if(animation) del(animation)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 74cab64505..60014a89e2 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -776,6 +776,14 @@
if(istype(usr,/mob/living/silicon/robot))
var/mob/living/silicon/robot/U = usr
R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.modtype] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [game_year]
[t1]")
+
+ if (href_list["lookitem"])
+ var/obj/item/I = locate(href_list["lookitem"])
+ I.examine()
+
+ if (href_list["lookmob"])
+ var/mob/M = locate(href_list["lookmob"])
+ M.examine()
..()
return
@@ -1100,6 +1108,7 @@
return 0 //already bloodied with this blood. Cannot add more.
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
src.update_inv_gloves() //handles bloody hands overlays and updating
+ verbs += /mob/living/carbon/human/proc/bloody_doodle
return 1 //we applied blood to the item
/mob/living/carbon/human/clean_blood()
@@ -1266,3 +1275,58 @@ mob/living/carbon/human/yank_out_object()
return 1
else
return 0
+
+/mob/living/carbon/human/proc/bloody_doodle()
+ set category = "IC"
+ set name = "Write in blood"
+ set desc = "Use blood on your hands to write a short message on the floor or a wall, murder mystery style."
+
+ if (src.stat)
+ return
+
+ if (usr != src)
+ return 0 //something is terribly wrong
+
+ if (!bloody_hands)
+ verbs -= /mob/living/carbon/human/proc/bloody_doodle
+
+ if (src.gloves)
+ src << "Your [src.gloves] are getting in the way."
+ return
+
+ var/turf/simulated/T = src.loc
+ if (!istype(T)) //to prevent doodling out of mechs and lockers
+ src << "You cannot reach the floor."
+ return
+
+ var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West")
+ if (direction != "Here")
+ T = get_step(T,text2dir(direction))
+ if (!istype(T))
+ src << "You cannot doodle there."
+ return
+
+ var/num_doodles = 0
+ for (var/obj/effect/decal/cleanable/blood/writing/W in T)
+ num_doodles++
+ if (num_doodles > 4)
+ src << "There is no space to write on!"
+ return
+
+ var/max_length = bloody_hands * 30 //tweeter style
+
+ var/message = stripped_input(src,"Write a message. It cannot be longer than [max_length] characters.","Blood writing", "")
+
+ if (message)
+ var/used_blood_amount = round(length(message) / 30, 1)
+ bloody_hands = max(0, bloody_hands - used_blood_amount) //use up some blood
+
+ if (length(message) > max_length)
+ message += "-"
+ src << "You ran out of blood to write with!"
+
+ var/obj/effect/decal/cleanable/blood/writing/W = new(T)
+ W.basecolor = (hand_blood_color) ? hand_blood_color : "#A10808"
+ W.update_icon()
+ W.message = message
+ W.add_fingerprint(src)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 16a4733b27..b1a20b144e 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -134,6 +134,16 @@ emp_act
protection += C.armor[type]
return protection
+/mob/living/carbon/human/proc/check_head_coverage()
+
+ var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform)
+ for(var/bp in body_parts)
+ if(!bp) continue
+ if(bp && istype(bp ,/obj/item/clothing))
+ var/obj/item/clothing/C = bp
+ if(C.body_parts_covered & HEAD)
+ return 1
+ return 0
/mob/living/carbon/human/proc/check_shields(var/damage = 0, var/attack_text = "the attack")
if(l_hand && istype(l_hand, /obj/item/weapon))//Current base is the prob(50-d/3)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 104e60fff8..4611dda0d8 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -56,3 +56,4 @@
var/xylophone = 0 //For the spoooooooky xylophone cooldown
var/mob/remoteview_target = null
+ var/hand_blood_color
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 15b96ec4a8..6063f544d6 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -470,7 +470,9 @@ proc/get_damage_icon_part(damage_state, body_part)
standing.icon = ((w_uniform.icon_override) ? w_uniform.icon_override : 'icons/mob/uniform.dmi')
if(w_uniform.blood_DNA)
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood")
+ bloodsies.color = w_uniform.blood_color
+ standing.overlays += bloodsies
if(w_uniform:hastie) //WE CHECKED THE TYPE ABOVE. THIS REALLY SHOULD BE FINE.
var/tie_color = w_uniform:hastie.item_color
@@ -510,12 +512,16 @@ proc/get_damage_icon_part(damage_state, body_part)
if(!t_state) t_state = gloves.icon_state
var/image/standing = image("icon" = ((gloves.icon_override) ? gloves.icon_override : 'icons/mob/hands.dmi'), "icon_state" = "[t_state]")
if(gloves.blood_DNA)
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands")
+ bloodsies.color = gloves.blood_color
+ standing.overlays += bloodsies
gloves.screen_loc = ui_gloves
overlays_standing[GLOVES_LAYER] = standing
else
if(blood_DNA)
- overlays_standing[GLOVES_LAYER] = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands")
+ bloodsies.color = hand_blood_color
+ overlays_standing[GLOVES_LAYER] = bloodsies
else
overlays_standing[GLOVES_LAYER] = null
if(update_icons) update_icons()
@@ -542,7 +548,9 @@ proc/get_damage_icon_part(damage_state, body_part)
if(shoes)
var/image/standing = image("icon" = ((shoes.icon_override) ? shoes.icon_override : 'icons/mob/feet.dmi'), "icon_state" = "[shoes.icon_state]")
if(shoes.blood_DNA)
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood")
+ bloodsies.color = shoes.blood_color
+ standing.overlays += bloodsies
overlays_standing[SHOES_LAYER] = standing
else
overlays_standing[SHOES_LAYER] = null
@@ -568,7 +576,9 @@ proc/get_damage_icon_part(damage_state, body_part)
else
standing = image("icon" = ((head.icon_override) ? head.icon_override : 'icons/mob/head.dmi'), "icon_state" = "[head.icon_state]")
if(head.blood_DNA)
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood")
+ bloodsies.color = head.blood_color
+ standing.overlays += bloodsies
overlays_standing[HEAD_LAYER] = standing
else
overlays_standing[HEAD_LAYER] = null
@@ -597,7 +607,9 @@ proc/get_damage_icon_part(damage_state, body_part)
if(wear_suit.blood_DNA)
var/obj/item/clothing/suit/S = wear_suit
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood")
+ bloodsies.color = wear_suit.blood_color
+ standing.overlays += bloodsies
overlays_standing[SUIT_LAYER] = standing
@@ -621,7 +633,9 @@ proc/get_damage_icon_part(damage_state, body_part)
wear_mask.screen_loc = ui_mask //TODO
var/image/standing = image("icon" = ((wear_mask.icon_override) ? wear_mask.icon_override : 'icons/mob/mask.dmi'), "icon_state" = "[wear_mask.icon_state]")
if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA )
- standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood")
+ var/image/bloodsies = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood")
+ bloodsies.color = wear_mask.blood_color
+ standing.overlays += bloodsies
overlays_standing[FACEMASK_LAYER] = standing
else
overlays_standing[FACEMASK_LAYER] = null
diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm
index 442d33e2ac..3f98e3b694 100644
--- a/code/modules/mob/living/carbon/monkey/diona.dm
+++ b/code/modules/mob/living/carbon/monkey/diona.dm
@@ -2,6 +2,38 @@
Tiny babby plant critter plus procs.
*/
+//Helper object for picking dionaea up.
+/obj/item/weapon/diona_holder
+
+ name = "diona nymph"
+ desc = "It's a tiny plant critter."
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "nymph"
+ slot_flags = SLOT_HEAD
+ origin_tech = "magnets=3;biotech=5"
+
+/obj/item/weapon/diona_holder/New()
+ ..()
+ processing_objects.Add(src)
+
+
+/obj/item/weapon/diona_holder/Del()
+ processing_objects.Remove(src)
+ ..()
+
+/obj/item/weapon/diona_holder/process()
+ if(!loc) return
+
+ if(!istype(loc,/mob/living))
+ for(var/mob/M in contents)
+ M.loc = get_turf(src)
+ del(src)
+
+/obj/item/weapon/diona_holder/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ for(var/mob/M in src.contents)
+ M.attackby(W,user)
+
+//Mob defines.
/mob/living/carbon/monkey/diona
name = "diona nymph"
voice_name = "diona nymph"
@@ -10,6 +42,20 @@
var/list/donors = list()
var/ready_evolve = 0
+/mob/living/carbon/monkey/diona/attack_hand(mob/living/carbon/human/M as mob)
+
+ //Let people pick the little buggers up.
+ if(M.a_intent == "help")
+ var/obj/item/weapon/diona_holder/D = new(loc)
+ src.loc = D
+ D.name = loc.name
+ D.attack_hand(M)
+ M << "You scoop up [src]."
+ src << "[M] scoops you up."
+ return
+
+ ..()
+
/mob/living/carbon/monkey/diona/New()
..()
@@ -64,6 +110,10 @@
set name = "Evolve"
set desc = "Grow to a more complex form."
+ if(!is_alien_whitelisted(src, "Diona") && config.usealienwhitelist)
+ src << alert("You are currently not whitelisted to play an adult Diona.")
+ return 0
+
if(donors.len < 5)
src << "You are not yet ready for your growth..."
return
@@ -73,8 +123,15 @@
return
src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!")
- var/mob/living/carbon/human/adult = new(loc)
+
+ var/mob/living/carbon/human/adult = new(get_turf(src.loc))
adult.set_species("Diona")
+
+ if(istype(loc,/obj/item/weapon/diona_holder/))
+ var/obj/item/weapon/diona_holder/L = loc
+ src.loc = L.loc
+ del(L)
+
for(var/datum/language/L in languages)
adult.add_language(L.name)
adult.regenerate_icons()
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index 04c36b230a..8b9f3009d1 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -13,13 +13,16 @@
set invisibility = 0
set background = 1
if (monkeyizing) return
+ if (update_muts)
+ update_muts=0
+ domutcheck(src,null,MUTCHK_FORCED)
..()
var/datum/gas_mixture/environment // Added to prevent null location errors-- TLE
if(loc)
environment = loc.return_air()
- if (stat != DEAD) //still breathing
+ if (stat != DEAD && !istype(src,/mob/living/carbon/monkey/diona)) //still breathing
//First, resolve location and get a breath
if(air_master.current_cycle%4==2)
//Only try to take a breath every 4 seconds, unless suffocating
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index e050a30c5b..b0ddd30c73 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -10,28 +10,31 @@
var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie
var/greaterform = "Human" // Used when humanizing a monkey.
- var/uni_append = "12C4E2" // Small appearance modifier for different species.
+ icon_state = "monkey1"
+ //var/uni_append = "12C4E2" // Small appearance modifier for different species.
+ var/list/uni_append = list(0x12C,0x4E2) // Same as above for DNA2.
+ var/update_muts = 1 // Monkey gene must be set at start.
/mob/living/carbon/monkey/tajara
name = "farwa"
voice_name = "farwa"
speak_emote = list("mews")
icon_state = "tajkey1"
- uni_append = "0A0E00"
+ uni_append = list(0x0A0,0xE00) // 0A0E00
/mob/living/carbon/monkey/skrell
name = "neaera"
voice_name = "neaera"
speak_emote = list("squicks")
icon_state = "skrellkey1"
- uni_append = "01CC92"
+ uni_append = list(0x01C,0xC92) // 01CC92
/mob/living/carbon/monkey/unathi
name = "stok"
voice_name = "stok"
speak_emote = list("hisses")
icon_state = "stokkey1"
- uni_append = "044C5D"
+ uni_append = list(0x044,0xC5D) // 044C5D
/mob/living/carbon/monkey/New()
var/datum/reagents/R = new/datum/reagents(1000)
@@ -52,13 +55,20 @@
//dna.uni_identity = "00600200A00E0110148FC01300B009"
//dna.struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B0FD6"
dna.unique_enzymes = md5(name)
- //////////blah
- var/gendervar
- if (gender == MALE)
- gendervar = add_zero2(num2hex((rand(1,2049)),1), 3)
- else
- gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3)
- dna.uni_identity += "[gendervar][uni_append]"
+
+ // We're a monkey
+ dna.SetSEState(MONKEYBLOCK, 1)
+ // Fix gender
+ dna.SetUIState(DNA_UI_GENDER, gender != MALE, 1)
+
+ // Set the blocks to uni_append, if needed.
+ if(uni_append.len>0)
+ for(var/b=1;b<=uni_append.len;b++)
+ dna.SetUIValue(DNA_UI_LENGTH-(uni_append.len-b),uni_append[b], 1)
+ dna.UpdateUI()
+
+ update_muts=1
+
..()
update_icons()
return
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index c5d5351e3f..416d1d9324 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -39,6 +39,9 @@
var/list/abilities = list() // For species-derived or admin-given powers
+ var/blood_color = "#A10808" //Red.
+ var/flesh_color = "#FFC896" //Pink.
+
/datum/species/human
name = "Human"
language = "Sol Common"
@@ -70,6 +73,8 @@
flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_TAIL
+ flesh_color = "#34AF10"
+
/datum/species/tajaran
name = "Tajaran"
icobase = 'icons/mob/human_races/r_tajaran.dmi'
@@ -92,6 +97,8 @@
flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_TAIL
+ flesh_color = "#AFA59E"
+
/datum/species/skrell
name = "Skrell"
icobase = 'icons/mob/human_races/r_skrell.dmi'
@@ -101,6 +108,8 @@
flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR
+ flesh_color = "#8CD7A3"
+
/datum/species/vox
name = "Vox"
icobase = 'icons/mob/human_races/r_vox.dmi'
@@ -119,6 +128,9 @@
flags = NO_SCAN
+ blood_color = "#2299FC"
+ flesh_color = "#808D11"
+
/datum/species/diona
name = "Diona"
icobase = 'icons/mob/human_races/r_plant.dmi'
@@ -140,3 +152,7 @@
heat_level_3 = 4000
flags = WHITELISTED | NO_BREATHE | REQUIRE_LIGHT | NON_GENDERED | NO_SCAN | IS_PLANT | RAD_ABSORB
+
+ blood_color = "#004400"
+ flesh_color = "#907E4A"
+
diff --git a/code/modules/mob/living/silicon/pai/hud.dm b/code/modules/mob/living/silicon/pai/hud.dm
index 74d5ec8f87..07df7cd9ea 100644
--- a/code/modules/mob/living/silicon/pai/hud.dm
+++ b/code/modules/mob/living/silicon/pai/hud.dm
@@ -80,6 +80,12 @@
holder.icon_state = "hudxeno"
else if(foundVirus)
holder.icon_state = "hudill"
+ else if(patient.has_brain_worms())
+ var/mob/living/simple_animal/borer/B = patient.has_brain_worms()
+ if(B.controlling)
+ holder.icon_state = "hudbrainworm"
+ else
+ holder.icon_state = "hudhealthy"
else
holder.icon_state = "hudhealthy"
client.images += holder
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index ab4080ed50..df259c2197 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -169,7 +169,7 @@
New()
..()
- src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
+ src.modules += new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
src.modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src)
src.modules += new /obj/item/weapon/pen/robopen(src)
@@ -185,7 +185,7 @@
src.modules += new /obj/item/weapon/tray/robotray(src)
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src)
- src.emag = new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
+ src.emag = new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
var/datum/reagents/R = new/datum/reagents(50)
src.emag.reagents = R
diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm
index d3166dd974..d3e0ea9518 100644
--- a/code/modules/mob/living/simple_animal/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer.dm
@@ -16,6 +16,12 @@
src << "You whisper silently, \"[message]\""
B.host << "The captive mind of [src] whispers, \"[message]\""
+ for (var/mob/M in player_list)
+ if (istype(M, /mob/new_player))
+ continue
+ else if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS)
+ M << "The captive mind of [src] whispers, \"[message]\""
+
/mob/living/captive_brain/emote(var/message)
return
@@ -40,28 +46,53 @@
wander = 0
pass_flags = PASSTABLE
+ var/used_dominate
var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin.
var/mob/living/carbon/human/host // Human host for the brain worm.
var/truename // Name used for brainworm-speak.
var/mob/living/captive_brain/host_brain // Used for swapping control of the body back and forth.
var/controlling // Used in human death check.
+ var/docile = 0 // Sugar can stop borers from acting.
/mob/living/simple_animal/borer/Life()
..()
+
+
if(host)
+
if(!stat && !host.stat)
+
+ if(host.reagents.has_reagent("sugar"))
+ if(!docile)
+ if(controlling)
+ host << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ else
+ src << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ docile = 1
+ else
+ if(docile)
+ if(controlling)
+ host << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ else
+ src << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ docile = 0
+
if(chemicals < 250)
chemicals++
if(controlling)
+
+ if(docile)
+ host << "\blue You are feeling far too docile to continue controlling your host..."
+ host.release_control()
+ return
+
if(prob(5))
host.adjustBrainLoss(rand(1,2))
if(prob(host.brainloss/20))
host.say("*[pick(list("blink","blink_r","choke","aflap","drool","twitch","twitch_s","gasp"))]")
- //if(host.brainloss > 100)
-
/mob/living/simple_animal/borer/New()
..()
truename = "[pick("Primary","Secondary","Tertiary","Quaternary")] [rand(1000,9999)]"
@@ -104,6 +135,13 @@
src << "You drop words into [host]'s mind: \"[message]\""
host << "Your own thoughts speak: \"[message]\""
+ for (var/mob/M in player_list)
+ if (istype(M, /mob/new_player))
+ continue
+ else if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS)
+ M << "[src.truename] whispers to [host], \"[message]\""
+
+
/mob/living/simple_animal/borer/Stat()
..()
statpanel("Status")
@@ -127,6 +165,46 @@
if(M.mind && (istype(M, /mob/living/simple_animal/borer) || istype(M, /mob/dead/observer)))
M << "Cortical link, [truename]: [copytext(message, 2)]"
+/mob/living/simple_animal/borer/verb/dominate_victim()
+ set category = "Alien"
+ set name = "Dominate Victim"
+ set desc = "Freeze the limbs of a potential host with supernatural fear."
+
+ if(world.time - used_dominate < 300)
+ src << "You cannot use that ability again so soon."
+ return
+
+ if(host)
+ src << "You cannot do that from within a host body."
+ return
+
+ if(src.stat)
+ src << "You cannot do that in your current state."
+ return
+
+ var/list/choices = list()
+ for(var/mob/living/carbon/C in view(3,src))
+ if(C.stat != 2)
+ choices += C
+
+ if(world.time - used_dominate < 300)
+ src << "You cannot use that ability again so soon."
+ return
+
+ var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices
+
+ if(!M || !src) return
+
+ if(M.has_brain_worms())
+ src << "You cannot infest someone who is already infested!"
+ return
+
+ src << "\red You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread."
+ M << "\red You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing."
+ M.Weaken(3)
+
+ used_dominate = world.time
+
/mob/living/simple_animal/borer/verb/bond_brain()
set category = "Alien"
set name = "Assume Control"
@@ -140,12 +218,20 @@
src << "You cannot do that in your current state."
return
+ if(host.internal_organs_by_name["brain"]) //this should only run in admin-weirdness situations, but it's here non the less - RR
+ src << "There is no brain here for us to command!"
+ return
+
+ if(docile)
+ src << "\blue You are feeling far too docile to do that."
+ return
+
src << "You begin delicately adjusting your connection to the host brain..."
spawn(300+(host.brainloss*5))
- if(!host || !src || controlling) return
-
+ if(!host || !src || controlling)
+ return
else
src << "\red You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system."
host << "\red You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours."
@@ -170,10 +256,14 @@
if(stat)
src << "You cannot secrete chemicals in your current state."
+ if(docile)
+ src << "\blue You are feeling far too docile to do that."
+ return
+
if(chemicals < 50)
src << "You don't have enough chemicals!"
- var/chem = input("Select a chemical to secrete.", "Chemicals") in list("bicaridine","tramadol","hyperzine")
+ var/chem = input("Select a chemical to secrete.", "Chemicals") in list("bicaridine","tramadol","hyperzine","alkysine")
if(chemicals < 50 || !host || controlling || !src || stat) //Sanity check.
return
@@ -194,6 +284,9 @@
if(stat)
src << "You cannot leave your host in your current state."
+ if(docile)
+ src << "\blue You are feeling far too docile to do that."
+ return
if(!host || !src) return
@@ -262,17 +355,25 @@ mob/living/simple_animal/borer/proc/detatch()
var/list/choices = list()
for(var/mob/living/carbon/C in view(1,src))
- if(C.stat != 2)
+ if(C.stat != 2 && src.Adjacent(C))
choices += C
var/mob/living/carbon/M = input(src,"Who do you wish to infest?") in null|choices
if(!M || !src) return
+ if(!(src.Adjacent(M))) return
+
if(M.has_brain_worms())
src << "You cannot infest someone who is already infested!"
return
+ if(istype(M,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ if(H.check_head_coverage())
+ src << "You cannot get through that host's protective gear."
+ return
+
M << "Something slimy begins probing at the opening of your ear canal..."
src << "You slither up [M] and begin probing at their ear canal..."
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 423486499c..cdefaa644e 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -47,7 +47,7 @@
/mob/living/simple_animal/hostile/hivebot/Die()
..()
visible_message("[src] blows apart!")
- new /obj/effect/decal/cleanable/robot_debris(src.loc)
+ new /obj/effect/decal/cleanable/blood/gibs/robot(src.loc)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 2452db5abc..ab6d621487 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -217,3 +217,5 @@
var/immune_to_ssd = 0
var/turf/listed_turf = null //the current turf being examined in the stat panel
+
+ var/list/active_genes=list()
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index ff32dfc593..230eca4cdf 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -61,6 +61,10 @@
name = "Cut Hair"
icon_state = "hair_c"
+ flair
+ name = "Flaired Hair"
+ icon_state = "hair_flair"
+
long
name = "Shoulder-length Hair"
icon_state = "hair_b"
@@ -420,7 +424,7 @@
una_frills_short
name = "Short Unathi Frills"
- icon_state = "soghun_shortfrill"
+ icon_state = "soghun_shortfrills"
species_allowed = list("Unathi")
do_colouration = 0
diff --git a/code/modules/nano/nanoexternal.dm b/code/modules/nano/nanoexternal.dm
index fed8cb4c4f..2331debd9b 100644
--- a/code/modules/nano/nanoexternal.dm
+++ b/code/modules/nano/nanoexternal.dm
@@ -13,7 +13,7 @@
var/datum/nanoui/ui = locate(uiref)
- if (ui)
+ if (istype(ui))
ui.close()
if(ui.ref)
diff --git a/code/modules/nano/nanomanager.dm b/code/modules/nano/nanomanager.dm
index 7a09e7ffd3..2e967d6fae 100644
--- a/code/modules/nano/nanomanager.dm
+++ b/code/modules/nano/nanomanager.dm
@@ -1,8 +1,9 @@
// This is the window/UI manager for Nano UI
// There should only ever be one (global) instance of nanomanger
/datum/nanomanager
- // the list of current open /nanoui UIs
+ // a list of current open /nanoui UIs, grouped by src_object and ui_key
var/open_uis[0]
+ // a list of current open /nanoui UIs, not grouped, for use in processing
var/list/processing_uis = list()
/**
@@ -38,7 +39,7 @@
/**
* Update all /nanoui uis attached to src_object
*
- * @param src_object /obj|/mob The obj or mob which the uis belong to
+ * @param src_object /obj|/mob The obj or mob which the uis are attached to
*
* @return int The number of uis updated
*/
@@ -54,6 +55,48 @@
ui.process(1)
update_count++
return update_count
+
+ /**
+ * Update /nanoui uis belonging to user
+ *
+ * @param user /mob The mob who owns the uis
+ * @param src_object /obj|/mob If src_object is provided, only update uis which are attached to src_object (optional)
+ * @param ui_key string If ui_key is provided, only update uis with a matching ui_key (optional)
+ *
+ * @return int The number of uis updated
+ */
+/datum/nanomanager/proc/update_user_uis(var/mob/user, src_object = null, ui_key = null)
+ if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0)
+ return 0 // has no open uis
+
+ var/update_count = 0
+ for (var/datum/nanoui/ui in user.open_uis)
+ if ((isnull(src_object) || !isnull(src_object) && ui.src_object == src_object) && (isnull(ui_key) || !isnull(ui_key) && ui.ui_key == ui_key))
+ ui.process(1)
+ update_count++
+
+ return update_count
+
+ /**
+ * Close /nanoui uis belonging to user
+ *
+ * @param user /mob The mob who owns the uis
+ * @param src_object /obj|/mob If src_object is provided, only close uis which are attached to src_object (optional)
+ * @param ui_key string If ui_key is provided, only close uis with a matching ui_key (optional)
+ *
+ * @return int The number of uis closed
+ */
+/datum/nanomanager/proc/close_user_uis(var/mob/user, src_object = null, ui_key = null)
+ if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0)
+ return 0 // has no open uis
+
+ var/close_count = 0
+ for (var/datum/nanoui/ui in user.open_uis)
+ if ((isnull(src_object) || !isnull(src_object) && ui.src_object == src_object) && (isnull(ui_key) || !isnull(ui_key) && ui.ui_key == ui_key))
+ ui.close()
+ close_count++
+
+ return close_count
/**
* Add a /nanoui ui to the list of open uis
@@ -106,11 +149,29 @@
//
/datum/nanomanager/proc/user_logout(var/mob/user)
- if (isnull(user.open_uis) || !istype(user.open_uis, /list) || open_uis.len == 0)
+ return close_user_uis(user)
+
+ /**
+ * This is called when a player transfers from one mob to another
+ * Transfers all open UIs to the new mob
+ *
+ * @param oldMob /mob The user's old mob
+ * @param newMob /mob The user's new mob
+ *
+ * @return nothing
+ */
+/datum/nanomanager/proc/user_transferred(var/mob/oldMob, var/mob/newMob)
+ if (isnull(oldMob.open_uis) || !istype(oldMob.open_uis, /list) || open_uis.len == 0)
return 0 // has no open uis
- for (var/datum/nanoui/ui in user.open_uis)
- ui.close();
+ if (isnull(newMob.open_uis) || !istype(newMob.open_uis, /list))
+ newMob.open_uis = list()
+ for (var/datum/nanoui/ui in oldMob.open_uis)
+ ui.user = newMob
+ newMob.open_uis.Add(ui)
+ oldMob.open_uis.Cut()
+
+ return 1 // success
diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm
index 474e955f57..6557d86e0f 100644
--- a/code/modules/nano/nanoui.dm
+++ b/code/modules/nano/nanoui.dm
@@ -135,11 +135,13 @@ nanoui is used to open and update nano browser uis
if (dist > 4)
close()
return
-
+
if ((allowed_user_stat > -1) && (user.stat > allowed_user_stat))
set_status(STATUS_DISABLED, push_update) // no updates, completely disabled (red visibility)
else if (user.restrained() || user.lying)
set_status(STATUS_UPDATE, push_update) // update only (orange visibility)
+ else if (istype(src_object, /obj/item/device/uplink/hidden)) // You know what if they have the uplink open let them use the UI
+ set_status(STATUS_INTERACTIVE, push_update) // Will build in distance checks on the topics for sanity.
else if (!(src_object in view(4, user))) // If the src object is not in visable, set status to 0
set_status(STATUS_DISABLED, push_update) // interactive (green visibility)
else if (dist <= 1)
@@ -349,6 +351,7 @@ nanoui is used to open and update nano browser uis
window_size = "size=[width]x[height];"
update_status(0)
user << browse(get_html(), "window=[window_id];[window_size][window_options]")
+ winset(user, "mapwindow.map", "focus=true") // return keyboard focus to map
on_close_winset()
//onclose(user, window_id)
nanomanager.ui_opened(src)
@@ -402,7 +405,7 @@ nanoui is used to open and update nano browser uis
if (status != STATUS_INTERACTIVE || user != usr) // If UI is not interactive or usr calling Topic is not the UI user
return
- if (src_object.Topic(href, href_list))
+ if (src_object && src_object.Topic(href, href_list))
nanomanager.update_uis(src_object) // update all UIs attached to src_object
/**
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index a0a88e2120..53b26cc0b9 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -145,6 +145,9 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
this.icon_state = pick(iconL)
this.blood_DNA = list()
this.blood_DNA[dna.unique_enzymes] = dna.b_type
+ if (species) this.basecolor = species.blood_color
+ this.update_icon()
+
else
for(var/obj/effect/decal/cleanable/blood/drip/G in nums)
del G
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index 53633d5db0..abd5f1baf6 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -240,7 +240,7 @@ This function completely restores a damaged organ to perfect condition.
//Possibly trigger an internal wound, too.
var/local_damage = brute_dam + burn_dam + damage
- if(damage > 10 && type != BURN && local_damage > 20 && prob(damage) && !(status & ORGAN_ROBOT))
+ if(damage > 15 && type != BURN && local_damage > 30 && prob(damage) && !(status & ORGAN_ROBOT))
var/datum/wound/internal_bleeding/I = new (15)
wounds += I
owner.custom_pain("You feel something rip in your [display_name]!", 1)
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 9b0a931a83..2695556c71 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -152,12 +152,12 @@
del(src)
else
if(toner > 0)
- new /obj/effect/decal/cleanable/oil(get_turf(src))
+ new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
toner = 0
else
if(prob(50))
if(toner > 0)
- new /obj/effect/decal/cleanable/oil(get_turf(src))
+ new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
toner = 0
return
@@ -166,7 +166,7 @@
del(src)
else
if(toner > 0)
- new /obj/effect/decal/cleanable/oil(get_turf(src))
+ new /obj/effect/decal/cleanable/blood/oil(get_turf(src))
toner = 0
return
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index a2b11b7ffc..0063d0b2a9 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -98,3 +98,10 @@
desc = "A 7.62 bullet casing."
caliber = "a762"
projectile_type = "/obj/item/projectile/bullet/a762"
+
+/obj/item/ammo_casing/rocket
+ name = "rocket shell"
+ desc = "A high explosive designed to be fired from a launcher."
+ icon_state = "rocketshell"
+ projectile_type = "/obj/item/missile"
+ caliber = "rocket"
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index bcc619851c..dc142fc00b 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -193,4 +193,49 @@ obj/item/weapon/gun/energy/staff/focus
charge_cost = 100
user << "\red The [src.name] will now strike only a single person."
projectile_type = "/obj/item/projectile/forcebolt"
- */
\ No newline at end of file
+ */
+
+/obj/item/weapon/gun/energy/toxgun
+ name = "plasma pistol"
+ desc = "A specialized firearm designed to fire lethal bolts of toxins."
+ icon_state = "toxgun"
+ fire_sound = 'sound/effects/stealthoff.ogg'
+ w_class = 3.0
+ origin_tech = "combat=5;plasmatech=4"
+ projectile_type = "/obj/item/projectile/energy/plasma"
+
+/obj/item/weapon/gun/energy/sniperrifle
+ name = "L.W.A.P. Sniper Rifle"
+ desc = "A rifle constructed of lightweight materials, fitted with a SMART aiming-system scope."
+ icon = 'icons/obj/gun.dmi'
+ icon_state = "sniper"
+ fire_sound = 'sound/weapons/marauder.ogg'
+ origin_tech = "combat=6;materials=5;powerstorage=4"
+ projectile_type = "/obj/item/projectile/beam/sniper"
+ slot_flags = SLOT_BACK
+ charge_cost = 250
+ fire_delay = 35
+ w_class = 4.0
+
+ var/zoom = 0
+
+/obj/item/weapon/gun/energy/sniperrifle/dropped(mob/user)
+ user.client.view = world.view
+ zoom = 0
+
+/obj/item/weapon/gun/energy/sniperrifle/verb/zoom()
+ set category = "Special Verbs"
+ set name = "Zoom"
+ set popup_menu = 0
+ if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
+ usr << "No."
+ return
+
+ src.zoom = !src.zoom
+ usr << ("Zoom mode [zoom?"en":"dis"]abled.")
+ if(zoom)
+ usr.client.view = 12
+ usr << sound('sound/mecha/imag_enh.ogg',volume=50)
+ else
+ usr.client.view = world.view//world.view - default mob view size
+ return
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/projectile/rocket.dm b/code/modules/projectiles/guns/projectile/rocket.dm
new file mode 100644
index 0000000000..a1575b937c
--- /dev/null
+++ b/code/modules/projectiles/guns/projectile/rocket.dm
@@ -0,0 +1,53 @@
+/obj/item/weapon/gun/rocketlauncher
+ var/projectile
+ name = "rocket launcher"
+ desc = "MAGGOT."
+ icon_state = "rocket"
+ item_state = "rocket"
+ w_class = 4.0
+ throw_speed = 2
+ throw_range = 10
+ force = 5.0
+ flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
+ slot_flags = 0
+ origin_tech = "combat=8;materials=5"
+ projectile = /obj/item/missile
+ var/missile_speed = 2
+ var/missile_range = 30
+ var/max_rockets = 1
+ var/list/rockets = new/list()
+
+/obj/item/weapon/gun/rocketlauncher/examine()
+ set src in view()
+ ..()
+ if (!(usr in view(2)) && usr!=src.loc) return
+ usr << "\blue [rockets.len] / [max_rockets] rockets."
+
+/obj/item/weapon/gun/rocketlauncher/attackby(obj/item/I as obj, mob/user as mob)
+ if(istype(I, /obj/item/ammo_casing/rocket))
+ if(rockets.len < max_rockets)
+ user.drop_item()
+ I.loc = src
+ rockets += I
+ user << "\blue You put the rocket in [src]."
+ user << "\blue [rockets.len] / [max_rockets] rockets."
+ else
+ usr << "\red [src] cannot hold more rockets."
+
+/obj/item/weapon/gun/rocketlauncher/can_fire()
+ return rockets.len
+
+/obj/item/weapon/gun/rocketlauncher/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)
+ if(rockets.len)
+ var/obj/item/ammo_casing/rocket/I = rockets[1]
+ var/obj/item/missile/M = new projectile(user.loc)
+ playsound(user.loc, 'sound/effects/bang.ogg', 50, 1)
+ M.primed = 1
+ M.throw_at(target, missile_range, missile_speed)
+ message_admins("[key_name_admin(user)] fired a rocket from a rocket launcher ([src.name]).")
+ log_game("[key_name_admin(user)] used a rocket launcher ([src.name]).")
+ rockets -= I
+ del(I)
+ return
+ else
+ usr << "\red [src] is empty."
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 3024ea1aa4..f9d2ea73f1 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -160,4 +160,12 @@ var/list/beam_master = list()
var/mob/living/carbon/human/M = target
if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag)))
M.Weaken(5)
- return 1
\ No newline at end of file
+ return 1
+
+/obj/item/projectile/beam/sniper
+ name = "sniper beam"
+ icon_state = "xray"
+ damage = 60
+ stun = 5
+ weaken = 5
+ stutter = 5
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm
index 31c7389fef..9f5036dea1 100644
--- a/code/modules/projectiles/projectile/change.dm
+++ b/code/modules/projectiles/projectile/change.dm
@@ -13,6 +13,8 @@
/obj/item/projectile/change/proc/wabbajack (mob/M as mob in living_mob_list)
if(istype(M, /mob/living) && M.stat != DEAD)
if(M.monkeyizing) return
+ if(M.has_brain_worms()) return //Borer stuff - RR
+
M.monkeyizing = 1
M.canmove = 0
M.icon = null
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index b8789eca59..6f719dafc9 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -59,5 +59,10 @@
damage_type = TOX
weaken = 5
-
+/obj/item/projectile/energy/plasma
+ name = "plasma bolt"
+ icon_state = "energy"
+ damage = 20
+ damage_type = TOX
+ irradiate = 20
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 80672b358e..d6ba7a13ad 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -153,7 +153,7 @@ datum
newVirus.holder = blood_prop
else if(istype(self.data["donor"], /mob/living/carbon/alien))
- var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
+ var/obj/effect/decal/cleanable/blood/xeno/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm
new file mode 100644
index 0000000000..2f997295b1
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/food/cans.dm
@@ -0,0 +1,266 @@
+/obj/item/weapon/reagent_containers/food/drinks/cans
+ var canopened = 0
+
+ attack_self(mob/user as mob)
+ if (canopened == 0)
+ playsound(src.loc,'sound/effects/canopen.ogg', rand(10,50), 1)
+ user << "You open the drink with an audible pop!"
+ canopened = 1
+ else
+ return
+
+ attack(mob/M as mob, mob/user as mob, def_zone)
+ if (canopened == 0)
+ user << " You need to open the drink!"
+ return
+ var/datum/reagents/R = src.reagents
+ var/fillevel = gulp_size
+
+ if(!R.total_volume || !R)
+ user << "\red None of [src] left, oh no!"
+ return 0
+
+ if(M == user)
+ M << "\blue You swallow a gulp of [src]."
+ if(reagents.total_volume)
+ reagents.reaction(M, INGEST)
+ spawn(5)
+ reagents.trans_to(M, gulp_size)
+
+ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
+ return 1
+ else if( istype(M, /mob/living/carbon/human) )
+
+ for(var/mob/O in viewers(world.view, user))
+ O.show_message("\red [user] attempts to feed [M] [src].", 1)
+ if(!do_mob(user, M)) return
+ for(var/mob/O in viewers(world.view, user))
+ O.show_message("\red [user] feeds [M] [src].", 1)
+
+ M.attack_log += text("\[[time_stamp()]\] Has been fed [src.name] by [user.name] ([user.ckey]) Reagents: [reagentlist(src)]")
+ user.attack_log += text("\[[time_stamp()]\] Fed [M.name] by [M.name] ([M.ckey]) Reagents: [reagentlist(src)]")
+ log_attack("[user.name] ([user.ckey]) fed [M.name] ([M.ckey]) with [src.name] Reagents: [reagentlist(src)] (INTENT: [uppertext(user.a_intent)]) (JMP)")
+
+ if(reagents.total_volume)
+ reagents.reaction(M, INGEST)
+ spawn(5)
+ reagents.trans_to(M, gulp_size)
+
+ if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
+ var/mob/living/silicon/robot/bro = user
+ bro.cell.use(30)
+ var/refill = R.get_master_reagent_id()
+ spawn(600)
+ R.add_reagent(refill, fillevel)
+
+ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
+ return 1
+
+ return 0
+
+
+ afterattack(obj/target, mob/user, proximity)
+ if(!proximity) return
+
+ if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
+
+ if(!target.reagents.total_volume)
+ user << "\red [target] is empty."
+ return
+
+ if(reagents.total_volume >= reagents.maximum_volume)
+ user << "\red [src] is full."
+ return
+
+ var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
+ user << "\blue You fill [src] with [trans] units of the contents of [target]."
+
+ else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
+ if(!reagents.total_volume)
+ user << "\red [src] is empty."
+ return
+
+ if(target.reagents.total_volume >= target.reagents.maximum_volume)
+ user << "\red [target] is full."
+ return
+
+
+
+ var/datum/reagent/refill
+ var/datum/reagent/refillName
+ if(isrobot(user))
+ refill = reagents.get_master_reagent_id()
+ refillName = reagents.get_master_reagent_name()
+
+ var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
+ user << "\blue You transfer [trans] units of the solution to [target]."
+
+ if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
+ var/mob/living/silicon/robot/bro = user
+ var/chargeAmount = max(30,4*trans)
+ bro.cell.use(chargeAmount)
+ user << "Now synthesizing [trans] units of [refillName]..."
+
+
+ spawn(300)
+ reagents.add_reagent(refill, trans)
+ user << "Cyborg [src] refilled."
+
+ return
+
+/* examine()
+ set src in view()
+ ..()
+ if (!(usr in range(0)) && usr!=src.loc) return
+ if(!reagents || reagents.total_volume==0)
+ usr << "\blue \The [src] is empty!"
+ else if (reagents.total_volume<=src.volume/4)
+ usr << "\blue \The [src] is almost empty!"
+ else if (reagents.total_volume<=src.volume*0.66)
+ usr << "\blue \The [src] is half full!"
+ else if (reagents.total_volume<=src.volume*0.90)
+ usr << "\blue \The [src] is almost full!"
+ else
+ usr << "\blue \The [src] is full!"*/
+
+
+//DRINKS
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/cola
+ name = "Space Cola"
+ desc = "Cola. in space."
+ icon_state = "cola"
+ New()
+ ..()
+ reagents.add_reagent("cola", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle
+ name = "Bottled Water"
+ desc = "Introduced to the vending machines on health nut protest, taste fresh, pure glacial* water! *Note: Might be tapwater."
+ icon_state = "waterbottle"
+ New()
+ ..()
+ reagents.add_reagent("water", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/beer
+ name = "Space Beer"
+ desc = "Beer. In space."
+ icon_state = "beer"
+ New()
+ ..()
+ reagents.add_reagent("beer", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/ale
+ name = "Magm-Ale"
+ desc = "A true dorf's drink of choice."
+ icon_state = "alebottle"
+ item_state = "beer"
+ New()
+ ..()
+ reagents.add_reagent("ale", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind
+ name = "Space Mountain Wind"
+ desc = "Blows right through you like a space wind."
+ icon_state = "space_mountain_wind"
+ New()
+ ..()
+ reagents.add_reagent("spacemountainwind", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/thirteenloko
+ name = "Thirteen Loko"
+ desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
+ icon_state = "thirteen_loko"
+ New()
+ ..()
+ reagents.add_reagent("thirteenloko", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb
+ name = "Dr. Gibb"
+ desc = "A delicious mixture of 42 different flavors."
+ icon_state = "dr_gibb"
+ New()
+ ..()
+ reagents.add_reagent("dr_gibb", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/starkist
+ name = "Star-kist"
+ desc = "The taste of a star in liquid form. And, a bit of tuna...?"
+ icon_state = "starkist"
+ New()
+ ..()
+ reagents.add_reagent("cola", 15)
+ reagents.add_reagent("orangejuice", 15)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/space_up
+ name = "Space-Up"
+ desc = "Tastes like a hull breach in your mouth."
+ icon_state = "space-up"
+ New()
+ ..()
+ reagents.add_reagent("space_up", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime
+ name = "Lemon-Lime"
+ desc = "You wanted ORANGE. It gave you Lemon Lime."
+ icon_state = "lemon-lime"
+ New()
+ ..()
+ reagents.add_reagent("lemon_lime", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea
+ name = "Vrisk Serket Iced Tea"
+ desc = "That sweet, refreshing southern earthy flavor. That's where it's from, right? South Earth? Whatever!!!!!!!!"
+ icon_state = "ice_tea_can"
+ New()
+ ..()
+ reagents.add_reagent("icetea", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice
+ name = "Grapel Juice"
+ desc = "500 pages of rules of how to appropriately enter into a combat with this juice!"
+ icon_state = "purple_can"
+ New()
+ ..()
+ reagents.add_reagent("grapejuice", 30)
+ src.pixel_x = rand(-10.0, 10)
+ src.pixel_y = rand(-10.0, 10)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/tonic
+ name = "T-Borg's Tonic Water"
+ desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
+ icon_state = "tonic"
+ New()
+ ..()
+ reagents.add_reagent("tonic", 50)
+
+/obj/item/weapon/reagent_containers/food/drinks/cans/sodawater
+ name = "Soda Water"
+ desc = "A can of soda water. Why not make a scotch and soda?"
+ icon_state = "sodawater"
+ New()
+ ..()
+ reagents.add_reagent("sodawater", 50)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index 86bd97d7ea..d6eb52bd04 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -242,128 +242,6 @@
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
-/obj/item/weapon/reagent_containers/food/drinks/cola
- name = "Space Cola"
- desc = "Cola. in space."
- icon_state = "cola"
- New()
- ..()
- reagents.add_reagent("cola", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/waterbottle
- name = "Bottled Water"
- desc = "Introduced to the vending machines on health nut protest, taste fresh, pure glacial* water! *Note: Might be tapwater."
- icon_state = "waterbottle"
- New()
- ..()
- reagents.add_reagent("water", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/beer
- name = "Space Beer"
- desc = "Beer. In space."
- icon_state = "beer"
- New()
- ..()
- reagents.add_reagent("beer", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/ale
- name = "Magm-Ale"
- desc = "A true dorf's drink of choice."
- icon_state = "alebottle"
- item_state = "beer"
- New()
- ..()
- reagents.add_reagent("ale", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-
-/obj/item/weapon/reagent_containers/food/drinks/space_mountain_wind
- name = "Space Mountain Wind"
- desc = "Blows right through you like a space wind."
- icon_state = "space_mountain_wind"
- New()
- ..()
- reagents.add_reagent("spacemountainwind", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/thirteenloko
- name = "Thirteen Loko"
- desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
- icon_state = "thirteen_loko"
- New()
- ..()
- reagents.add_reagent("thirteenloko", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/dr_gibb
- name = "Dr. Gibb"
- desc = "A delicious mixture of 42 different flavors."
- icon_state = "dr_gibb"
- New()
- ..()
- reagents.add_reagent("dr_gibb", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/starkist
- name = "Star-kist"
- desc = "The taste of a star in liquid form. And, a bit of tuna...?"
- icon_state = "starkist"
- New()
- ..()
- reagents.add_reagent("cola", 15)
- reagents.add_reagent("orangejuice", 15)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/space_up
- name = "Space-Up"
- desc = "Tastes like a hull breach in your mouth."
- icon_state = "space-up"
- New()
- ..()
- reagents.add_reagent("space_up", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/lemon_lime
- name = "Lemon-Lime"
- desc = "You wanted ORANGE. It gave you Lemon Lime."
- icon_state = "lemon-lime"
- New()
- ..()
- reagents.add_reagent("lemon_lime", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/iced_tea
- name = "Vrisk Serket Iced Tea"
- desc = "That sweet, refreshing southern earthy flavor. That's where it's from, right? South Earth? Whatever!!!!!!!!"
- icon_state = "ice_tea_can"
- New()
- ..()
- reagents.add_reagent("icetea", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
-
-/obj/item/weapon/reagent_containers/food/drinks/grape_juice
- name = "Grapel Juice"
- desc = "500 pages of rules of how to appropriately enter into a combat with this juice!"
- icon_state = "purple_can"
- New()
- ..()
- reagents.add_reagent("grapejuice", 30)
- src.pixel_x = rand(-10.0, 10)
- src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/sillycup
name = "Paper Cup"
@@ -381,21 +259,7 @@
else
icon_state = "water_cup_e"
-/obj/item/weapon/reagent_containers/food/drinks/tonic
- name = "T-Borg's Tonic Water"
- desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
- icon_state = "tonic"
- New()
- ..()
- reagents.add_reagent("tonic", 50)
-/obj/item/weapon/reagent_containers/food/drinks/sodawater
- name = "Soda Water"
- desc = "A can of soda water. Why not make a scotch and soda?"
- icon_state = "sodawater"
- New()
- ..()
- reagents.add_reagent("sodawater", 50)
//////////////////////////drinkingglass and shaker//
//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass
diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
index b8be5cf0bd..2c59a75ae8 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm
@@ -671,7 +671,7 @@
throw_impact(atom/hit_atom)
..()
- new/obj/effect/decal/cleanable/oil(src.loc)
+ new/obj/effect/decal/cleanable/blood/oil(src.loc)
src.visible_message("The [src.name] has been squashed.","You hear a smack.")
src.reagents.reaction(get_turf(hit_atom))
for(var/atom/A in get_turf(hit_atom))
@@ -1003,7 +1003,7 @@
var/list/turfs = new/list()
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
if(inner_teleport_radius < 1) //Wasn't potent enough, it just splats.
- new/obj/effect/decal/cleanable/oil(src.loc)
+ new/obj/effect/decal/cleanable/blood/oil(src.loc)
src.visible_message("The [src.name] has been squashed.","You hear a smack.")
del(src)
return
@@ -1040,7 +1040,7 @@
sleep(1)
s.set_up(3, 1, A)
s.start()
- new/obj/effect/decal/cleanable/oil(src.loc)
+ new/obj/effect/decal/cleanable/blood/oil(src.loc)
src.visible_message("The [src.name] has been squashed, causing a distortion in space-time.","You hear a splat and a crackle.")
del(src)
return
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 94bb46e354..04eff0de6e 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -1325,7 +1325,7 @@
src.streak(dirs)
-/obj/effect/decal/cleanable/robot_debris/gib/pipe_eject(var/direction)
+/obj/effect/decal/cleanable/blood/gibs/robot/pipe_eject(var/direction)
var/list/dirs
if(direction)
dirs = list( direction, turn(direction, -45), turn(direction, 45))
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index e73434a2f3..31751cdfff 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1528,6 +1528,14 @@ datum/design/stunshell
materials = list("$metal" = 4000)
build_path = "/obj/item/ammo_casing/shotgun/stunshell"
+datum/design/plasmapistol
+ name = "plasma pistol"
+ desc = "A specialized firearm designed to fire lethal bolts of toxins."
+ id = "ppistol"
+ req_tech = list("combat" = 5, "plasmatech" = 4)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000)
+ build_path = "/obj/item/weapon/gun/energy/toxgun"
/////////////////////////////////////////
/////////////////Mining//////////////////
/////////////////////////////////////////
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 4cc18d6434..103969bdd1 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -394,10 +394,10 @@ won't update every console in existence) but it's more of a hassle to do. Also,
new_item.investigate_log("built by [key]","singulo")
new_item.reliability = being_built.reliability
if(linked_lathe.hacked) being_built.reliability = max((reliability / 2), 0)
- if(being_built.locked)
+ /*if(being_built.locked)
var/obj/item/weapon/storage/lockbox/L = new/obj/item/weapon/storage/lockbox(linked_lathe.loc)
new_item.loc = L
- L.name += " ([new_item.name])"
+ L.name += " ([new_item.name])"*/
else
new_item.loc = linked_lathe.loc
linked_lathe.busy = 0
diff --git a/code/modules/surgery/braincore.dm b/code/modules/surgery/braincore.dm
index d94615c953..b9f3fe24a4 100644
--- a/code/modules/surgery/braincore.dm
+++ b/code/modules/surgery/braincore.dm
@@ -85,12 +85,18 @@
user.visible_message("\blue [user] separates [target]'s brain from \his spine with \the [tool].", \
"\blue You separate [target]'s brain from spine with \the [tool].")
+ var/mob/living/simple_animal/borer/borer = target.has_brain_worms()
+
+ if(borer)
+ borer.detatch() //Should remove borer if the brain is removed - RR
+
user.attack_log += "\[[time_stamp()]\] Debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])"
target.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)])"
msg_admin_attack("[user.name] ([user.ckey]) debrained [target.name] ([target.ckey]) with [tool.name] (INTENT: [uppertext(user.a_intent)]) (JMP)")
var/obj/item/brain/B = new(target.loc)
B.transfer_identity(target)
+ target.internal_organs -= B
target:brain_op_stage = 4.0
target.death()//You want them to die after the brain was transferred, so not to trigger client death() twice.
diff --git a/code/world.dm b/code/world.dm
index 3d1ad20db9..de70b60fe6 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -11,7 +11,6 @@
/world/New()
//logs
var/date_string = time2text(world.realtime, "YYYY/MM-Month/DD-Day")
- log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM")].log") //funtimelog
href_logfile = file("data/logs/[date_string] hrefs.htm")
diary = file("data/logs/[date_string].log")
diaryofmeanpeople = file("data/logs/[date_string] Attack.log")
@@ -28,6 +27,9 @@
// dumb and hardcoded but I don't care~
config.server_name += " #[(world.port % 1000) / 100]"
+ if(config && config.log_runtime)
+ log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM-DD-(hh-mm-ss)")]-runtime.log")
+
callHook("startup")
//Emergency Fix
load_mods()
diff --git a/config/example/config.txt b/config/example/config.txt
index fb320da581..783adb23af 100644
--- a/config/example/config.txt
+++ b/config/example/config.txt
@@ -61,6 +61,9 @@ LOG_PDA
## log all Topic() calls (for use by coders in tracking down Topic issues)
# LOG_HREFS
+## log world.log and runtime errors to a file
+# LOG_RUNTIME
+
## log admin warning messages
##LOG_ADMINWARN ## Also duplicates a bunch of other messages.
@@ -229,3 +232,9 @@ USEALIENWHITELIST
## Path to the python2 executable on the system. Leave blank for default.
## Default is "python" on Windows, "/usr/bin/env python2" on UNIX.
#PYTHON_PATH
+
+## Uncommen to allow ghosts to write in blood during Cult rounds.
+ALLOW_CULT_GHOSTWRITER
+
+## Sets the minimum number of cultists needed for ghosts to write in blood.
+REQ_CULT_GHOSTWRITER 6
diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi
index 92c2e7ddf2..c254397a20 100644
Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ
diff --git a/icons/effects/drip.dmi b/icons/effects/drip.dmi
index c78843e586..a756bc10f8 100644
Binary files a/icons/effects/drip.dmi and b/icons/effects/drip.dmi differ
diff --git a/icons/effects/fluidtracks.dmi b/icons/effects/fluidtracks.dmi
new file mode 100644
index 0000000000..58e8fae934
Binary files /dev/null and b/icons/effects/fluidtracks.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index e269d169aa..0fb7e01d0d 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index f2e678f1a0..94aba05f82 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ
diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi
index 7cb9ceee25..f01791ddf9 100644
Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 0cca8337fc..2e79482b4b 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index 0502c01147..006a6c64b1 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index c24d402315..1af9e65c5c 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index b15d273426..4e023c6bca 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index cd7d868ea8..392ac02823 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index 52ee7b48a6..6ce20a48e9 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 1683755a16..30c53fc8f9 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index a230140edc..05f5f846a7 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index 02f432f3dd..4a8c1d3b46 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 85dc31a6aa..f3af00ae93 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index 7fa4cb7b78..83cb8881ae 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index 5678e44ec7..c4c5d20eca 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 157a78e440..8e99ed4bf4 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index 632aee5f3b..de9a335a70 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi
index 8e7e0c4b39..cd4ef82568 100644
Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 8dd01d7d2c..ece6723b62 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/guncabinet.dmi b/icons/obj/guncabinet.dmi
new file mode 100644
index 0000000000..49d7db0840
Binary files /dev/null and b/icons/obj/guncabinet.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 0a85b397fd..2a48f951e8 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index cbbef92efa..ae70160d50 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm
index f46ac6fa64..3dc33c10d1 100644
--- a/maps/tgstation2.dmm
+++ b/maps/tgstation2.dmm
@@ -533,7 +533,7 @@
"akm" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station)
"akn" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station)
"ako" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station)
-"akp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station)
+"akp" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station)
"akq" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/security/brig)
"akr" = (/obj/structure/stool/bed,/turf/simulated/floor{icon_state = "white"},/area/security/brig)
"aks" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/security/brig)
@@ -825,7 +825,7 @@
"apS" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/security/detectives_office)
"apT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"apU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
-"apV" = (/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
+"apV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"apW" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "security_airlock"; name = "interior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"apX" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "security_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"apY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "security_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "security_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
@@ -897,7 +897,7 @@
"arm" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor,/area/maintenance/fsmaint)
"arn" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aro" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Security Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
-"arp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/decal/cleanable/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
+"arp" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"arq" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"arr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"ars" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
@@ -907,7 +907,7 @@
"arw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"arx" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "arrivals_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"ary" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint)
-"arz" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"arz" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep{name = "Security Wing Dormitories"})
"arA" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
"arB" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
"arC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec)
@@ -935,7 +935,7 @@
"arY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"arZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"asa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
-"asb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/cleanable/robot_debris,/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
+"asb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/cleanable/blood/gibs/robot,/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"asc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/fsmaint)
"asd" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/maintenance/fsmaint)
"ase" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/maintenance/fsmaint)
@@ -944,10 +944,10 @@
"ash" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/effect/landmark{name = "Syndicate Breach Area"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"asi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"asj" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod1/station)
-"ask" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hydroponics)
+"ask" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/structure/flora/pottedplant{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"asl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod1/station)
"asm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape_pod2/station)
-"asn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hydroponics)
+"asn" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/flora/pottedplant{tag = "icon-plant-01"; icon_state = "plant-01"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aso" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod2/station)
"asp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
"asq" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/hos,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
@@ -1037,7 +1037,7 @@
"atW" = (/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec)
"atX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep/sec)
"atY" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/britcup{pixel_x = 4; pixel_y = 5},/obj/machinery/camera{c_tag = "Security Dormitories East"; dir = 8; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
-"atZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hydroponics)
+"atZ" = (/obj/structure/flora/pottedplant{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aua" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/requests_console{pixel_x = -30},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"aub" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Internal Affairs Agent"},/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
"auc" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/turf/simulated/floor{icon_state = "cult"; dir = 2},/area/lawoffice)
@@ -1049,10 +1049,10 @@
"aui" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep)
"auj" = (/obj/machinery/cryopod/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep{name = "\improper Cryogenic Storage"})
"auk" = (/obj/structure/cryofeed/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep{name = "\improper Cryogenic Storage"})
-"aul" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hydroponics)
-"aum" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"aun" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep{name = "Dorm Two"})
-"auo" = (/obj/structure/table/woodentable,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
+"aul" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/flora/pottedplant{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep{name = "Dorm Two"})
+"aum" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/wood,/area/crew_quarters/sleep/sec)
+"aun" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station)
+"auo" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station)
"aup" = (/obj/machinery/power/apc{dir = 8; name = "Fitness Room APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness)
"auq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/crew_quarters/fitness)
"aur" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/crew_quarters/fitness)
@@ -1094,8 +1094,8 @@
"avb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"avc" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/crew_quarters/sleep{name = "Dorm Two"})
"avd" = (/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep)
-"ave" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod1/station)
-"avf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod2/station)
+"ave" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
+"avf" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/flora/pottedplant{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness)
"avg" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness)
"avh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/fitness)
"avi" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness)
@@ -1132,11 +1132,11 @@
"avN" = (/obj/machinery/door/airlock{id_tag = "Dorm3"; name = "Dorm 3"},/turf/simulated/floor/carpet{icon_state = "carpet8-0"},/area/crew_quarters/sleep{name = "Dorm Two"})
"avO" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/crew_quarters/sleep)
"avP" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/sleep)
-"avQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
+"avQ" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
"avR" = (/turf/simulated/floor{icon_state = "neutral"; dir = 1},/area/crew_quarters/sleep)
-"avS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness)
-"avT" = (/obj/structure/grille,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/window/plasmareinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab)
-"avU" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/window/plasmareinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab)
+"avS" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/structure/flora/pottedplant{tag = "icon-plant-17"; icon_state = "plant-17"},/turf/simulated/floor{icon_state = "bcarpet02"},/area/medical/psych)
+"avT" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/research/station)
+"avU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/structure/flora/pottedplant{tag = "icon-plant-09"; icon_state = "plant-09"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"avV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"avW" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/fitness)
"avX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/crew_quarters/fitness)
@@ -1178,7 +1178,7 @@
"awH" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/crew_quarters/sleep{name = "Dorm Two"})
"awI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/mime,/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep{name = "Dorm Two"})
"awJ" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/crew_quarters/sleep{name = "Dorm Two"})
-"awK" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/window/plasmareinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab)
+"awK" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/secure/safe{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"awL" = (/turf/simulated/floor,/area/crew_quarters/sleep)
"awM" = (/obj/structure/table/woodentable,/turf/simulated/floor,/area/crew_quarters/sleep)
"awN" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/silver,/turf/simulated/floor,/area/crew_quarters/sleep)
@@ -1330,7 +1330,7 @@
"azD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/light,/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness)
"azE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -1; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness)
"azF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -25},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = -2; pixel_y = 0},/obj/item/weapon/reagent_containers/food/drinks/sillycup{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness)
-"azG" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/grille,/turf/simulated/floor/engine,/area/toxins/misc_lab)
+"azG" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/secure/safe{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"azH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "neutral"},/area/crew_quarters/fitness)
"azI" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "neutral"; dir = 6},/area/crew_quarters/fitness)
"azJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/crew_quarters/fitness)
@@ -1684,7 +1684,7 @@
"aGt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/chapel/main)
"aGu" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/main)
"aGv" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/space,/area)
-"aGw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/mining/station)
+"aGw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"aGx" = (/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"aGy" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "whitecorner"},/area/hallway/secondary/entry)
"aGz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/security/checkpoint2)
@@ -2026,7 +2026,7 @@
"aMX" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/secondary/entry)
"aMY" = (/obj/structure/grille,/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/hallway/secondary/entry)
"aMZ" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry)
-"aNa" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/simulated/floor/carpet,/area/hallway/secondary/entry)
+"aNa" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chips,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/simulated/floor/carpet,/area/hallway/secondary/entry)
"aNb" = (/turf/simulated/floor/carpet,/area/hallway/secondary/entry)
"aNc" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry)
"aNd" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry)
@@ -2198,7 +2198,7 @@
"aQn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aQo" = (/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aQp" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"aQq" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "bcarpet02"},/area/medical/psych)
+"aQq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"aQr" = (/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aQs" = (/obj/machinery/disposal,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar)
"aQt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/kitchen)
@@ -2746,11 +2746,11 @@
"baP" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen)
"baQ" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen)
"baR" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/hydroponics)
-"baS" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/window/plasmareinforced,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
-"baT" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/obj/structure/window/plasmareinforced,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
+"baS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hydroponics)
+"baT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hydroponics)
"baU" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/northleft{name = "Hydroponics Desk"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics)
"baV" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/window/westright{dir = 1; name = "Hydroponics Desk"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics)
-"baW" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
+"baW" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hydroponics)
"baX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/starboard)
"baY" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/hallway/primary/starboard)
"baZ" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/library)
@@ -2826,7 +2826,7 @@
"bcr" = (/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard)
"bcs" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard)
"bct" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics)
-"bcu" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
+"bcu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hydroponics)
"bcv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/starboard)
"bcw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/library)
"bcx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/chapel/main)
@@ -2935,7 +2935,7 @@
"bew" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
"bex" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bey" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/crew_quarters/captain)
-"bez" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/office)
+"bez" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window{dir = 1},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"beA" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
"beB" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard)
"beC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/starboard)
@@ -3146,7 +3146,7 @@
"biz" = (/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"biA" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"biB" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
-"biC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/research/station)
+"biC" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Dorms APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable,/obj/structure/flora/pottedplant{tag = "icon-plant-13"; icon_state = "plant-13"},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"biD" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"biE" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
"biF" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = "Used for watching the department."; name = "Medical Monitor"; network = list("Medical")},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
@@ -3182,7 +3182,7 @@
"bjj" = (/obj/machinery/door_control{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/machinery/driver_button{id = "trash"; pixel_x = -26; pixel_y = -6},/turf/simulated/floor/plating,/area/maintenance/disposal)
"bjk" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating,/area/maintenance/disposal)
"bjl" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/maintenance/disposal)
-"bjm" = (/obj/effect/decal/cleanable/oil,/obj/machinery/power/apc{dir = 4; name = "Disposal APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/disposal)
+"bjm" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
"bjn" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/port)
"bjo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port)
"bjp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port)
@@ -3523,7 +3523,7 @@
"bpM" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency)
"bpN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/research/station)
"bpO" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/research/station)
-"bpP" = (/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/quartermaster/office)
+"bpP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"bpQ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/research/station)
"bpR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
"bpS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
@@ -3546,7 +3546,7 @@
"bqj" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor,/area/quartermaster/office)
"bqk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/quartermaster/office)
"bql" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/firealarm{pixel_y = 27},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/quartermaster/office)
-"bqm" = (/obj/structure/stool/bed/chair,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bqm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hydroponics)
"bqn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/central)
"bqo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central)
"bqp" = (/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/structure/table,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads)
@@ -3618,7 +3618,7 @@
"brD" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/window/westleft{name = "Cargo Desk"; req_access_txt = "50"},/obj/structure/noticeboard{pixel_y = 27},/turf/simulated/floor,/area/quartermaster/office)
"brE" = (/turf/simulated/floor{icon_state = "delivery"},/area/quartermaster/office)
"brF" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/quartermaster/office)
-"brG" = (/obj/structure/closet/wardrobe/engineering_yellow,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; opacity = 0},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"brG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/misc_lab)
"brH" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/hallway/primary/central)
"brI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/hallway/primary/central)
"brJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/central)
@@ -4307,7 +4307,7 @@
"bEQ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall/r_wall,/area/toxins/test_area)
"bER" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/mining/station)
"bES" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/mining/station)
-"bET" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 1},/obj/item/weapon/bedsheet/rd,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/storage/secure/safe{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bET" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station)
"bEU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/mining/station)
"bEV" = (/obj/machinery/computer/security/mining,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/camera{c_tag = "Mining Dock"; dir = 4; network = list("SS13")},/turf/simulated/floor,/area/quartermaster/miningdock)
"bEW" = (/turf/simulated/floor,/area/quartermaster/miningdock)
@@ -4347,7 +4347,7 @@
"bFE" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bFF" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bFG" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
-"bFH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = -3; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = 4; pixel_y = 3},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/medical/medbreak)
+"bFH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb{pixel_x = -3; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb{pixel_x = 4; pixel_y = 3},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/medical/medbreak)
"bFI" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/surgery)
"bFJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
"bFK" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
@@ -4649,7 +4649,7 @@
"bLu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bLv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bLw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/surgery)
-"bLx" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/light,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bLx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"bLy" = (/obj/structure/noticeboard{pixel_y = 28},/obj/structure/stool/bed/psych,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor{icon_state = "bcarpet02"},/area/medical/psych)
"bLz" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Medical_Psychiatry"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/psych)
"bLA" = (/obj/machinery/alarm{pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown,/turf/simulated/floor{icon_state = "bcarpet01"},/area/medical/psych)
@@ -4678,7 +4678,7 @@
"bLX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bLY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bLZ" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
-"bMa" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
+"bMa" = (/obj/effect/decal/cleanable/blood/oil,/obj/machinery/power/apc{dir = 4; name = "Disposal APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/disposal)
"bMb" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
"bMc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bMd" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
@@ -4941,10 +4941,10 @@
"bRa" = (/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"bRb" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bRc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
-"bRd" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 1},/obj/item/weapon/bedsheet/rd,/obj/item/weapon/storage/secure/safe{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
-"bRe" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bRd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/misc_lab)
+"bRe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/misc_lab)
"bRf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/misc_lab)
-"bRg" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 1},/obj/item/weapon/bedsheet/rd,/obj/machinery/light{dir = 8},/obj/item/weapon/storage/secure/safe{pixel_y = -25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bRg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/toxins/misc_lab)
"bRh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/toxins/misc_lab)
"bRi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab)
"bRj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab)
@@ -4999,7 +4999,7 @@
"bSg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"},/area/medical/virology)
"bSh" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/toxins/misc_lab)
"bSi" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/shieldwallgen{req_access = list(55)},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
-"bSj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; opacity = 0},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bSj" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bSk" = (/obj/machinery/sparker{id = "Miscresearch"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/misc_lab)
"bSl" = (/obj/machinery/light,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bSm" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"})
@@ -5346,7 +5346,7 @@
"bYP" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bYQ" = (/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/toxins/xenobiology)
"bYR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
-"bYS" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"bYS" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"bYT" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics_cloning)
"bYU" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar)
"bYV" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
@@ -5470,7 +5470,7 @@
"cbj" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"cbk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "10;13"},/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"cbl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
-"cbm" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Dorms APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cbm" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/flora/pottedplant{tag = "icon-plant-20"; icon_state = "plant-20"},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"cbn" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station)
"cbo" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station)
"cbp" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station)
@@ -5826,8 +5826,8 @@
"cib" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cic" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cid" = (/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
-"cie" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
-"cif" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/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/crew_quarters/sleep/engi)
+"cie" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window{dir = 2},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cif" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"cig" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Station Engineer"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/engine/break_room)
"cih" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/break_room)
"cii" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room)
@@ -5839,13 +5839,13 @@
"cio" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
"cip" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/hallway/primary/aft)
"ciq" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
-"cir" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/grille,/obj/structure/window/plasmareinforced,/turf/simulated/floor/engine,/area/toxins/misc_lab)
-"cis" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/grille,/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (NORTH)"; icon_state = "plasmarwindow"; dir = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab)
+"cir" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cis" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"cit" = (/turf/simulated/wall/r_wall,/area/crew_quarters/sleep/engi)
-"ciu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station)
+"ciu" = (/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
"civ" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; icon_state = "intact-r"; level = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos)
-"ciw" = (/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (EAST)"; icon_state = "plasmarwindow"; dir = 4},/obj/structure/window/plasmareinforced{tag = "icon-plasmarwindow (WEST)"; icon_state = "plasmarwindow"; dir = 8},/obj/structure/window/plasmareinforced,/obj/structure/grille,/turf/simulated/floor/engine,/area/toxins/misc_lab)
-"cix" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 2},/obj/item/weapon/bedsheet/rd,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"ciw" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/maintenance/aft)
+"cix" = (/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
"ciy" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room)
"ciz" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos)
"ciA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/machinery/light,/obj/structure/reagent_dispensers/virusfood{pixel_x = -30},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
@@ -5879,7 +5879,7 @@
"cjc" = (/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"cjd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-y"},/turf/simulated/floor{dir = 2; icon_state = "caution"},/area/engine/break_room)
"cje" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
-"cjf" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; opacity = 0},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cjf" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
"cjg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos)
"cjh" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos)
"cji" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos)
@@ -5914,13 +5914,13 @@
"cjL" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/solar/starboard)
"cjM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar)
"cjN" = (/turf/simulated/wall/r_wall,/area/maintenance/portsolar)
-"cjO" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 2},/obj/item/weapon/bedsheet/rd,/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cjO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
"cjP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor,/area/engine/break_room)
"cjQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
"cjR" = (/obj/structure/table/reinforced{icon_state = "table"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/engine/break_room)
"cjS" = (/obj/structure/table/reinforced{icon_state = "table"},/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/simulated/floor,/area/engine/break_room)
"cjT" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/break_room)
-"cjU" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cjU" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
"cjV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"cjW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"cjX" = (/turf/simulated/wall/r_wall,/area/engine/storage_hard)
@@ -5970,7 +5970,7 @@
"ckP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room)
"ckQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room)
"ckR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/break_room)
-"ckS" = (/obj/machinery/atmospherics/unary/vent_pump,/obj/structure/closet/wardrobe/engineering_yellow,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; opacity = 0},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"ckS" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci)
"ckT" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/engine/chiefs_office)
"ckU" = (/turf/simulated/wall/r_wall,/area/engine/engineering)
"ckV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office)
@@ -5979,7 +5979,7 @@
"ckY" = (/obj/structure/closet/wardrobe/engineering_yellow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/engine/break_room)
"ckZ" = (/obj/machinery/computer/security/engineering,/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/engine/break_room)
"cla" = (/obj/machinery/door/airlock/engineering{name = "Engineering Washroom"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/crew_quarters/sleep/engi)
-"clb" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; opacity = 0},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; opacity = 0},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"clb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/unsimulated/beach/sand,/area/beach)
"clc" = (/obj/structure/grille,/obj/structure/window/reinforced,/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/atmos)
"cld" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact-g"; dir = 6; level = 2; pipe_color = "green"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos)
"cle" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/atmos)
@@ -6071,7 +6071,7 @@
"cmM" = (/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/airless,/area/maintenance/portsolar)
"cmN" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/aft)
"cmO" = (/obj/item/weapon/cable_coil{amount = 5},/turf/simulated/floor/plating,/area/maintenance/aft)
-"cmP" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/aft)
+"cmP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach)
"cmQ" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/atmos)
"cmR" = (/turf/simulated/wall/r_wall,/area/engine/storage)
"cmS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/storage)
@@ -6586,7 +6586,7 @@
"cwH" = (/turf/simulated/floor/holofloor{icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre)
"cwI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Lobby"; req_one_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft)
"cwJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Lobby"; req_one_access_txt = "0"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.4; name = "Engineering Firelock"},/turf/simulated/floor,/area/hallway/primary/aft)
-"cwK" = (/obj/structure/stool/bed,/obj/machinery/door/window{dir = 2},/obj/item/weapon/bedsheet/rd,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/storage/secure/safe{pixel_y = 25},/turf/simulated/floor{icon_state = "yellowfull"; dir = 8},/area/crew_quarters/sleep/engi)
+"cwK" = (/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor,/area/derelict/bridge)
"cwL" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_emptycourt)
"cwM" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_emptycourt)
"cwN" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_emptycourt)
@@ -6659,9 +6659,9 @@
"cyc" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/escape_pod3/transit)
"cyd" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod3/transit)
"cye" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor{icon_state = "snow"},/area/holodeck/source_snowfield)
-"cyf" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
-"cyg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"cyh" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding)
+"cyf" = (/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor,/area/derelict/bridge/access)
+"cyg" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
+"cyh" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"cyi" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_basketball)
"cyj" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_basketball)
"cyk" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/source_basketball)
@@ -6674,9 +6674,7 @@
"cyr" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod3/transit)
"cys" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod3/transit)
"cyt" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor{icon_state = "snow"},/area/holodeck/source_snowfield)
-"cyu" = (/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},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"cyv" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cyw" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cyu" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"cyx" = (/turf/simulated/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/source_basketball)
"cyy" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_basketball)
"cyz" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/source_basketball)
@@ -6906,7 +6904,7 @@
"cCP" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area)
"cCQ" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"cCR" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
-"cCS" = (/obj/machinery/vending/cola,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cCS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office)
"cCT" = (/obj/machinery/computer/syndicate_station{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"cCU" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
"cCV" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
@@ -7118,7 +7116,6 @@
"cGT" = (/obj/machinery/atm{pixel_y = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living)
"cGU" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living)
"cGV" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
-"cGW" = (/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
"cGX" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living)
"cGY" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living)
"cGZ" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/living)
@@ -7128,7 +7125,6 @@
"cHd" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/suppy)
"cHe" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/space,/area/shuttle/administration/centcom)
"cHf" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration/centcom)
-"cHg" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
"cHh" = (/obj/structure/table,/obj/machinery/juicer{pixel_y = 6},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/centcom/living)
"cHi" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{name = "plating"},/area/centcom/living)
"cHj" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/living)
@@ -7472,14 +7468,14 @@
"cNJ" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"cNK" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops)
"cNL" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
-"cNM" = (/turf/unsimulated/beach/water,/area/centcom/holding)
+"cNM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{layer = 2.9; pixel_x = 2; pixel_y = 3},/turf/unsimulated/floor{dir = 0; icon_state = "whitegreen"},/area/centcom/holding)
"cNN" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control)
"cNO" = (/obj/machinery/door/airlock/external,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
"cNP" = (/obj/structure/table/woodentable{dir = 9},/obj/item/weapon/reagent_containers/food/drinks/flask,/obj/item/clothing/mask/cigarette/cigar/havana,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNQ" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("ERT")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNR" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
"cNS" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed)
-"cNT" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cNT" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/adv{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/adv{pixel_x = -2},/turf/unsimulated/floor{dir = 0; icon_state = "whitegreen"},/area/centcom/holding)
"cNU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor,/area/centcom/control)
"cNV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops)
"cNW" = (/turf/unsimulated/floor{icon_state = "loadingarea"},/area/centcom/specops)
@@ -7503,47 +7499,45 @@
"cOo" = (/obj/machinery/camera{c_tag = "Spec. Ops. Shuttle"; dir = 2; network = list("ERT")},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cOp" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cOq" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
-"cOr" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cOs" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"cOt" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"cOu" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cOr" = (/obj/structure/stool/bed/roller,/turf/unsimulated/floor{dir = 0; icon_state = "whitegreen"},/area/centcom/holding)
+"cOs" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/unsimulated/floor{dir = 6; icon_state = "whitegreen"},/area/centcom/holding)
+"cOt" = (/obj/machinery/iv_drip,/turf/unsimulated/floor{tag = "icon-whitecorner (NORTH)"; icon_state = "whitecorner"; dir = 1},/area/centcom/holding)
+"cOu" = (/obj/machinery/computer/operating,/turf/unsimulated/floor{dir = 1; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding)
"cOv" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{desc = ""; name = "Spec. Ops. Monitor"; network = list("ERT"); pixel_y = 30},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cOw" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "NTrasen"; name = "Outer Airlock"; p_open = 0},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom)
"cOx" = (/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom)
"cOy" = (/turf/unsimulated/wall,/area/centcom/ferry)
-"cOz" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cOA" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon_state = "entertainment"; pixel_y = -30},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cOz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/centcom/holding)
+"cOA" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = -4; pixel_y = -3; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 4; pixel_y = 5; pixel_x = 0; pixel_y = 0},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreen"},/area/centcom/holding)
"cOB" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape/centcom)
-"cOC" = (/turf/unsimulated/beach/coastline,/area/centcom/holding)
-"cOD" = (/obj/machinery/vending/snack,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cOE" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding)
+"cOE" = (/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
"cOF" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom)
"cOG" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cOH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom)
"cOI" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom)
-"cOJ" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cOK" = (/obj/machinery/vending/coffee,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cOJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/centcom/holding)
+"cOK" = (/turf/unsimulated/floor{dir = 4; icon_state = "whitegreen"},/area/centcom/holding)
"cOL" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cOM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cON" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"cOO" = (/turf/unsimulated/beach/sand,/area/centcom/holding)
-"cOP" = (/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},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cOO" = (/obj/machinery/body_scanconsole,/turf/unsimulated/floor{tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4},/area/centcom/holding)
+"cOP" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = -4; pixel_y = -3; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 4; pixel_y = 5; pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"cOQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/specops/centcom)
"cOR" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"cOS" = (/obj/structure/rack,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cOT" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"cOU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cOS" = (/turf/unsimulated/floor{tag = "icon-whitehall (EAST)"; icon_state = "whitehall"; dir = 4},/area/centcom/holding)
+"cOT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/centcom/holding)
+"cOU" = (/turf/unsimulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/centcom/holding)
"cOV" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
"cOW" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cOX" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cOY" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cOZ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cPa" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cPb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
-"cPc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cPb" = (/turf/unsimulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/centcom/holding)
+"cPc" = (/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding)
"cPd" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cPe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cPf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cPe" = (/obj/structure/table,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/scalpel,/turf/unsimulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding)
+"cPf" = (/obj/machinery/bodyscanner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"cPg" = (/turf/unsimulated/wall{desc = "Why it no open!"; icon_state = "pdoor1"; name = "Shuttle Bay Blast Door"},/area/centcom/ferry)
"cPh" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 8},/area/centcom/ferry)
"cPi" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
@@ -7563,7 +7557,7 @@
"cPw" = (/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},/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom)
"cPx" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/transport1/centcom)
"cPy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/space,/area/shuttle/transport1/centcom)
-"cPz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cPz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"cPA" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cPB" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/transport1/centcom)
"cPC" = (/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
@@ -7573,92 +7567,89 @@
"cPG" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom)
"cPH" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/window/reinforced,/turf/space,/area/shuttle/transport1/centcom)
"cPI" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"cPJ" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom)
+"cPJ" = (/obj/structure/table,/obj/item/weapon/cautery{pixel_y = 4},/obj/item/weapon/hemostat{pixel_y = 4},/turf/unsimulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding)
"cPK" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/evac)
"cPL" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cPM" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cPN" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
"cPO" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
-"cPP" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cPQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cPR" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding)
+"cPP" = (/obj/structure/table,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/turf/unsimulated/floor{tag = "icon-whitecorner"; name = "plating"; icon_state = "whitecorner"},/area/centcom/holding)
+"cPQ" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/unsimulated/floor{tag = "icon-whitecorner (WEST)"; icon_state = "whitecorner"; dir = 8},/area/centcom/holding)
+"cPR" = (/obj/structure/table,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/turf/unsimulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (SOUTHEAST)"},/area/centcom/holding)
"cPS" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cPT" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"cPT" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/unsimulated/floor{dir = 8; icon_state = "whitehall"; tag = "icon-whitehall (EAST)"},/area/centcom/holding)
"cPU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport1/centcom)
"cPV" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/transport1/centcom)
"cPW" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/transport1/centcom)
"cPX" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom)
"cPY" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/transport1/centcom)
"cPZ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/shuttle/transport1/centcom)
-"cQa" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQb" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"cQa" = (/turf/unsimulated/floor{dir = 9; icon_state = "whitegreen"},/area/centcom/holding)
+"cQb" = (/turf/unsimulated/floor{dir = 5; icon_state = "whitegreen"},/area/centcom/holding)
"cQc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/ferry)
-"cQd" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQe" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQg" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"cQd" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cQe" = (/turf/unsimulated/floor{dir = 10; icon_state = "whitegreen"},/area/centcom/holding)
+"cQf" = (/turf/unsimulated/floor{dir = 6; icon_state = "whitegreen"},/area/centcom/holding)
+"cQg" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding)
"cQh" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"cQi" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQj" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cQi" = (/obj/machinery/atmospherics/pipe/tank/oxygen{dir = 1; volume = 3200},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cQj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/turf/unsimulated/floor{dir = 8; icon_state = "whitegreen"},/area/centcom/holding)
"cQk" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"cQl" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cQl" = (/turf/unsimulated/floor{tag = "icon-escapecorner (EAST)"; icon_state = "escapecorner"; dir = 4},/area/centcom/holding)
"cQm" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/transport1/centcom)
"cQn" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/transport1/centcom)
-"cQo" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
-"cQp" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQq" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"cQr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
-"cQs" = (/obj/structure/table,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQt" = (/turf/unsimulated/floor{dir = 6; icon_state = "warning"},/area/centcom/control)
-"cQu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
-"cQv" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"cQo" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
+"cQp" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQq" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitegreen"},/area/centcom/holding)
+"cQr" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4; layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-whitecorner (NORTH)"; icon_state = "whitecorner"; dir = 1},/area/centcom/holding)
+"cQt" = (/turf/unsimulated/floor{tag = "icon-whitehall (NORTHWEST)"; icon_state = "whitehall"; dir = 9},/area/centcom/holding)
+"cQu" = (/obj/structure/sign/nosmoking_2{pixel_x = 28; pixel_y = 0},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding)
+"cQv" = (/turf/unsimulated/floor{tag = "icon-whitehall (NORTHEAST)"; icon_state = "whitehall"; dir = 5},/area/centcom/holding)
"cQw" = (/turf/unsimulated/floor{icon_state = "warning"},/area/centcom/evac)
-"cQx" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cQy" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
+"cQy" = (/obj/structure/closet/secure_closet/medical2,/turf/unsimulated/floor{tag = "icon-escapecorner (EAST)"; icon_state = "escapecorner"; dir = 4},/area/centcom/holding)
"cQz" = (/turf/unsimulated/wall,/area/centcom/holding)
-"cQA" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQB" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cQC" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding)
-"cQD" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQE" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQF" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"cQG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cQH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
-"cQI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/control)
-"cQJ" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{icon_state = "warning"; dir = 1; heat_capacity = 1},/area/centcom/evac)
-"cQK" = (/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/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
-"cQL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cQM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
-"cQN" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"cQO" = (/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/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
-"cQP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cQA" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/ferry)
+"cQB" = (/turf/unsimulated/beach/sand{tag = "icon-beachcorner"; icon_state = "beachcorner"},/area/centcom/ferry)
+"cQD" = (/turf/unsimulated/beach/sand{tag = "icon-beach (SOUTHEAST)"; icon_state = "beach"; dir = 6},/area/centcom/ferry)
+"cQE" = (/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding)
+"cQF" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
+"cQG" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQH" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQI" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQJ" = (/obj/machinery/atmospherics/pipe/manifold4w{layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQK" = (/obj/machinery/atmospherics/pipe/manifold{layer = 1},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/holding)
+"cQL" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"; layer = 1},/turf/unsimulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/centcom/holding)
+"cQM" = (/obj/structure/stool/bed/roller,/turf/unsimulated/floor{dir = 4; icon_state = "whitegreenfull"},/area/centcom/holding)
+"cQN" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cQO" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/turf/unsimulated/beach/sand{tag = "icon-coconuts"; icon_state = "coconuts"},/area/centcom/ferry)
+"cQP" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 75; dir = 0; on = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
"cQQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
-"cQR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cQR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 29; req_access_txt = "0"},/turf/unsimulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/centcom/holding)
"cQS" = (/turf/unsimulated/floor{icon_state = "warning"; dir = 1; heat_capacity = 1},/area/centcom/evac)
-"cQT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
-"cQU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
-"cQV" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/control)
-"cQW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
-"cQX" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 4},/area/centcom/ferry)
-"cQY" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cQZ" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cQU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cQV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cQW" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Arrivals Medbay"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cQX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cQY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
+"cQZ" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/holding)
+"cRa" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/holding)
"cRb" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRc" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/control)
-"cRd" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
-"cRe" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/control)
-"cRf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cRg" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; req_access_txt = "0"},/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
-"cRh" = (/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/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
-"cRi" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"cRc" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "green"; dir = 10},/area/centcom/holding)
+"cRd" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cRe" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom)
+"cRf" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
+"cRg" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-seashallow"; icon_state = "seashallow"},/area/centcom/holding)
+"cRh" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/beach/sand{tag = "icon-beach (SOUTHEAST)"; icon_state = "beach"; dir = 6},/area/centcom/holding)
+"cRi" = (/turf/unsimulated/beach/sand{tag = "icon-beach"; icon_state = "beach"},/area/centcom/ferry)
"cRj" = (/turf/unsimulated/wall,/area/tdome)
"cRk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
"cRl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
"cRm" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
"cRo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
-"cRp" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRq" = (/obj/machinery/atm{pixel_x = 24},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"cRp" = (/turf/unsimulated/beach/sand{tag = "icon-desert2"; icon_state = "desert2"},/area/centcom/ferry)
+"cRq" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
"cRr" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRs" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
@@ -7666,43 +7657,41 @@
"cRv" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
"cRw" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome)
"cRx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
-"cRy" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
-"cRz" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"cRA" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"cRB" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"cRy" = (/obj/machinery/door/airlock/external{name = "Arrivals Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/evac)
+"cRz" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/evac)
"cRC" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRD" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = -4; req_access_txt = "101"},/obj/machinery/door/window/southleft{dir = 1; name = "Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
-"cRE" = (/obj/machinery/door/window/westright{req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
-"cRF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
-"cRG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cRD" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cRE" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
+"cRF" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding)
+"cRG" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
"cRH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRI" = (/obj/structure/table/reinforced{dir = 4; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRJ" = (/obj/structure/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome)
"cRL" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
"cRM" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"cRN" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chem_dispenser/beer,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
"cRO" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
-"cRP" = (/obj/machinery/door/window/eastleft{req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
-"cRQ" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
-"cRR" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/control)
-"cRS" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
+"cRP" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
+"cRQ" = (/obj/structure/table/woodentable{dir = 5},/obj/machinery/chem_dispenser/soda,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
+"cRR" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
+"cRS" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding)
"cRT" = (/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/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/tdome)
-"cRU" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
-"cRV" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/machinery/door/window/southleft{name = "Security"; req_access_txt = ""},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"cRU" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{tag = "icon-siding8"; name = "plating"; icon_state = "siding8"},/area/centcom/holding)
+"cRV" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
"cRW" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
-"cRX" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"cRY" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
-"cRZ" = (/turf/unsimulated/floor{icon_state = "warning"},/area/centcom/control)
-"cSa" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cSb" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"cRX" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 28; req_access_txt = "0"},/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag{pixel_x = 5},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cRY" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"cRZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"cSa" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand{tag = "icon-desert_dug"; icon_state = "desert_dug"},/area/centcom/ferry)
+"cSb" = (/mob/living/simple_animal/crab,/turf/unsimulated/beach/sand{tag = "icon-desert3"; icon_state = "desert3"},/area/centcom/ferry)
"cSc" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome)
"cSd" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome)
-"cSe" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"cSe" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{tag = "icon-siding8"; name = "plating"; icon_state = "siding8"},/area/centcom/holding)
"cSf" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/escape/centcom)
-"cSg" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"cSh" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"cSi" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"cSg" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/spesslaw,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cSh" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding)
+"cSi" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cSj" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome)
"cSk" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome)
"cSl" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome)
@@ -7711,7 +7700,7 @@
"cSo" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape/centcom)
"cSp" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom)
"cSq" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape/centcom)
-"cSr" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
+"cSr" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/candiedapple,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cSs" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape/centcom)
"cSt" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
"cSu" = (/obj/structure/closet/secure_closet/bar,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
@@ -7719,8 +7708,6 @@
"cSw" = (/obj/machinery/gibber,/turf/unsimulated/floor{icon_state = "white"},/area/tdome)
"cSx" = (/obj/machinery/door/airlock/command{name = "Thunderdome"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome)
"cSy" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
-"cSz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
-"cSA" = (/obj/structure/table{icon_state = "tabledir"; dir = 2},/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
"cSB" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
"cSC" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
"cSD" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 8},/area/tdome/tdomeobserve)
@@ -7803,10 +7790,8 @@
"cUc" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/unsimulated/floor{icon_state = "redyellowfull"; dir = 5},/area/tdome/tdomeadmin)
"cUd" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach)
"cUe" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach)
-"cUf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/unsimulated/beach/sand,/area/beach)
"cUg" = (/obj/structure/table,/obj/item/clothing/under/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach)
"cUh" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/beach/sand,/area/beach)
-"cUi" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/item/weapon/reagent_containers/food/drinks/cola,/turf/unsimulated/beach/sand,/area/beach)
"cUj" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach)
"cUk" = (/obj/structure/stool/bed/chair,/turf/unsimulated/beach/sand,/area/beach)
"cUl" = (/mob/living/simple_animal/crab/Coffee,/turf/unsimulated/beach/sand,/area/beach)
@@ -7822,34 +7807,34 @@
"cUv" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cUw" = (/obj/machinery/librarycomp,/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"cUx" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUy" = (/obj/structure/table/woodentable,/obj/item/weapon/paper{info = "LIST OF SPELLS AVAILABLE
Magic Missile:
This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage.
Fireball:
This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you.
Disintegrate:This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown.
Disable Technology:
This spell disables all weapons, cameras and most other technology in range.
Smoke:
This spell spawns a cloud of choking smoke at your location and does not require wizard garb.
Blind:
This spell temporarly blinds a single person and does not require wizard garb.
Forcewall:
This spell creates an unbreakable wall that lasts for 30 seconds and does not require wizard garb.
Blink:
This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience.
Teleport:
This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable.
Mutate:
This spell causes you to turn into a hulk, and gain telekinesis for a short while.
Ethereal Jaunt:
This spell creates your ethereal form, temporarily making you invisible and able to pass through walls.
Knock:
This spell opens nearby doors and does not require wizard garb.
"; name = "List of Available Spells (READ)"},/obj/item/trash/tray,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
-"cUz" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUA" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
-"cUB" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"cUy" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cUz" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cUA" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/mushroomsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cUB" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control)
"cUC" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
-"cUD" = (/mob/living/carbon/monkey,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
+"cUD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"cUE" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
"cUF" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUG" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
-"cUH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/wizard_station)
+"cUG" = (/obj/structure/stool/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cUH" = (/turf/unsimulated/floor{dir = 5; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
"cUI" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
-"cUJ" = (/obj/item/trash/raisins,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUK" = (/obj/structure/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"cUJ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
+"cUK" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
"cUL" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"cUM" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUO" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
-"cUP" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"cUQ" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"cUR" = (/obj/structure/rack,/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"cUN" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cUO" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"cUP" = (/obj/structure/table/woodentable{dir = 5},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
+"cUQ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/orangecakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cUR" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/poppypretzel,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cUS" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area)
"cUT" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area)
"cUU" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area)
-"cUV" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"cUV" = (/turf/unsimulated/beach/sand{tag = "icon-desert1"; icon_state = "desert1"},/area/centcom/ferry)
"cUW" = (/obj/structure/table/woodentable,/obj/item/weapon/spacecash/c1,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUX" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"cUY" = (/obj/structure/table/woodentable,/obj/item/trash/cheesie,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"cUZ" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"cUX" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/tofukabob,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cUY" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand{tag = "icon-coconuts"; icon_state = "coconuts"},/area/centcom/ferry)
+"cUZ" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bloodsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cVa" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area)
"cVb" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/vox/station)
"cVc" = (/turf/simulated/shuttle/wall{icon_state = "pwall"; dir = 1},/area)
@@ -7863,22 +7848,20 @@
"cVk" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area)
"cVl" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/wizard_station)
"cVm" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/wizard_station)
-"cVn" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
-"cVo" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
-"cVp" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
-"cVq" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"cVr" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
-"cVs" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"cVt" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
+"cVn" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom)
+"cVo" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"cVp" = (/obj/item/weapon/storage/belt/inflatable,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
+"cVq" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/holding)
+"cVs" = (/obj/machinery/status_display,/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape/centcom)
"cVu" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
"cVv" = (/obj/machinery/computer/vox_station,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
"cVw" = (/obj/machinery/computer/vox_stealth,/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
-"cVx" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
+"cVx" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-siding2"; name = "plating"; icon_state = "siding2"},/area/centcom/holding)
"cVy" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"cVz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/wizard_station)
"cVA" = (/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"cVB" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"cVC" = (/obj/item/trash/chips,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"cVB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
+"cVC" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/soylenviridians,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cVD" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
"cVE" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_west_control"; req_one_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station)
"cVF" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
@@ -7888,8 +7871,9 @@
"cVJ" = (/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
"cVK" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cVL" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "vox_east_control"; req_access_txt = "150"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/vox/station)
-"cVM" = (/obj/effect/decal/cleanable/molten_item,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
-"cVN" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/engine,/area/toxins/misc_lab)
+"cVM" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cVN" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/boiledrice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cVO" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/beetsoup,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cVP" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_west_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cVQ" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_west_sensor"; pixel_x = 25},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cVR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
@@ -7897,7 +7881,12 @@
"cVT" = (/obj/item/clothing/head/collectable/petehat{desc = "It smells faintly of reptile."; name = "fancy leader hat"},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station)
"cVU" = (/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "vox_east_sensor"; pixel_x = -25},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cVV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{frequency = 1331; id_tag = "vox_east_vent"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
+"cVW" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
"cVX" = (/turf/unsimulated/wall/fakeglass,/area/wizard_station)
+"cVY" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/amanita_pie,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cVZ" = (/turf/unsimulated/beach/sand{tag = "icon-desert3"; icon_state = "desert3"},/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding)
+"cWa" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"cWb" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/stew,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
"cWc" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cWd" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_west_vent"; exterior_door_tag = "vox_northwest_lock"; frequency = 1331; id_tag = "vox_west_control"; interior_door_tag = "vox_southwest_lock"; pixel_x = 24; req_access_txt = "150"; sensor_tag = "vox_west_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
"cWe" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{id = "skipjack"; name = "Skipjack Blast Shielding"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station)
@@ -8477,7 +8466,6 @@
"dhg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/bridge/access)
"dhh" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/derelict/bridge/access)
"dhi" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/derelict/bridge/access)
-"dhj" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge/access)
"dhk" = (/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
"dhl" = (/obj/structure/window/reinforced,/turf/simulated/floor,/area/derelict/bridge/access)
"dhm" = (/obj/machinery/door/window,/turf/simulated/floor,/area/derelict/bridge/access)
@@ -8503,7 +8491,6 @@
"dhG" = (/obj/item/weapon/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"dhH" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"dhI" = (/turf/simulated/wall,/area/derelict/singularity_engine)
-"dhJ" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge)
"dhK" = (/turf/simulated/floor,/area/derelict/bridge)
"dhL" = (/turf/simulated/floor/plating,/area/derelict/bridge)
"dhM" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/simulated/floor,/area/derelict/bridge)
@@ -8544,7 +8531,6 @@
"div" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/derelict/bridge)
"diw" = (/obj/structure/stool/bed/chair,/turf/simulated/floor,/area/derelict/bridge)
"dix" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/derelict/bridge)
-"diy" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
"diz" = (/obj/item/stack/rods,/turf/space,/area)
"diA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"diB" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
@@ -9983,9 +9969,7 @@
"dKe" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/west_outpost)
"dKf" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outpost_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/mine/west_outpost)
"dKg" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "mining_west_outpost_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = null},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
-"dKh" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"dKi" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
-"dKj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"dKk" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"dKl" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/mine/living_quarters)
"dKm" = (/turf/simulated/floor,/area/mine/living_quarters)
@@ -10255,6 +10239,7 @@
"dPq" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
"dPr" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production)
"dPs" = (/turf/space,/area/vox_station/mining)
+"dPt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office)
"dPu" = (/obj/machinery/telepad,/turf/simulated/floor/engine,/area/toxins/telesci)
"dPv" = (/obj/machinery/camera{c_tag = "Telescience Chamber"; dir = 8; network = list("Telesci Test Area")},/turf/simulated/floor/engine,/area/toxins/telesci)
"dPw" = (/obj/machinery/atmospherics/unary/outlet_injector{name = "Acid-Proof Air Injector"; icon_state = "on"; dir = 2; unacidable = 1; on = 1},/turf/simulated/floor/engine,/area/toxins/telesci)
@@ -10277,9 +10262,11 @@
"dPN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft)
"dPO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
"dPP" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
+"dPQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/toxins/misc_lab)
"dPR" = (/obj/structure/table/reinforced,/obj/machinery/ignition_switch{id = "Miscresearch"; pixel_x = -6; pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dPS" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dPT" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/misc_lab)
+"dPU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab)
"dPV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/reinforced,/obj/item/device/gps,/obj/item/device/gps,/obj/item/device/gps,/obj/item/device/gps,/obj/item/device/gps,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dPW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dPX" = (/obj/machinery/atmospherics/pipe/simple/general/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
@@ -10291,6 +10278,7 @@
"dQd" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dQe" = (/obj/structure/closet/bombcloset,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dQf" = (/obj/machinery/camera{c_tag = "Misc Research Chamber"; dir = 2; network = list("SS13","Research")},/turf/simulated/floor/engine,/area/toxins/misc_lab)
+"dQg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/engine,/area/toxins/misc_lab)
"dQh" = (/obj/structure/cable,/obj/machinery/shieldwallgen{req_access = list(55)},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dQi" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dQj" = (/obj/machinery/computer/security/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
@@ -10333,11 +10321,160 @@
"dQU" = (/obj/machinery/portable_atmospherics/pump,/obj/machinery/camera{c_tag = "Misc Research"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab)
"dQV" = (/obj/structure/table,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/turf/simulated/floor/engine,/area/toxins/misc_lab)
"dQW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/device/multitool,/turf/simulated/floor/engine,/area/toxins/misc_lab)
+"dQX" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/stack/sheet/metal{amount = 5000},/turf/simulated/floor/engine,/area/toxins/misc_lab)
"dQY" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/control)
"dQZ" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor{icon_state = "green"; dir = 1},/area/centcom/control)
"dRa" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 1},/area/centcom/control)
"dRb" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 1},/area/centcom/control)
"dRc" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
+"dRd" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice,/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"dRe" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRf" = (/obj/structure/closet/athletic_mixed,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
+"dRg" = (/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/obj/structure/closet/athletic_mixed,/turf/unsimulated/floor{tag = "icon-siding4"; name = "plating"; icon_state = "siding4"},/area/centcom/holding)
+"dRh" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
+"dRi" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"; name = "Clothing Storage"},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand{tag = "icon-desert"; icon_state = "desert"},/area/centcom/ferry)
+"dRj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"dRk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom)
+"dRl" = (/obj/structure/closet/emcloset{anchored = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRn" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"dRp" = (/obj/structure/table/woodentable{dir = 5},/obj/item/weapon/lighter/zippo,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/holding)
+"dRr" = (/obj/structure/stool/bed/chair/comfy/brown,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/ferry)
+"dRs" = (/obj/structure/stool/bed/chair/comfy/brown,/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/centcom/ferry)
+"dRt" = (/turf/unsimulated/floor{tag = "icon-wood"; icon_state = "wood"},/area/centcom/ferry)
+"dRu" = (/obj/structure/stool/bed/chair/comfy/brown,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/ferry)
+"dRv" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/centcom/ferry)
+"dRw" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetsymbol"},/area/centcom/ferry)
+"dRx" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/centcom/ferry)
+"dRy" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/centcom/ferry)
+"dRz" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/centcom/ferry)
+"dRA" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/centcom/ferry)
+"dRB" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 0},/turf/unsimulated/wall,/area/centcom/evac)
+"dRC" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -32; req_access_txt = "0"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"dRD" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"dRE" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom)
+"dRF" = (/obj/structure/closet/walllocker/emerglocker,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape/centcom)
+"dRG" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom)
+"dRH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
+"dRI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/item/weapon/crowbar,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRJ" = (/obj/structure/table,/obj/machinery/chem_dispenser/soda,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRK" = (/obj/structure/table,/obj/item/weapon/storage/box/cups,/obj/item/weapon/storage/box/cups,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRL" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRM" = (/obj/machinery/turretcover{density = 1},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/evac)
+"dRN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"dRO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
+"dRP" = (/obj/machinery/door/airlock/external{name = "Arrivals Bar Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry)
+"dRQ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control)
+"dRR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
+"dRS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
+"dRT" = (/obj/machinery/door/airlock/glass{name = "Arrivals Bar"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"dRU" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"dRW" = (/obj/machinery/door/airlock/glass{name = "Arrivals Processing"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"dRX" = (/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape/centcom)
+"dRY" = (/obj/structure/table,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dRZ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dSa" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
+"dSb" = (/obj/structure/table,/obj/item/device/megaphone,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dSc" = (/turf/unsimulated/floor{dir = 6; icon_state = "warning"},/area/centcom/evac)
+"dSd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"dSe" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
+"dSf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
+"dSg" = (/obj/machinery/computer/rdconsole,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
+"dSh" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control)
+"dSi" = (/obj/machinery/atm{pixel_x = -26},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
+"dSj" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry)
+"dSk" = (/obj/structure/mineral_door/wood{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSl" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSm" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/bag/cash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSn" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/rd,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSo" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSp" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSq" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSr" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSs" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{on = 0; pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
+"dSt" = (/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
+"dSu" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/obj/structure/closet/coffin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSv" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/turf/unsimulated/floor{icon_state = "engine"},/area/wizard_station)
+"dSw" = (/turf/unsimulated/floor{icon_state = "engine"},/area/wizard_station)
+"dSx" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{dir = 2; icon_state = "carpetsymbol"},/area/wizard_station)
+"dSy" = (/obj/structure/mineral_door/iron,/turf/unsimulated/floor{icon_state = "engine"},/area/wizard_station)
+"dSz" = (/obj/structure/mineral_door/wood{tag = "icon-wood"; icon_state = "wood"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSA" = (/obj/structure/table/woodentable,/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/milosoup,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSB" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSC" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dSD" = (/obj/structure/stool/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSE" = (/obj/structure/table/woodentable,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSF" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSG" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/cups,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSH" = (/obj/item/target,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dSI" = (/obj/item/target/alien,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dSJ" = (/obj/item/target/syndicate,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dSK" = (/obj/structure/kitchenspike,/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"dSL" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
+"dSM" = (/obj/structure/rack,/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
+"dSN" = (/obj/structure/kitchenspike,/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
+"dSO" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSP" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSQ" = (/obj/machinery/door/airlock/external{name = "Transport Airlock"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry)
+"dSR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack/cultpack,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dSS" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dST" = (/obj/structure/table/woodentable,/obj/machinery/chem_dispenser/soda,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSU" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/nuclear,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSV" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dSW" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/backpack/satchel/withwallet,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
+"dSX" = (/obj/structure/table/woodentable,/obj/item/weapon/paper{info = "LIST OF SPELLS AVAILABLE
Magic Missile:
This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage.
Fireball:
This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you.
Disintegrate:This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown.
Disable Technology:
This spell disables all weapons, cameras and most other technology in range.
Smoke:
This spell spawns a cloud of choking smoke at your location and does not require wizard garb.
Blind:
This spell temporarly blinds a single person and does not require wizard garb.
Forcewall:
This spell creates an unbreakable wall that lasts for 30 seconds and does not require wizard garb.
Blink:
This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience.
Teleport:
This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable.
Mutate:
This spell causes you to turn into a hulk, and gain telekinesis for a short while.
Ethereal Jaunt:
This spell creates your ethereal form, temporarily making you invisible and able to pass through walls.
Knock:
This spell opens nearby doors and does not require wizard garb.
"; name = "List of Available Spells (READ)"},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
+"dSY" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
+"dSZ" = (/obj/structure/toilet{pixel_y = 8},/turf/unsimulated/floor{icon_state = "engine"},/area/wizard_station)
+"dTa" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{icon_state = "engine"},/area/wizard_station)
+"dTb" = (/obj/structure/sink,/turf/unsimulated/wall,/area/wizard_station)
+"dTc" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"},/area/wizard_station)
+"dTd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/wizard_station)
+"dTe" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/fancy/donut_box,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dTf" = (/obj/structure/table/woodentable,/obj/item/device/megaphone,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dTg" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/chawanmushi,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
+"dTh" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/robotics_cyborgs,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dTi" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = 32; subspace_transmission = 1; syndie = 1},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dTj" = (/obj/structure/table/reinforced,/obj/item/robot_parts/head,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/wizard_station)
+"dTk" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station)
+"dTl" = (/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station)
+"dTm" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station)
+"dTn" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station)
+"dTo" = (/turf/unsimulated/floor{tag = "icon-asteroid8"; name = "plating"; icon_state = "asteroid8"},/area/wizard_station)
+"dTp" = (/turf/unsimulated/floor{tag = "icon-asteroid7"; name = "plating"; icon_state = "asteroid7"},/area/wizard_station)
+"dTq" = (/turf/unsimulated/floor{tag = "icon-asteroid5"; name = "plating"; icon_state = "asteroid5"},/area/wizard_station)
+"dTr" = (/mob/living/carbon/monkey{name = "Murphey"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"dTs" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"dTt" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-lava"; name = "plating"; icon_state = "lava"},/area/wizard_station)
+"dTu" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Experiment 97d"},/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station)
+"dTv" = (/obj/structure/flora/ausbushes/grassybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/wizard_station)
+"dTw" = (/mob/living/simple_animal/hostile/tribesman{name = "Experiment 69T"},/turf/unsimulated/floor{tag = "icon-asteroid2"; name = "plating"; icon_state = "asteroid2"},/area/wizard_station)
+"dTx" = (/turf/unsimulated/floor{tag = "icon-asteroid10"; name = "plating"; icon_state = "asteroid10"},/area/wizard_station)
+"dTy" = (/obj/item/weapon/caution,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"dTz" = (/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
+"dTA" = (/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control)
+"dTB" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control)
+"dTC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control)
+"dTD" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access_txt = "2"},/turf/unsimulated/floor,/area/centcom/control)
+"dTE" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/control)
+"dTF" = (/obj/machinery/door/airlock/centcom{name = "Arrivals Processing"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control)
+"dTH" = (/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control)
+"dTI" = (/obj/machinery/door/airlock/glass_security{name = "Holding Cell"; req_access_txt = "2"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"dTJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor,/area/centcom/control)
+"dTK" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Arrivals Processing"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor,/area/centcom/control)
+"dTM" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_x = -12; pixel_y = -25; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTN" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/control)
+"dTO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor,/area/centcom/control)
+"dTP" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTQ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/control)
+"dTR" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/skills{icon_state = "medlaptop"; pixel_x = 3; pixel_y = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTS" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/window/southright{name = "Arrivals Processing"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"dTT" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/control)
+"dTU" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control)
+"dTV" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{tag = "icon-cult"; name = "plating"; icon_state = "cult"},/area/centcom/control)
+"dTW" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/shoes/sandal/marisa{desc = "A set of fancy shoes that are as functional as they are comfortable."; name = "Gentlemans Shoes"},/obj/item/clothing/under/gentlesuit,/obj/item/clothing/suit/wizrobe/gentlecoat,/obj/item/clothing/head/wizard/cap,/obj/item/weapon/staff/gentcane,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
+"dTX" = (/obj/structure/table/woodentable,/obj/item/weapon/coin/adamantine,/obj/item/clothing/glasses/monocle,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10431,92 +10568,92 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaaaaaaanlaafaafaaaaafaafaaaaaaalQaaaaaaaaaaaaafcafcafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaaaanmanJanJanKaeFanqanLanMaeFanNanOanPanQanRanSanTanUanVamFanWamFalCanXamianYanZaoaaobaleaocaodaoeaofaogaohaljaoialNalNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaojaojaojaojaojaafaokaafaojaojaojaojaojaafalPaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaomaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaafcafcafcafcafcaaaaaaaaaaaaaaaaaaaaaaafaafaaaanmamqaonalRaeFaooaopaoqaeFaoraosaotaouamzamAaovaowaoxaoxanWamFalCamAamGaoyamxaozaoAaleaoBaoCaoDaoEaoFaoFaoGaoHaoIalNalNaoJaoKaoLalNalNaafaaaaaaaaaalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaanmapaapbaeFaeFagXagXagXagXagXagXagXagXagXagXapcapdapdapeapfapgaphagXagXagXagXagXagXapiapjapkaplaplapmapnapoappapqalNaprapsapsapsaptalNalNalNalNapualOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaajiajiajiajiaaaaaaajiajiajiajiajiajiajiaaaaaaajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapEapFapGapHapIapJapKapLaleapMapNapOapPapQapRapSapTapUajhajhajhapVajhapWapXapYapZaqaaqbalOalOalOalOalOaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmapxapyapxapzapxapAapAapBapCapDapAapAapAapAapAapAapAapAapAapEapFapGapHapIapJapKapLaleapMapNapOapPapQapRapSapTapUajhajhajharpajhapWapXapYapZaqaaqbalOalOalOalOalOaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaafaoWaaaaaaaaaaafaaaaaaaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxaqcaqdapxapxaqeapEaqfapEapEapEapEapEapEapEapEapEapEapEaqgapEaqhapEaqiapEapEapEaleaqjaqkaqlaqmapOaqnapSaqoaqpaqqaqraqsaqtaquaqvaqwalNalNalNajhalOalOalOalOalOaaaaaaaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxaqxaqyaqzaqAaqBaqCaqDaqEaqEaqEaqEaqEaqEaqEaqFaqGaqHaqGaqIaqJaqKaqLaqMaqNaqLaqOaleapiapiapiapiapiapiaqPaqQaqRaqSaqTaqUaqVajhalNaqWaqXalNaaaaaaaaaalOalOalOaaaaaaaaaaaaaaaaaaaaaalPaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaaraapxarbarbarcardarbarbarbarearearearfargarearearhariarjarkalNarlalNarmalNalNarnajhajhajhajhajharoaqQarparqarqarqarrarsartaruarvalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryapbapxarEatVatXatWauoatYarbarFarGarHarIarJarKarLarMapEarNarOarParQarRarRarRarRarRarSarRarRarRarRarUarVarWarXarYarZasaasbascasdasealNaafasfasgasgashasgasgasiaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaveaslaaaasmavfasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapbapxarEarAatXatWassasrarbastarIarIarIarJasuasvaswasxasyalNaszasAasBasBasBasBasCasDasHasIasHasHasHasHasIasHasGasKasLasMasNasOasPasPasPasQasRasRasRasRasRasQasPaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqYaqZaqYaaaaaaaaaaaaaaaaaaaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapxapaaraapxarbarbarcardarbarbarbarearearearfargarearearhariarjarkalNarlalNarmalNalNarnajhajhajhajhajharoaqQapVarqarqarqarrarsartaruarvalNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafapvapvapvapvapvaafaoPaafapvapvapvapvapvaafalPaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafarwarxarwaaaaaaaaaaaaaaaaaaaaaalPaafapwapwapwapwapwaafaoWaafapwapwapwapwapwaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagapxaryapbapxarEatVatXatWaumatYarbarFarGarHarIarJarKarLarMapEarNarOarParQarRarRarRarRarRarSarRarRarRarRarUarVarWarXarYarZasaasbascasdasealNaafasfasgasgashasgasgasiaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoPaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasjaunaslaaaasmauoasoaaaaafaspaqYaspaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaafaaaaaaaaaaoWaaaaaaaaaaafaaaaaaaaaalQaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafapxapxapxapxapbapxarEarAatXatWassasrarbastarIarIarIarJasuasvaswasxasyalNaszasAasBasBasBasBasCasDasHasIasHasHasHasHasIasHasGasKasLasMasNasOasPasPasPasQasRasRasRasRasRasQasPaaaaaaaaaaaaalPaafaojaojaojaojaojaafaoPaafaojaojaojaojaojaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaajiajiajiajiajiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasTasUasTasSasVasWasVasSaafaspasXasYaaaaaaaaaaaaaaaaaaaaaalPaafaolaolaolaolaolaafaoWaafaolaolaolaolaolaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafapxasZataapxapbapxauParAatXatWauOauNarbatearIatfatfarJatgasvapAapEathalNatiatjatkatlatmatnatoatpasEatuatvatwatratsasJatqattatzatAatBatCatDatEatFasPatGasRasRasRasRasRasQasPaafaaaaaaaaaalQaafaoMaoNaoNaoNaoNaoOaoPaoQaoRaoRaoRaoRaoSaafalPaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMatNatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatQatRatSatTatUbBqavDavCavBauQarEarbauaaubaucaucaudaueasvapAapEarNalNatiatjaufaugatmatnauhauiasEaukaujatsatsatsatxatyarTaupauqaurausautauuauvauwauxasRasRasRasRasRauyasPasPasPaaaaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHasTatIasTatHasVatJasVatHatKatLatMatNatOatOatPatKatKaafaaaalPaafaoTaoUaoUaoUaoUaoVaoWaoXaoYaoYaoYaoYaoZaafalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafapxatQatRatSatTatUbBqavDavCavBauQarzarbauaaubaucaucaudaueasvapAapEarNalNatiatjaufaugatmatnauhauiasEaukaujatsatsatsatxatyarTaupauqaurausautauuauvauwauxasRasRasRasRasRauyasPasPasPaaaaaaalQaaaapvapvapvapvapvaafaoPaafapvapvapvapvapvaaaampaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHauzauAauBatHauCauDauEatHaqYaqYauFauGauHauIauJauKatKaaaaaaampaaaapwapwapwapwapwaafaoWaafapwapwapwapwapwaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaagapxauLapaapxauMapxarBarAarDarCasqarEarbauRauSauTauTauUauVauWauXauYauZavaavbavcaufatlatmatnavdauiasEasEasEasFasFasFasEasEarTavgavhaviaviavjavkavlavmavnasRasRasRasRasRavoavpavqavraaaaaaalQaaaaafaaaaafaafaaaaaaaoPaaaaaaaafaaaaaaaafaaaalPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatHavsavtavuatHavsavtavuatHavvavwavxavxavxavxavyavzarwaaaaaaalPaaaaafaaaaafaafaaaaaaavAaaaaaaaafaaaaaaaafaaaalPaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaagapxapxapxapxauMapxatcatbatbatbatbatdatbavEavFavFavFavFavGavHavIapEavJalNavKasAavLatlavMavNavdavOavRavPavRavRavRavRavRauiavVavWavXavYavYavYavYavZawaawbasRasRasRasRasRawbawcawdaweaaaaaaalQalQalPaaaaaaaafaaaaaaaoPaaaaafaafaafaafalPalPalPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasSatHawfawgasSatHawfawgasSatKawhatKatKatKatKatKawiaspaaaaaaalPalPalPaaaaaaaafaaaawjawkawjaafaafaafaafalPalPalPaafapxapxapxapxawlawmawmawmawmawmawmawmawnapxapxawoawpawqapxawrawsawtawuawvawwawwawwawwawwawxawwawyawzawAawAawBawBawCawDawEawFaqvawGawHawIawJaunatnavdawLawLawLawMawMawNawOawLauiawPawQawRavYavYavYavYawSawTawUasRasRasRasRasRawUawVawdaweaaaaaaaaaaaaaafaafaaaaafaaaaaaawWaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaasSatHawfawgasSatHawfawgasSatKawhatKatKatKatKatKawiaspaaaaaaalPalPalPaaaaaaaafaaaawjawkawjaafaafaafaafalPalPalPaafapxapxapxapxawlawmawmawmawmawmawmawmawnapxapxawoawpawqapxawrawsawtawuawvawwawwawwawwawwawxawwawyawzawAawAawBawBawCawDawEawFaqvawGawHawIawJaulatnavdawLawLawLawMawMawNawOawLauiawPawQawRavYavYavYavYawSawTawUasRasRasRasRasRawUawVawdaweaaaaaaaaaaaaaafaafaaaaafaaaaaaawWaaaaaaaafaaaaaaaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXawYawYawYawZaxaawYawYaxbaxcaxdaxbaxbaxbaxeatKaxfaspaaaaafaafaaaaaaaaaaaaaafaaaaxgaxhaxiaafaaaaafaaaaaaaaaaaaaaaapxapaapaaxjapaapaapaapaapaapaapaapaaxkaxlaxmaxnaxnaxnaxnaxnaxnaxoaxpaxqaxraxraxraxraxsaxtaxraxuaxvaxsaxraxraxraxraxwaxxaxyaxzaxAavcatnatnatnatnauhaxBawLawOawMaxCawMaxDaxEauiaxGaxHaxIavYavYavYavYawSaxJaxKasRasRasRasRasRaxLaxMaxNaxOaaaaaaaaaaaaaaaaafaaaaafaaaaxPaxQaxPaaaaafaaaaaaaafaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaxSaxTaxUaxVaxTaxTaxWaxUaxTaxXaxYaxZaxZayaatKaxfatLaafaafaaaaaaaaaaaaaaaaafaybaycaydayeayfaaaaafaaaaaaaaaaaaaaaapxapaapxaygayhayiayiayiayiayiayiayiayjaygaykaylaylaylaylaylaylaylaymaynaxrayoaypayqayraysaytayuayvaywayxaypayyaxrayzapEayAalNayBatjatkatlatmatnavdayCayDaxFaxFayEayFayGayHayIavVayJayKayLayMayMayNayOayPayQasRasRasRasRasRayRasPasPasPaaaaaaaaaaaaaafaafaafaafaaaaySayTaySaaaaafaaaaaaaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUayVayUayWaxTaxTayXayUayVayUayYaxSaxVayZatKaxfatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaymapaaxrazkazkazlazmaznazoazpazqazrazsaztaztaxrayzapEazualNayBatjaufatlatmatnauhazvazwazxazyazzazAazBazBazCazBasPazDazEazFavSazHazIasPazJasRasRasRasRasRazKasPaafaaaaaaaaaaaaaaaaafaafaaaaafazLazMazNazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHayUayVayUayWaxTaxTayXayUayVayUayYaxSaxVayZatKaxfatKatKazaatOatOatOatOatPatKazbazcazdazeazbapxapxawoawpawqapxapxapxapaaryaygaaaaafaaaaafaaaaafaaaaafaaaaygaykaylazfazgazhaziazjaylaymapaaxrazkazkazlazmaznazoazpazqazrazsaztaztaxrayzapEazualNayBatjaufatlatmatnauhazvazwazxazyazzazAazBazBazCazBasPazDazEazFavfazHazIasPazJasRasRasRasRasRazKasPaafaaaaaaaaaaaaaaaaafaafaaaaafazLazMazNazOazPaafaaaaaaaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafazQasSazRavtazSazTazUazVazWazSavtazXazYasSazZaAaatKaAbaAcaAcaAcaAcaAcaAcavzaAdaAeazbaAfaAgaAhazbaAiapaapaapaapaapaapaapaapaaAjaygaafaAkaAkaAkaAkaAkaAkaAkaafaygaykaylaAlaAmaAnaAoaAlaylaymaApaxraxraxraxraAqaAraypaAsaAraAtaxraxraxraxrayzapEaAualNayBatjaufatlatmatnavdaAvazBazBazBazBazBazBaAwaAxaAyazBasPasPasPasPaAzasPasPazKasRasRasRasRasRazKasPaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaAAaABaACaADaAAaafaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRayVaAEaAFaAFaAFaAFaAGayVaxRaAHasSaAIaAJaAKaAKaAKaAKaAKaAKaAKaAKawiaALaAeazbaAMaANaAOazbaAPaAQaAPaAPaAPaAPaAPaAPaAPaAPaARaaaaAkaASaATaAUaAVaAWaAkaaaaygaykaylaAlaAXaAYaAZaAlaylaymapxaxraBaaBbazlaBcaBdazoazpaBdaBeazsaBfaBfaxrayzapEayAalNaBgasAavLatlavMaBhavdaAvazBaBiaAxaBjaBjazBaAwaBkaAyazBaBlaBmaBnaBoaBpaBqaafaBraBsaBsaBsaBsaBsaBtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaBuaBvaBwaAAaafaaaaaaaBxaByaByaByaByaBzaBAaByaByaByaByaBBaBBaByaBCaBDaBEaBFaBGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaBKaBLaBIaBIaBJaBMaBNasSayWaBOaBPaBQaBRaBSaBTaBUaBVaAKawiaBWatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaChaCiaARaafaAkaCjaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaymaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNayBawHawIaCzaunatnaCAaCBazBaCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaCKaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaCLaCMaCNaAAaBqaCOaCPaCQaCRaCSaCSaCSaCSaCSaCSaCTaCUaCUaCVaCWaCXaCUaCUaCYaCZaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaBHaBIaBJaBIaBIaBKaBLaBIaBIaBJaBMaBNasSayWaBOaBPaBQaBRaBSaBTaBUaBVaAKawiaBWatKazbazbaBXaBYaARaBZaCaaCbaCcaCdaCeaCfaCgaChaCiaARaafaAkaCjaCkaClaCmaCnaAkaafaygaykaylaCoaCpaCqaCpaCraylaymaCsaxrayoaypaCtaCuaAraCvaAsaAraCwaCxaypaCyaxrayzapEayAalNayBawHawIaCzaulatnaCAaCBazBaCCaAxaAxaAxazCaCDaCEaCFazBaCGaCHaCIaCJaCKaBqaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaAAaCLaCMaCNaAAaBqaCOaCPaCQaCRaCSaCSaCSaCSaCSaCSaCTaCUaCUaCVaCWaCXaCUaCUaCYaCZaDaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBHaBMaBIaDbaDcaDcaDdaDeaDfaDgaDhaDcaDcaDiaDjayUayWaDkaAKaDlaDmaDnaDoaDnaDpaDqaDraDsaqYaDtaDuaDvaAcaDwaDxaDyaDzaDzaDzaDAaDzaDzaDBaCaaARaaaaAkaDCaDDaDEaCmaDFaAkaaaaygaykaylaDGaDHaDIaDJaDKaylaymaDLaxraxraxraxraDMaAraypaDNaBdaDOaDPaypaDQaxraDRasxaDSalNayBaDTaDUaDUaDUaDUaDVaDWaDXaDYaDZaEaaEaaEaaEbaEaaEcaEdaEeaEfaEgaEhaEiaBqaBqaBqaBqaBqaBqaBqaBqaBqaBqaCOaCPaBqaBqaBqaCOaEjaEkaBqaBqaAAaAAaElaEmaAAaEnaEoaEpaEqaEraEsaEsaEsaEsaEsaEnaEtaEuaEuaEvaEwaExaEuaEyaEzaEAaEyaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKaEIaEJaEKaELaEMaENaAKaEOaEPaAcaEQaAcaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzaETaEUaEVaEWaEXaEYaEZaFaaFbaFcaAkaafaygaFdaFeaFfaFgaFhaFiaFjaFeaFkaFlaxraFmaypazlaFnaBdazoaFoaAraCwaFpaypaFqaxraFraFsaFtalNaFuarsarsarsaFvaFwaFxaFyaFzaFAaFBaFzaFCaFzaFDaFzaFEaFFaFGaFHaFIaBoaFJaFKaFLaFMaFMaFKaFNaFOaFOaFOaFOaFOaFPaFQaFOaFRaFSaFTaFUaFVaFWaFXaFYaFZaGaaGaaGaaGbaGcaGdaGeaEsaGfaGgaGhaEsaEuaGiaEuaGjaGkaGlaGmaGnaGoaGpaGqaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavQaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaGzaGAaGBaGCaGBaBPaBPaGDaGEaGFaGGaGHaGGaGGaGIaGJaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaGPaAkaGQaGRaGQaAkaAkaaaaygaGSaylaGTaGUaGVaGWaGXaGYaGZaHaaxraHbaypaCxaCuaAraypaAsaAraCwaHcaypaHdaxraHeaHfaHgalNaHhalNalNalNaHialNaHjaHkazBaHlaAxazBaHmazBaHnazBaHoaHpaHqaHraHsaHtaHuaHvaHwaHxaHyaHzaHAaHyaHyaHBaByaHvaHCaHvaHDaHvaHvaHEaHFaHGaHHaHHaHIaHJaHKaHLaHHaHMaHNaHOaHPaHQaHRaHSaHTaEsaHUaHVaEuaHWaHXaHYaHZaGnaIaaIbaGqaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeaIfaIgaIhaIiaIiaIiaIfaIjaIkaIfaIlaImaInaIoauKauKaAPaGOaIpaCaaIqaGOaGOaIraIsaItaIuaARaaaaIvaaaaIwaIxaIwaaaaafaaaaygaGSaylaIyaIzaIAaIBaICaylaIDapaaxraIEaypazlaIFaIGazoaIHaIIaIJaIKaILaIMaxraINaIOaIPaIQaIRaISaaaaaaaITaIUaIVaIWazBaIXaAxaAxaAxaCEaAxaAxaAxaIYaBoaIZaBoaJaaJbaBoaJcaBoaJdaJeaJfaJgaJhaJiaJjaJkaJlaJjaJmaJjaJjaJjaJjaJnaJjaJjaJoaJjaJjaJjaJjaJpaJqaHPaJraJsaJtaJuaJvaEsaJwaJxaJyaJzaJAaJBaHZaJCaIaaIbaGqaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPaJQatKatKaJRatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaJYaARaJZaKaaKbaKcaKdaKeaKbaKbaKfaygaKgaylaylaylaKhaKiaylaylaKjaKkaxraxraxraxraKlaKmaCxaCxaKnaKoaxraxraxraxraIOaIOaIOaIOaKpaKqaKraKsaITaKtaIVaKuazBazBazBazBazBazBazBazBazBaIYaKvaKwaKxaKyaKzaKAaKBaKCaJdaKDaKEaKFaKGaKHaJjaKIaKJaKKaKLaKKaKMaKNaKOaKPaKQaKRaKSaKTaKUaKVaJjaKWaKXaKYaJraKZaJtaJuaLaaEsaLbaLcaLdaLeaLfaHZaLgaEuaEyaLhaGqaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaLlaBLaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsaJQaLtaLuaLvaLwaLxaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCaLDaLEaLFaLFaLGaLHaLFaLFaLFaLIaLJaLKaLLaLFaLMaLNaLOaLPaLQaIOaLRaLSaIOaIPaLTaLTaLTaLTaLTaLTaLUaLVaLWaLXaLYaLZaMaaMbaMcaIOaIOaIOaMdaMeaMfaMeaMgaMhaMiaMjaIOaMkaIOaBoaMlaMmaMnaMoaMpaMpaMqaMraMsaMtaJdaMuaMvaMwaMwaMxaJjaMyaMzaMAaMBaMAaMAaMCaMDaMEaMDaMFaMGaMHaMIaMDaJjaJpaMJaMKaMKaMLaMMaMKaMNaEsaMOaMPaEuaMQaMRaHZaHZaEuaMSaMTaMUaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYaMZaNaaNbaNbaNcatHaNdaLsaNeaNfaLuaNgaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaLBaNmaNnaLzaLzaLzaNoaNpaLzaLzaLzaLzaNqaLzaLzaLzaNraNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBaIOaBoaNCaNDaMpaNEaMpaMpaNFaNGaMsaNHaJdaNIaNJaNKaNLaNMaJjaNNaNOaNPaNQaNRaNSaJjaNTaNUaNTaJjaJjaJjaJoaJjaJjaJpaJqaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuaNYaEuaIbaIbaGqaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsaJQaNfaLuaOkaOlaOmaOmaOmaOnaOoaOpaOmaOqaOmaOmaOraOsaOtaOuaOmaOvaOwaOxaOyaOzaOAaOBaOCaODaOEaOEaOFaOGaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaOOaOPaOQaOQaOQaORaOSaNGaMsaOTaJdaJdaJdaJdaJdaOUaJjaOVaOWaOXaOYaNPaNPaJjaOZaPaaPbaPcaPbaPbaPdaPeaJjaJpaJqaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaPnaPoaPpaIbaIbaPqaPraEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsaJQaPBaPBaPCaPDaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEaPHaPIaPJaPIaPKaPLaPMaLzaLAaPNaPOaPPaPQaLAaLzaPRaPSaPSaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVaPWaPXaPYaPZaQaaQaaQbaQcaQaaQdaQeaQfaPWaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiaQjaQkaQkaQkaQkaQlaQmaQnaQoaQparzaQraQsaQtaQuaJdaJdaQvaQwaQxaQyaQzaJjaQAaQBaQCaQCaQCaQCaQDaQEaJjaQFaJqaQGaHPaPgaPhaHPaHPaQHaEsaQIaQJaQKaEyaQLaQMaQNaQOaQOaQPaQNaQQaQRaEyaQSaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcaRdaPBaReaRfaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaPKaRyaPMaPMaRzaPMaRAaPSaPSaRBaRCaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOaRQaRRaRSaRTaQoaQoaQoaQoaQoaRUaRVaQoaQoaQoaQraMpaRWaRXaRYaRZaSaaSbaScaSdaSeaJdaPbaSfaSgaSgaSgaSgaShaSiaJjaJpaJqaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaSnaPoaPraSoaSoaPqaPraEyaEyaEyaSpaSqaSraSsaStaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTaxTaSzaxTaSAaSBaSCaSDaSEaPBaReaSFaSGaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtaPHaSJaSKaSLaPKaRyaPMaSMaSNaSOaSPaPSaSQaSRaSSaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZaTaaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoaTiaTjaTkaQoaTlaTmaCIaTnaToaTkaQoaQraMpaTpaRXaTqaTraTsaTtaTuaTvaRXaTwaTxaTyaSgaTzaTAaSgaTBaPbaJjaJpaJqaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyaTFaTGaTHaSoaSoaTIaTHaTJaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaTTaTSaTSaTSaTUaTSaTUaPBaReaTVaTWaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcaPHaUdaUeaUfaPKaUgaPMaUhaUiaUjaUkaPSaUlaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDaTiaToaTkaQoaUEaUFaQoaUGaUHaTkaQoaQraMpaUIaRXaUJaUKaULaUMaUNaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjaJpaJqaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaVbaVcaVdaSoaSoaVeaVdaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtaPHaPKaPKaVEaPKaVFaVGaVGaVGaVGaVHaVIaVJaSSaSSaSSaSSaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaVQaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoaRTaQoaQoaQoaVYaVZaQoaUGaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaWgaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaWjaJqaEsaEsaWkaPhaWlaWmaHPaWnaWoaKZaWpaWqaWraWsaWtaWuaWuaWvaWwaWxaWqaWyaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaWIaWJaWKaWLaWMaWNaWOaWPaWKaWQaWRaWSaWTaWUaPEaWVaRnaWWaWXaWYaWYaWZaWYaWYaWYaXaaXbaXcaXdaXeaXfaXgaXhaReaReaXiaPBaXjaPSaXkaXlaXmaXnaXnaXoaIOaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaXCaXDaXEaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSaTiaXQaTkaQoaXRaXSaQoaUGaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaXVaUOaXWaJdaQAaURaSgaSgaSgaSgaUUaQEaJjaXXaXYaXZaYaaYbaYcaYdaYdaYdaYdaYdaYdaYeaYfaYgaSoaSoaSoaSoaSoaSoaYhaYiaYjaSsaSsaSsaSsaYkaYlaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaYnavtaYnaxTaYoaTUaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaYwaYxaYyaYyaYyaYzaYyaYAaYBaYCaYDaYEaYEaYFaRtaYGaYHaYIaYJaYKaYLaYMaYMaYNaYOaYPaYQaYRaYSaYSaYSaYTaPSaYUaIOaYVaYWaYXaYYaYZaZaaZbaZcaZdaZeaZfaPWaPWaPWaPWaPWaPWaZgaZhaZiaZjaXwaZkaZlaPWaZaaYZaZmaZnaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaZqaQoaZraZraZraZraZsaZtaZuaRXaRXaRXaZvaZwaZxaJdaZyaZzaSgaZAaZAaZBaZzaZCaJjaZDaZEaZFaZGaPgaPgaPgaPgaZHaPgaPgaPgaZIaYiaSoaSoaSoaSoaSoaSoaSoaYhaYiaYjaSsaSsaZJaSsaSsaZKaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGayWaZNaZOaZPaZQaZRaZSaZTaYraZUaZVaTSaZWaZXaYwaYxaZYaZZbaababaYybacbadbaeaPEbafbagbahbaiaPEbajbakbalbalbalbalbambalbalbanbaobaobaobapbaobaqbarbasbatbaubavbawbawbawbawbaxbaybazbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaCbaDbaDbaEbaDbaDbaDbaDbaDbaDbaDaZoaIOaIOaBobaFbaGaBlbaHaQobaIaQobaJbaKbaLaZrbaMbaNbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdaJdbaRaSgaSgaulatZbaUbaVaskaJjbaXaZEbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaIbbbgaSoaSobbgaIbbbhaEybbibbjbbkaSsaSsbblbbmaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaxRbbnaPybboaTUbbpbbpbbqbbrbbsbbqbbtbbpaTSbbubbvbbwbbxbbybbybbzbbAbbybbBbadbbCaPEbafbagbbDbbEaPEbbFbakbalbbGbbHbbHbbHbbIbalbbJbbKbbLbbMbarbarbarbaraIOaIObbNbbObbPbbQbbRbbSbbTbbUbbVbbWbaAbaBbbXbbYbbZbcabcbbccbcdbaCbaDbcebcfbcgbchbcibcjbckbclbaDbcmbcnbcnaBoaBoaBoaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqaskbctbctasnaZFaZFaZFaZFbcqbaXbcvbaYaEsaEsaEsaEsaEsbcwaEsaEsaEsaEsaEybcxbcybczbczbczbczbcAaEyaEybcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbcGbboaTUaTSaTSaTSaTSaTSaTSaTSaTSaTSbcHaReaYwaYxaZYbcIbcJbcKaYybcLbcMbcNaPEbafbagbcObcPaPEbbFbakbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVbcXbcYbcZbdabdbbdbbdabdcbddbaAbaBbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobclbdpbdqbdrbclbdsbaDaZobdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbdwaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaZFbdzbdAbdBbdCbdDbdCbdEbdCbdFbdGbdHbdCbdIbdCbdJbdKbdCbdCbdCbdCbdCbdCbdLbdMbdNbdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaxVbdSbdTbdUbdUbdUbdUbdUbdUbdVbdWaPBaXiaReaYwaYxaYyaYybdXbdYaYyaPEaPEbdZaPEbafbeabcObebaPEbbFbakbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVbejbekbelbembenbeobepbdcbeqbaAbaBberbesbetbetbetbeubevbaBbewbexbclbclbdpbeybdrbclaumbaDbeAaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCbdCbdCbdCbdCbdCbdCbeDbdCbdCbdCbdCbdCbdCbdCbeEbeFbeGbeHaZFaZFaZFaZFaZFaZEaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMayWbeNbeObePbePbeQbePbePbePbeRaPBaPBaPBaPBaYwaYxaZYbeSbeTbeUaYybeVbeWbeXaPEaPEaPEaPEbeYaPEbbFbakbalbeZbbHbcQbfabfbbalbbJbarbfcbcSbcSbfdbfebarbffaIOaYVbfgbfhbelbembfibfjbepbdcbfkbaAbflbfmbfnbetbfobetbdfbfpbfqbewbfrbfsbftbfubfubfvbclbfwbaDaZobfxaIOaNsbdubdvaZFbfyaZFbfzbfAbfAbfAbfBbfAbfAbfAbfCaZFaZFaZFaZFbfDaZFbfybfEbfFbfGaZFaZFaZFbfHbfIbfJbfKbfLbfMbfNaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaYnavtaYnaxTbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebgfbggbghbghbgibgjbghbgkbgkbglbgkbgmbgnbgnbgobgnbgpbgqbgrbgsbgtbgtbgubgvbgrbgwbgxbgybcSbcSbfdbgzbgAbffaIOaYVbgBbgCbgDbdabdabdabdabdcbgEbaAbaBbgFbgGbgHbgIbgJbgGbgKbaBbewbgLbgMbgNbgObgPbgQbgRbgSbaDbgTaHfaHfbgUbgUbgUbgUbgUbgUbgUbgVbgWbgWbgXbgYbgZbgVbhabhabhabhabhabhabhbbhbbhbbhcbhbbhbbhbbhdbhebfObhfbhgbhhbhibhjaZFaZFbhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbhqbhqbhqbhqbhrbhgaPtaPtaPtaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMayWbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbhyaYyaZYbhzbcJbhAaYybhBbhCbhDbhEbhFbhGbhHbhIbhJbhHbhKbhLbhMbhNbhMbhMbhObhPbhQbhRbhSbcSbcSbhTbhUbhVbffaIObhWbgBbhXbhYbhZbiabibbicbidbaAbaAbaBbiebifbigbihbiibijbikbaBbewbilbimbinbiobipbgQbclbiqbaDaZoaIObirbgUbisbitbiubivbiwbixbiybizbizbiAbiBbiBbqmbhabiDbiEbiFbiGbhabiHbiIbiJbiKbiLbiMbiNbiObiPbiObiObiObiQbiRbiSbiTbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbhqbjabjbbjabhqbjcbjdbhqbjebjfbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaaaaMYbbnaPybjhbePbjibePbjjbjkbjlbjmbePbjnaRebjoaRebjpaYyaYyaYyaYyaYyaYybjqbjrbjsaRebjtbalbalbalbjubalbalbalbjvbalbalbalbalbjwbjxbjybjzbcSbcSbfdbjAbgAbffaIObjBbgBbjCbhYbaAbaAbaAbaAbjDbaAbjEbjFbjGbjHbbXbjIbbXbjJbjKbjLbjMbilbjNbclbjObjPbgQbjQbjRbjSbjTbjUbjVbgUbjWbjXbjYbjZbkabkbbkcbkdbizbkebizbizbkfbkgbkhbkibkjbkkbhabklbkmbknbkmbkobkpbhbbkqbkrbksbktbhgbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkCbkEbkFbkGbkHbhlbkIbkJbkKbhqbkLbkMbkNbkObkPbkQbhqbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWaxTaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbleblfblfblfbhHbhHbhHblgblhblhblhblibalbljblkbllblmblnbloblpblqblrblsbltblublvblwblxblyblzblAblBblBblCbjUblDblEblFblGblHblIblJblKblLblMblNbjLbjLbjLbjLblObjLbjLbjLbjLblPblQblRblSblTblUblVblWblXblYblZaIOaIObgUbmabmbbmcbjZbmdbmebkcbmfbmgbmhbmgbmgbmibmjbmkbmlbmmbmnbhabmobkmbmpbkmbkobmqbhbbjgbmrbmsbmtbhgbkubmubmvbmwbmwbmxbmybmzbmAbmAbmAbmBbmCbmDbmEbmFbmGbmHbmIbmJbmKbmLbkPbmMbmNbmObhqbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaveaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaGzaGAaGBaGCaGBaBPaBPaGDaGEaGFaGGaGHaGGaGGaGIaGJaGKaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaGPaAkaGQaGRaGQaAkaAkaaaaygaGSaylaGTaGUaGVaGWaGXaGYaGZaHaaxraHbaypaCxaCuaAraypaAsaAraCwaHcaypaHdaxraHeaHfaHgalNaHhalNalNalNaHialNaHjaHkazBaHlaAxazBaHmazBaHnazBaHoaHpaHqaHraHsaHtaHuaHvaHwaHxaHyaHzaHAaHyaHyaHBaByaHvaHCaHvaHDaHvaHvaHEaHFaHGaHHaHHaHIaHJaHKaHLaHHaHMaHNaHOaHPaHQaHRaHSaHTaEsaHUaHVaEuaHWaHXaHYaHZaGnaIaaIbaGqaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaIeaIfaIgaIhaIiaIiaIiaIfaIjaIkaIfaIlaImaInaIoauKauKaAPaGOaIpaCaaIqaGOaGOaIraIsaItaIuaARaaaaIvaaaaIwaIxaIwaaaaafaaaaygaGSaylaIyaIzaIAaIBaICaylaIDapaaxraIEaypazlaIFaIGazoaIHaIIaIJaIKaILaIMaxraINaIOaIPaIQaIRaISaaaaaaaITaIUaIVaIWazBaIXaAxaAxaAxaCEaAxaAxaAxaIYaBoaIZaBoaJaaJbaBoaJcaBoaJdaJeaJfaJgaJhaJiaJjaJkaJlaJjaJmaJjaJjaJjaJjaJnaJjaJjaJoaJjaJjaJjaJjaJpaJqaHPaJraJsaJtaJuaJvaEsaJwaJxaJyaJzaJAaJBaHZaJCaIaaIbaGqaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPaJQatKatKaJRatKatKaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXaJYaARaJZaKaaKbaKcaKdaKeaKbaKbaKfaygaKgaylaylaylaKhaKiaylaylaKjaKkaxraxraxraxraKlaKmaCxaCxaKnaKoaxraxraxraxraIOaIOaIOaIOaKpaKqaKraKsaITaKtaIVaKuazBazBazBazBazBazBazBazBazBaIYaKvaKwaKxaKyaKzaKAaKBaKCaJdaKDaKEaKFaKGaKHaJjaKIaKJaKKaKLaKKaKMaKNaKOaKPaKQaKRaKSaKTaKUaKVaJjaKWaKXaKYaJraKZaJtaJuaLaaEsaLbaLcaLdaLeaLfaHZaLgaEuaEyaLhaGqaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaLlaBLaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsaJQaLtaLuaLvaLwaLxaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCaLDaLEaLFaLFaLGaLHaLFaLFaLFaLIaLJaLKaLLaLFaLMaLNaLOaLPaLQaIOaLRaLSaIOaIPaLTaLTaLTaLTaLTaLTaLUaLVaLWaLXaLYaLZaMaaMbaMcaIOaIOaIOaMdaMeaMfaMeaMgaMhaMiaMjaIOaMkaIOaBoaMlaMmaMnaMoaMpaMpaMqaMraMsaMtaJdaMuaMvaMwaMwaMxaJjaMyaMzaMAaMBaMAaMAaMCaMDaMEaMDaMFaMGaMHaMIaMDaJjaJpaMJaMKaMKaMLaMMaMKaMNaEsaMOaMPaEuaMQaMRaHZaHZaEuaMSaMTaMUaIbaEyaEyaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXayVaMVaAFaAFaAFaAFaMWayVawXaAHasSaAIaMXaMYaMZaNaaNbaNbaNcatHaNdaLsaNeaNfaLuaNgaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaLBaNmaNnaLzaLzaLzaNoaNpaLzaLzaLzaLzaNqaLzaLzaLzaNraNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBaIOaBoaNCaNDaMpaNEaMpaMpaNFaNGaMsaNHaJdaNIaNJaNKaNLaNMaJjaNNaNOaNPaNQaNRaNSaJjaNTaNUaNTaJjaJjaJjaJoaJjaJjaJpaJqaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuaNYaEuaIbaIbaGqaIbaNZaOaaEyaaaaafaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSayWaxTaMYaOhaOiaNbaNbaNcatHaOjaLsaJQaNfaLuaOkaOlaOmaOmaOmaOnaOoaOpaOmaOqaOmaOmaOraOsaOtaOuaOmaOvaOwaOxaOyaOzaOAaOBaOCaODaOEaOEaOFaOGaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoaOOaOPaOQaOQaOQaORaOSaNGaMsaOTaJdaJdaJdaJdaJdaOUaJjaOVaOWaOXaOYaNPaNPaJjaOZaPaaPbaPcaPbaPbaPdaPeaJjaJpaJqaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaPnaPoaPpaIbaIbaPqaPraEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafatHaxRayVaJMayWaxTaxTayXaJMayVaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsaJQaPBaPBaPCaPDaPBaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEaPEaPEaPHaPIaPJaPIaPKaPLaPMaLzaLAaPNaPOaPPaPQaLAaLzaPRaPSaPSaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVaPWaPXaPYaPZaQaaQaaQbaQcaQaaQdaQeaQfaPWaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiaQjaQkaQkaQkaQkaQlaQmaQnaQoaQpaskaQraQsaQtaQuaJdaJdaQvaQwaQxaQyaQzaJjaQAaQBaQCaQCaQCaQCaQDaQEaJjaQFaJqaQGaHPaPgaPhaHPaHPaQHaEsaQIaQJaQKaEyaQLaQMaQNaQOaQOaQPaQNaQQaQRaEyaQSaQTaPtaQUaQVaQWaafaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcaRdaPBaReaRfaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRsaRtaRuaRvaRwaRxaPKaRyaPMaPMaRzaPMaRAaPSaPSaRBaRCaPSaPSaPSaRDaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOaRQaRRaRSaRTaQoaQoaQoaQoaQoaRUaRVaQoaQoaQoaQraMpaRWaRXaRYaRZaSaaSbaScaSdaSeaJdaPbaSfaSgaSgaSgaSgaShaSiaJjaJpaJqaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaSnaPoaPraSoaSoaPqaPraEyaEyaEyaSpaSqaSraSsaStaSuaafaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTaxTaSzaxTaSAaSBaSCaSDaSEaPBaReaSFaSGaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtaPHaSJaSKaSLaPKaRyaPMaSMaSNaSOaSPaPSaSQaSRaSSaSTaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZaTaaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoaTiaTjaTkaQoaTlaTmaCIaTnaToaTkaQoaQraMpaTpaRXaTqaTraTsaTtaTuaTvaRXaTwaTxaTyaSgaTzaTAaSgaTBaPbaJjaJpaJqaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyaTFaTGaTHaSoaSoaTIaTHaTJaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTQaTRaTSaTSaTSaTTaTSaTSaTSaTUaTSaTUaPBaReaTVaTWaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcaPHaUdaUeaUfaPKaUgaPMaUhaUiaUjaUkaPSaUlaSUaSUaSSaSUaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDaTiaToaTkaQoaUEaUFaQoaUGaUHaTkaQoaQraMpaUIaRXaUJaUKaULaUMaUNaUOaRXaUPaUQaURaSgaUSaUTaSgaUUaUVaJjaJpaJqaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaVbaVcaVdaSoaSoaVeaVdaVfaEyaVgaSsaSsaSsaSsaSsaVhaViaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaVmazTaxVaxTaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaPEaVBaRnaRnaTYaUaaVCaVDaTYaRnaRnaRnaRtaPHaPKaPKaVEaPKaVFaVGaVGaVGaVGaVHaVIaVJaSSaSSaSSaSSaUmaIOaIOaIPaLTaLTaVKaVLaVMaPWaVNaTbaUtaVOaUtaUtaUtaUtaVPaUtaVQaUtaVRaVSaVSaVTaVUaPWaVVaVLaVWaVXaLTaINaIOaIOaThaQoaRTaQoaQoaQoaVYaVZaQoaUGaWaaTkaQoaQraMpaWbaRXaWcaWdaWeaWfaWgaUOaWhaJdaPbaURaWiaSgaSgaSgaUUaPbaJjaWjaJqaEsaEsaWkaPhaWlaWmaHPaWnaWoaKZaWpaWqaWraWsaWtaWuaWuaWvaWwaWxaWqaWyaWzaSsaSsaSsaWAaWBaWCaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaWEaWFaWGayWaWHaWIaWJaWKaWLaWMaWNaWOaWPaWKaWQaWRaWSaWTaWUaPEaWVaRnaWWaWXaWYaWYaWZaWYaWYaWYaXaaXbaXcaXdaXeaXfaXgaXhaReaReaXiaPBaXjaPSaXkaXlaXmaXnaXnaXoaIOaIOaIOaIOaIOaXpaXqaXraXsaXtaXuaUtaXvaXwaXxaXyaXzaXAaXBaXCaXDaXEaXFaXtaXGaXHaXIaXJaXKaXLaXMaXNaXOaIOaXPaBoaRSaTiaXQaTkaQoaXRaXSaQoaUGaToaTkaQoaQraXTaRWaRXaWcaRXaXUaRXaXVaUOaXWaJdaQAaURaSgaSgaSgaSgaUUaQEaJjaXXaXYaXZaYaaYbaYcaYdaYdaYdaYdaYdaYdaYeaYfaYgaSoaSoaSoaSoaSoaSoaYhaYiaYjaSsaSsaSsaSsaYkaYlaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaYnavtaYnaxTaYoaTUaYpaYqaYraYraYraYraYsaYtaTSaYuaYvaYwaYxaYyaYyaYyaYzaYyaYAaYBaYCaYDaYEaYEaYFaRtaYGaYHaYIaYJaYKaYLaYMaYMaYNaYOaYPaYQaYRaYSaYSaYSaYTaPSaYUaIOaYVaYWaYXaYYaYZaZaaZbaZcaZdaZeaZfaPWaPWaPWaPWaPWaPWaZgaZhaZiaZjaXwaZkaZlaPWaZaaYZaZmaZnaYWaZoaIOaIOaThaQoaZpaQoaQoaQoaFHaQoaQoaZqaQoaZraZraZraZraZsaZtaZuaRXaRXaRXaZvaZwaZxaJdaZyaZzaSgaZAaZAaZBaZzaZCaJjaZDaZEaZFaZGaPgaPgaPgaPgaZHaPgaPgaPgaZIaYiaSoaSoaSoaSoaSoaSoaSoaYhaYiaYjaSsaSsaZJaSsaSsaZKaYmaafaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaZLaZMaWGayWaZNaZOaZPaZQaZRaZSaZTaYraZUaZVaTSaZWaZXaYwaYxaZYaZZbaababaYybacbadbaeaPEbafbagbahbaiaPEbajbakbalbalbalbalbambalbalbanbaobaobaobapbaobaqbarbasbatbaubavbawbawbawbawbaxbaybazbaybaAbaBbaBbaBbaBbaBbaBbaBbaBbaCbaDbaDbaEbaDbaDbaDbaDbaDbaDbaDaZoaIOaIOaBobaFbaGaBlbaHaQobaIaQobaJbaKbaLaZrbaMbaNbaOaJdaJdaJdbaPbaQbaQbaQaJdaJdaJdbaRaSgaSgbqmbaWbaUbaVbcuaJjbaXaZEbaYaEsbaZbbabbbaWmbbcbbabbdaWmbbeaEybbfaIbbbgaSoaSobbgaIbbbhaEybbibbjbbkaSsaSsbblbbmaYmaafaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaVlaafaxRbbnaPybboaTUbbpbbpbbqbbrbbsbbqbbtbbpaTSbbubbvbbwbbxbbybbybbzbbAbbybbBbadbbCaPEbafbagbbDbbEaPEbbFbakbalbbGbbHbbHbbHbbIbalbbJbbKbbLbbMbarbarbarbaraIOaIObbNbbObbPbbQbbRbbSbbTbbUbbVbbWbaAbaBbbXbbYbbZbcabcbbccbcdbaCbaDbcebcfbcgbchbcibcjbckbdsbaDbcmbcnbcnaBoaBoaBoaBoaBobcoaThbcobcpaBoaBoaRRaBoaBoaBobcqbcrbcrbcrbcrbcrbcrbcsbcrbcqbaSbctbctbaTaZFaZFaZFaZFbcqbaXbcvbaYaEsaEsaEsaEsaEsbcwaEsaEsaEsaEsaEybcxbcybczbczbczbczbcAaEyaEybcBaSsbcCaSsaSsaWAbcDbcEaTMaWDaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaWGatHatHatHatHatHatHbcGbboaTUaTSaTSaTSaTSaTSaTSaTSaTSaTSbcHaReaYwaYxaZYbcIbcJbcKaYybcLbcMbcNaPEbafbagbcObcPaPEbbFbakbalbbHbcQbcQbbHbcQbalbbJbcRbcSbcSbcTbcUbcVbarbcWaIOaYVbcXbcYbcZbdabdbbdbbdabdcbddbaAbaBbdebdfbdgbdhbdibdjbdkbdlbdmbdnbdobclbdpbdqbdrbclatZbaDaZobdtaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbdwaZFaZFaZFaZFbdxaZFaZFaZFaZFaZFaZFaZFaZFbdyaZFaZFaZFaZFaZFaZFaZFaZFbdzbdAbdBbdCbdDbdCbdEbdCbdFbdGbdHbdCbdIbdCbdJbdKbdCbdCbdCbdCbdCbdCbdLbdMbdNbdObcCaSsaSsaSsaVkbdPaVjaVkaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaafbdRazTaxVbdSbdTbdUbdUbdUbdUbdUbdUbdVbdWaPBaXiaReaYwaYxaYyaYybdXbdYaYyaPEaPEbdZaPEbafbeabcObebaPEbbFbakbalbecbedbbHbcQbeebalbbJbefbcSbcSbcSbegbehbarbeiaIOaYVbejbekbelbembenbeobepbdcbeqbaAbaBberbesbetbetbetbeubevbaBbewbexbclbclbdpbeybdrbclasnbaDbeAaIOaIOaNsbdubdvaZFaZFaZFaZFaZFaZFaZFbeBaZFaZFaZFaZFaZFaZFbeCbdCbdCbdCbdCbdCbdCbeDbdCbdCbdCbdCbdCbdCbdCbeEbeFbeGbeHaZFaZFaZFaZFaZFaZEaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbeIbdzbeJaSsaSsbcCaSsaSsbeKbeLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaWEaWFbeMayWbeNbeObePbePbeQbePbePbePbeRaPBaPBaPBaPBaYwaYxaZYbeSbeTbeUaYybeVbeWbeXaPEaPEaPEaPEbeYaPEbbFbakbalbeZbbHbcQbfabfbbalbbJbarbfcbcSbcSbfdbfebarbffaIOaYVbfgbfhbelbembfibfjbepbdcbfkbaAbflbfmbfnbetbfobetbdfbfpbfqbewbfrbfsbftbfubfubfvbclbfwbaDaZobfxaIOaNsbdubdvaZFbfyaZFbfzbfAbfAbfAbfBbfAbfAbfAbfCaZFaZFaZFaZFbfDaZFbfybfEbfFbfGaZFaZFaZFbfHbfIbfJbfKbfLbfMbfNaZFaZFaZFaZFaZFbfObfPbfDaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFaZFbdzbfQbfRbfSbfTbfUbfVbbmbfWaafaaaaafaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaYnavtaYnaxTbfXbePbfYbfZbgabgabgbbgcbgdbgebgebgebgebgfbggbghbghbgibgjbghbgkbgkbglbgkbgmbgnbgnbgobgnbgpbgqbgrbgsbgtbgtbgubgvbgrbgwbgxbgybcSbcSbfdbgzbgAbffaIOaYVbgBbgCbgDbdabdabdabdabdcbgEbaAbaBbgFbgGbgHbgIbgJbgGbgKbaBbewbgLbgMbgNbgObgPbgQbgRbgSbaDbgTaHfaHfbgUbgUbgUbgUbgUbgUbgUbgVbgWbgWbgXbgYbgZbgVbhabhabhabhabhabhabhbbhbbhbbhcbhbbhbbhbbhdbhebfObhfbhgbhhbhibhjaZFaZFbhkbhkbhlbhlbhlbhlbhlbhmbhnbhnbhobhnaZFbhnbhobhnbhnbhpbhqbhqbhqbhqbhrbhgaPtaPtaPtaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaZLaZMbeMayWbhsbePbhtbePbhubhvbePbePbePaRebhwbhxbhxbhyaYyaZYbhzbcJbhAaYybhBbhCbhDbhEbhFbhGbhHbhIbhJbhHbhKbhLbhMbhNbhMbhMbhObhPbhQbhRbhSbcSbcSbhTbhUbhVbffaIObhWbgBbhXbhYbhZbiabibbicbidbaAbaAbaBbiebifbigbihbiibijbikbaBbewbilbimbinbiobipbgQbclbiqbaDaZoaIObirbgUbisbitbiubivbiwbixbiybizbizbiAbiBbiBavUbhabiDbiEbiFbiGbhabiHbiIbiJbiKbiLbiMbiNbiObiPbiObiObiObiQbiRbiSbiTbiSbiUbiUbhlbiVbiWbiXbhlbiYbiZbiYbhlbhmbhnbhpbhqbjabjbbjabhqbjcbjdbhqbjebjfbjgbhgaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQbdQbdQbdQbdQbdQbdQbdQbdQbdQaaaaaaaMYbbnaPybjhbePbjibePbjjbjkbjlbMabePbjnaRebjoaRebjpaYyaYyaYyaYyaYyaYybjqbjrbjsaRebjtbalbalbalbjubalbalbalbjvbalbalbalbalbjwbjxbjybjzbcSbcSbfdbjAbgAbffaIObjBbgBbjCbhYbaAbaAbaAbaAbjDbaAbjEbjFbjGbjHbbXbjIbbXbjJbjKbjLbjMbilbjNbclbjObjPbgQbjQbjRbjSbjTbjUbjVbgUbjWbjXbjYbjZbkabkbbkcbkdbizbkebizbizbkfbkgbkhbkibkjbkkbhabklbkmbknbkmbkobkpbhbbkqbkrbksbktbhgbkubkvbkwbkxbkybkzbkAbkBbkCbkDbkCbkEbkFbkGbkHbhlbkIbkJbkKbhqbkLbkMbkNbkObkPbkQbhqbkRbkSbkTbhgaaaaaaaaaaaeaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazQasSbcFaAFaZMaTPaTPaTPbkUaTPbkVayWaxTaxTbePbkWbkXbkYbkZblablbblcbldbldbldbldbleblfblfblfbhHbhHbhHblgblhblhblhblibalbljblkbllblmblnbloblpblqblrblsbltblublvblwblxblyblzblAblBblBblCbjUblDblEblFblGblHblIblJblKblLblMblNbjLbjLbjLbjLblObjLbjLbjLbjLblPblQblRblSblTblUblVblWblXblYblZaIOaIObgUbmabmbbmcbjZbmdbmebkcbmfbmgbmhbmgbmgbmibmjbmkbmlbmmbmnbhabmobkmbmpbkmbkobmqbhbbjgbmrbmsbmtbhgbkubmubmvbmwbmwbmxbmybmzbmAbmAbmAbmBbmCbmDbmEbmFbmGbmHbmIbmJbmKbmLbkPbmMbmNbmObhqbmPbkSbmsbhgaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmQbmRavtaYnawYawYawYaPyaxTaxTbePbmSbmTbkZbmUbePbePbePaPBbmVbmWbmXbmYbmXbmXbmXbmYbmXaPBaPBbalbalbalbmZbalblpblpbnablpblpblpblpblpbnbbncbndbnebnfbngbngbngbnhbnibnjbnkbnlbnmbnnbnobnpbnpbnqbnrbnsbntbnubnvbnwbnxbnybnzbnAbnBbnCbnzbnDbnxbnEbilbnFbnGbnFbaDbaDbaDbnHbewbnIaIOaIObgUbnJbnKbnLbjZbnMbnNbkcbkebizbnObnPbnQbnRbhabnSbnTbnUbnVbhabmobnWbkmbkmbkobkpbhbbhgbhgbhgbhgbhgbkubkvbnXbnYbnZboabobbocbodboebofbofbogbkCbohbhlboibojbokbhqbolbombonboobopboqbhqbmPbkSborbhgaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQavtavtaYnaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpblpblpboCbjzbcSboDboEboFbarbarboGblvbarbarboHboIboJboKboLboMboMboNboMboOboPboMabRboQboRbnzboSbnBboSbnzboTboQbnEboUboVbfuboWboXboYboZbpabpbbpcaIObpdbpebpfbpgbnLbjZbphbixbpibkebizbpjbpkbizbplbhabkhbpmbpnbpobhabppbpqbprbpsbptbpsbpubpvbpvbpvbpvbpvbpwbkvbpxbkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbhqbpIbpJbpKboobkPbpLbhqbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpObiCbpObiCbpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaYnaYnbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpbqabqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbqgbqhbqibarbqjbfdbqkbqlbezbffbqnbqoboKboKboMbqpbqqbqrbqsbqtboMbqubqvbqwbqxbqybqzbqybqAbqBbqCbqDboUbqEbfubqFbaDbqGbnFbqHbqIbpcaIOaIObgUbqJbqKbnLbqLbqMbixbqNbqObqPbqQbqRbizbqSbqTbqUbqVbqWbqXbhabhbbqYbhbbhbbqZbqZbqZbqZbqZbqZbqZbqZbkubkvbnXbnYbnZbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbribhqbrjbrkbrlbrmbkPbrnbhqbmPbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpblpblpbrybrybrybryboAblpblpblpbnbbrzbcSbrAbrBbrCbrDbrEbfdbcSbrFbpPbffbqnbrHbrIbrJbrKbrLbrMbrNbrObrPboMabRbrQbrRbnzbqybrSbqybnzbrTbrUbnEbrVbrWbrXbrYbaDbrZbnFbsabqIbpcaIObsbbgUbscbsdbnLbsebsfbixbsgbkebizbshbsibqPbsjbhabskbslbsmbsnbhabsobspbsqbsrbssbstbsubsvbswbsxbsybszbiQbiRbsAbsBbsCbsDbsEbkBbsFbrebrebrebsGbkCbsHbhlbsIbsIbsJbhqbsKbsLbsMbsNbkPbsObhqbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqbsSbiCaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmQavtavtaYnaxSaxSaxSbosaxSaxSbePbotboubovbkZbePaaaaaaaaaaafaafbowbowbowbowbowbowbowaaaaaaboxboybozboAboBblpblpblpblpblpblpblpblpboCbjzbcSboDboEboFbarbarboGblvbarbarboHboIboJboKboLboMboMboNboMboOboPboMabRboQboRbnzboSbnBboSbnzboTboQbnEboUboVbfuboWboXboYboZbpabpbbpcaIObpdbpebpfbpgbnLbjZbphbixbpibkebizbpjbpkbizbplbhabkhbpmbpnbpobhabppbpqbprbpsbptbpsbpubpvbpvbpvbpvbpvbpwbkvbpxbkxbkxboabpybpzbpAbpBbpCbpCbpDbpEbpFbhlbpGbojbpHbhqbpIbpJbpKboobkPbpLbhqbkRbkSbpMbhgaaaaaaaaaaaaaafbpNbpOavTbpOavTbpObpQaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxRaYnaYnbpRaTPbpSazQasSbpTbpSbePbpUbpVbpWbpXbePaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaabpYbpZblpbqabqbbqbbqbbqbbqbbqcbqbbqbbqbbqdbqebqfbqgbqhbqibarbqjbfdbqkbqlcCSbffbqnbqoboKboKboMbqpbqqbqrbqsbqtboMbqubqvbqwbqxbqybqzbqybqAbqBbqCbqDboUbqEbfubqFbaDbqGbnFbqHbqIbpcaIOaIObgUbqJbqKbnLbqLbqMbixbqNbqObqPbqQbqRbizbqSbqTbqUbqVbqWbqXbhabhbbqYbhbbhbbqZbqZbqZbqZbqZbqZbqZbqZbkubkvbnXbnYbnZbrabrbbrcbrdbrebrebrebpDbkCbrfbrgbrhbkJbribhqbrjbrkbrlbrmbkPbrnbhqbmPbmrbhgbhgaaaaaaaaaaaaaafbrobrpbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbrubrvbrwbrxblpblpblpbrybrybrybryboAblpblpblpbnbbrzbcSbrAbrBbrCbrDbrEbfdbcSbrFdPtbffbqnbrHbrIbrJbrKbrLbrMbrNbrObrPboMabRbrQbrRbnzbqybrSbqybnzbrTbrUbnEbrVbrWbrXbrYbaDbrZbnFbsabqIbpcaIObsbbgUbscbsdbnLbsebsfbixbsgbkebizbshbsibqPbsjbhabskbslbsmbsnbhabsobspbsqbsrbssbstbsubsvbswbsxbsybszbiQbiRbsAbsBbsCbsDbsEbkBbsFbrebrebrebsGbkCbsHbhlbsIbsIbsJbhqbsKbsLbsMbsNbkPbsObhqbmPbsPbhgaaaaaaaaaaaaaaaaafbsQbsRbrqbrrbrqbsSavTaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbsTbsUbsTbsVbsWblpblpblpblpblpblpboAblpbsXbalbalbsYbcSbcSbsZbtabtbbtcbfdbcSbcSbtdaIObqnbtebtfbtgbthbtibtjbtkbtlbtmboMabRbrUbrUbtnbtobtpbnzbtqbtrbtsbttbtubtvbtvbtvbtvbtvbtvbtwbtxbtyaHfbtzbtAbtBbtCbtDbtEbixbixbtFbkebizbizbizbizbtGbtHbizbtIbizbtJbtKbtLbtMbizbtNbtObtPbtQbtRbtSbtTbtUbqZbtVbtWbtXbtXbtYbtZbuabkBbubbkCbkCbucbudbkCbuebkBbufbugbuhbuibujbukbulbumbunbhqbhqbuobhgbhgbupbuqbuqbuqburbkIbrobrrbrqbrrbrrbrsbroaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowbusbutbusbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbcSbsZbuybuzbtcbuAbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbrSbuRbtrbuSbuTbuTbtubuUbuVbuWbuXbuYbuZbvabvbbvcaIObvdbvebvfbvgbvhbvibvjbvkbvlbvmbvlbvnbvlbvlbvobvpbvlbvpbvlbvlbvlbvqbvrbvsbvtbtObvubtQbvvbvvbvwbvxbqZbkubkvbvybvzbvAbvBbvBbkBbvCbvDbvEbkBbvFbkCbvGbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbsIbkJbvRbvSbvTbvUbvVbvVbvVbvVbvWbvXbpObiCbvYbiCbpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbwcblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbcSbwfbqfbwgbqfbwhbcSbrFbezbffaIObpcbuFbtgboMbwibwjbwkbwlbwmboNbwnbwobwpbwqbtsbwrbwsbwtbwubwvbwwbtubwxbwybwzbwAbwBbwBbwCbwDbwEaIObvdbwFbvfbwGbizbwHbwIbwJbwKbwLbwKbwMbwKbwNbwObtLbwPbtLbtLbwQbwRbHfbHfbPJbPIbOJbwWbtQbwXbwYbtTbwZbqZbxabkvbiSbxbbxcbxbbxbbkBbkBbkBbkBbkBbxdbxebxfbxgbxhbxibxjbxkbxkbxlbxmbojbxnbxobxpbvRbojbvTbxqbojbxrbojbxsbkIbupbuqburbxtbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbusbutbusbxubxvblpblpbxwbxxbxybxxbxzbxxbxAbxBbgrbxCbxDblybxEblybQKblzbxDbxFbxGbpPbffaIObxHbxIbxJboMbxKbxLbxMbxNbxOboNbxPbxQbxRbxSbxTbxUbxVbxWbxXbxYbxZbyabybbycbycbydbyebyfbygbtxbyhaIObyibgVbqNbyjbizbykbylbymbynbyobypbyqbyrbymbynbysbysbynbymbytbgWbHfcbhcckcckcdacdkbtQbywbyxbyybyzbqZbyAbyBbyCbyDbyEbxkbxkbyFbyGbxkbyHbyIbyJbyKbyLbxkbyMbyNbyObyPbyQbyRbySbySbySbySbySbyTbyUbyVbupburbkIbojbvVbyWbyXbyYbyZbzabzbaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabowbowbowbowbowbowbowbusbutbusbuublpblpblpbrybrybrybryboAblpbuvbuwbalbuxbcSbcSbsZbuybuzbtcbuAbuBbqfbuCbuDbuEbpcbuFbtgbuGbuHbuIbuJbuKbuLbuMbuNbuObuPbuQbuRbrSbuRbtrbuSbuTbuTbtubuUbuVbuWbuXbuYbuZbvabvbbvcaIObvdbvebvfbvgbvhbvibvjbvkbvlbvmbvlbvnbvlbvlbvobvpbvlbvpbvlbvlbvlbvqbvrbvsbvtbtObvubtQbvvbvvbvwbvxbqZbkubkvbvybvzbvAbvBbvBbkBbvCbvDbvEbkBbvFbkCbvGbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbsIbkJbvRbvSbvTbvUbvVbvVbvVbvVbvWbvXbpOavTbvYavTbpObvZaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbwabrvbwbbwcblpblpblpblpblpblpblpboAblpbuvbwdbalbwebegbcSbwfbqfbwgbqfbwhbcSbrFcCSbffaIObpcbuFbtgboMbwibwjbwkbwlbwmboNbwnbwobwpbwqbtsbwrbwsbwtbwubwvbwwbtubwxbwybwzbwAbwBbwBbwCbwDbwEaIObvdbwFbvfbwGbizbwHbwIbwJbwKbwLbwKbwMbwKbwNbwObtLbwPbtLbtLbwQbwRbHfbHfbPJbPIbOJbwWbtQbwXbwYbtTbwZbqZbxabkvbiSbxbbxcbxbbxbbkBbkBbkBbkBbkBbxdbxebxfbxgbxhbxibxjbxkbxkbxlbxmbojbxnbxobxpbvRbojbvTbxqbojbxrbojbxsbkIbupbuqburbxtbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbusbutbusbxubxvblpblpbxwbxxbxybxxbxzbxxbxAbxBbgrbxCbxDblybxEblybQKblzbxDbxFbxGdPtbffaIObxHbxIbxJboMbxKbxLbxMbxNbxOboNbxPbxQbxRbxSbxTbxUbxVbxWbxXbxYbxZbyabybbycbycbydbyebyfbygbtxbyhaIObyibgVbqNbyjbizbykbylbymbynbyobypbyqbyrbymbynbysbysbynbymbytbgWbHfcbhcckcckcdacdkbtQbywbyxbyybyzbqZbyAbyBbyCbyDbyEbxkbxkbyFbyGbxkbyHbyIbyJbyKbyLbxkbyMbyNbyObyPbyQbyRbySbySbySbySbySbyTbyUbyVbupburbkIbojbvVbyWbyXbyYbyZbzabzbaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbzcbzdbzcbzebzfbzgbzgbzgbzgbzgbzhbziblpbuvbzjbalbzkbzlbzmbznbzoboEbzpbzqbzrbarbarbzsaIObztbzubtgboMbzvbzwbzxbwjbzyboNbzzbzAbzBbzCbzDbzEbzFbzGbzHbzIbzJbtubzKbzLbzMbzNbyebyfbygbtxbzOaIObzPbzQbzRbzSbizbykbzTbymbzUbzVbzWbzXbzYbymbzZbAabAabAbbymbAcbizbHfcawcckccjcciccYccWbAibAjbAjbAkbAlbAmbAnbAobApbAqbvMbvMbArbvMbAsbvMbvNbvMbvMbvMbvMbAtbAubAvbAwbAxbAybAzbAAbABbACbySbADbAEbAFaafaafbkIbAGbvVbyXbyXbvWbAHbAIbAJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowbAKbALbAMbalbalbANbrvbrvbrvbAObalbalbAPbAQbARbalbASbASbASbATbASbAUbAVbAWbAXbAYbAUbffaIObAZbBaaUnboMbuMbBbbBcbBcbBdbBebBfbBgbBhbBfbBibBjbBkbBlbBmbBmbBmbBnbtvbtvbtvbtvbtvbtvbtvbtxbBoaXNbBpbEabEabQRbQSbQTbymbymbBubBvbBwbBxbBxbBybBzbBAbBBbBzbBCbAcbizbHfbVCbUqbYTbVDbUpbQWbBJbBGbBGbBKbBLbBMbBNbBObBObBObBObBObBPbBObBObBQbBRbBSbBTbBTbBUbBVbvRbBWbAwbBXbBYbBZbCabCbbCcbySbADbAEbCdaaaaaabkIbCebCfbkIbvWbkIbkIbvWbkIaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCgaafaaaaaaaaaaaabASbChbCibCjbCkbAUbClbCmbCnbCobAUbffaIObCpbCqbCrbCqbCsbCtbCubCvbCwbCxaXNbCyaXNbCzbCAbCBbCCbCDbCEaIOaMibCFaMjaNsbCubCGbCHaIObCIbCJbzOaIObCKbEabPUbQQbPSbPTbCPbCQbCRbCSbCTbBxbBxbCUbBzbCVbCWbCXbBCbAcbCYbHfbPRbPQbPMbPLbPKbDebDfbDgbDhbqZbqZbxabDibBObDjbDkbDlbDmbDnbDobDpbBQbDqbDrbDsbBTbBTbDtbvRbBWbDubDvbDwbDxbDybDzbDAbySbADbDBbyVbyVbyVbyVbyVbkIbkIaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabASbDCbDDbDEbDFbDGbDHbDIbDJbDKbAUbffbDLbDMaIOaIOaIOaIOaNsbCubCGbDNaIOaIObDOaIOaIObDPbDQbDRaIOaIOaIOaIObCFaIOaNsbCubCGbDSaXNbDTbDUbDVbDWbDXbHgbIkbHhbImbIlbEdbEebEfbEgbEhbEibzYbymbEjbEkbElbEmbymbAcbizbHfbHfbHfbHfbHfbqZbqZbqZbqZbqZbqZbEnbEobEpbBObEqbErbEsbEtbEubEvbEwbBQbExbEybEzbEzbBTbEAbEBbECbEDbEEbEFbDzbEGbEHbEIbySbADbAEbyVbEJbEKbEKbyVaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbELbEMbEMbENbEObEObEPbEPbEPbEPbEQaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESaGwbESbEUaaaaaaaaabASbASbEVbEWbDEbEWbEXbEYbEZbFabFbbAUbFcbffbFdbFebuDbFfbuDbFgbFhbFibuEaIObFjbFkbjUbjUbFlaXNaXNaXNaXNaXNaXNbFmbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFrbFxbFBbFAbFzbFybEabEabynbFCbynbymbymbymbymbymbymbymbymbAcbizbFDbFEbFFbzTbFGbEcbIrbIpbIqbIobInbFMbFNbFObBObFPbFQbDlbFRbFSbFTbFUbBQbFVbEybEzbEzbBTbFWbFXbFYbFZbGabGbbGcbGdbGebGfbGgbGhbGibGibGibGibGjbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGkbGlbGmbGlbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabowbowbowbowbowaaaaaaaaaaaaaaaaaaaaaaaabERbESavQbESbEUaaaaaaaaabASbASbEVbEWbDEbEWbEXbEYbEZbFabFbbAUbFcbffbFdbFebuDbFfbuDbFgbFhbFibuEaIObFjbFkbjUbjUbFlaXNaXNaXNaXNaXNaXNbFmbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFrbFxbFBbFAbFzbFybEabEabynbFCbynbymbymbymbymbymbymbymbymbAcbizbFDbFEbFFbzTbFGbEcbIrbIpbIqbIobInbFMbFNbFObBObFPbFQbDlbFRbFSbFTbFUbBQbFVbEybEzbEzbBTbFWbFXbFYbFZbGabGbbGcbGdbGebGfbGgbGhbGibGibGibGibGjbAFaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbGkbGlbGmbGlbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbGqbGrbGqbGpbGsbGtbGubASbGvbEWbGwbGxbGybGzbGAbGAbGBbGCbAUbGDbGDbGEbGDaUnaUnaUnaUnbGFbGFbGFbGFbGFbGFbGFbGFbGGbcnbcnbGHbGHbGHbGHbGIbGJbGHbGHbGHbGHbGKbGLbGMaIUbGNbGObDZbDcbDbbDYbDdbEbbEabGVbGWbGXbynbGYbGYbGZbHabHbbHcbynbHdbizbizbizbizbizbAcbCNbCObCZbDabFHbEcbHibHjbIGbIGbIGbIGbIGbIGbIGbIGbIGbBQbHlbHmbHnbHnbBTbHobHpbHqbHrbHrbHrbHrbHsbHtbHubHvbHrbHrbHrbHrbAEbHwbHxaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbHybGlbGlbHzbEPbEPbGnbGnbHAbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGwbHBbHCbHBaGwbHDbHEbHFbASbHGbHHbEWbHIbHJbAUbHKbHLbHMbHNbAUbHObHObHPbGDaaaaaaaaaaaabGFbHQbHRbHSbHTbHUbHVbGFbHWbHXbHYbGHbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbFIbGRbGQbEabEabGPbFLbFKbFJbGSbEabIsbItbIubIvbBxbBxbBxbBxbBxbIwbIxbIybtLbtLbtLbtLbwQbAcbGTbCObCZbDabHebGUbICbHjbIGbWLbWLbWLbWObWMbWLbWLbWLbBQbIKbILbIMbIMbBTbINbIObBWbIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbHrbyVbJabyVbJbbJbbJbbJbbJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavQbHBbHCbHBavQbHDbHEbHFbASbHGbHHbEWbHIbHJbAUbHKbHLbHMbHNbAUbHObHObHPbGDaaaaaaaaaaaabGFbHQbHRbHSbHTbHUbHVbGFbHWbHXbHYbGHbHZbIabIbbIcbIdbIebIfbIgbIhbIibIjbFIbGRbGQbEabEabGPbFLbFKbFJbGSbEabIsbItbIubIvbBxbBxbBxbBxbBxbIwbIxbIybtLbtLbtLbtLbwQbAcbGTbCObCZbDabHebGUbICbHjbIGbWLbWLbWLbWObWMbWLbWLbWLbBQbIKbILbIMbIMbBTbINbIObBWbIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZbHrbyVbJabyVbJbbJbbJbbJbbJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGpbHBbHBbHBbJdbJebEWbEWbJfbJgbEWbEWbJhbJibAUbAUbAUbJjbAUbAUbJkbJlbJmbJnaaabJobJpbJqbJrbJsbHVbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbJFbJGbJHbJIbGHbGHbJJbJKbLObMTbMSbMVbMUbMXbMWbNibMYbLWbLVbJWbJXbJYbymbJZbKabBxbBxbKbbKcbJMbJMbJMbJMbJMbKebLRbLSbTobLUbLQbLQbLQbLPbKibKjbIGdPxdPwbWLdPubWLbWLbWLdPvbBQbKobEybKpbKpbBTbBVbKqbKrbKsbKtbKtbKtbKtbKubKvbKwbKxbKybKzbHrbKAbKBbKCbKDbKEbKFbKGbKHaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEPbKIbKJbKJbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGwbHCbHCbHCaGwbKKbKLbKMbKNbKObEWbKPbKQbKRbKSbKTbKTbKUbKTbKTbKVbKWbKXbKYaaabKZbLabLbbLcbLdbHVbLebLfbLgbLhbGFbLibLjbLkbGHbLlbLmbLnbLobLpbLqbLrbLsbLtbLubLvbNjbNqbNpbNnbIzbOubOtbOsbOrbNlbEabLGbLHbLIbymbLJbLKbBxbBxbLLbLMbJMbOIbOGbOHbOzbkebOybtLbOCbOFbOAbOBbNkbEcbHibLXbIGbWLdPybWLbWLbWLbWLbWLbWLbBQbMabEybMbbMbbBTbMcbMdbBWbMebKvbKvbMfbMgbMhbMibMjbMkbMlbMmbMnbMobMpbMqbMrbMsbMtbKGbMuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavQbHCbHCbHCavQbKKbKLbKMbKNbKObEWbKPbKQbKRbKSbKTbKTbKUbKTbKTbKVbKWbKXbKYaaabKZbLabLbbLcbLdbHVbLebLfbLgbLhbGFbLibLjbLkbGHbLlbLmbLnbLobLpbLqbLrbLsbLtbLubLvbNjbNqbNpbNnbIzbOubOtbOsbOrbNlbEabLGbLHbLIbymbLJbLKbBxbBxbLLbLMbJMbOIbOGbOHbOzbkebOybtLbOCbOFbOAbOBbNkbEcbHibLXbIGbWLdPybWLbWLbWLbWLbWLbWLbBQbjmbEybMbbMbbBTbMcbMdbBWbMebKvbKvbMfbMgbMhbMibMjbMkbMlbMmbMnbMobMpbMqbMrbMsbMtbKGbMuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtbrtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaabGpbMwbMxbMybGpbMzbGtbGubASbASbMAbMAbMAbASbASbGDbGDbGDbGDbMBbGDbGDbMCbKYaaabKZbMDbMEbMFbMGbMHbMIbMJbMGbMGbMKbMLbMMbMNbGHbGHbGHbGHbGHbGHbMObGHbGHbMPbMQbMRbIzbKdbJVbKdbIzbJSbJRbJUbJTbJQbEabMZbNabNbbymbNcbNdbNebNfbNgbNhbJMbJNbJObJPbIBbNmbJLbNobIAbwUbwUbwUbwUbwUbHibHjbIGbIGbWPbWLbWLbWLbWLbIGbIGbBQbNtbNubMbbMbbBTbNvbMdbBWbIPbNwbNxbNybNzbNAbNBbNCbKvbNDbNEbHrbNFbNGbNHbJbbNIbNJbNKbNLaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEPbGnbGnbGnbGnbGnbGnbNMbGnbNNbGnbGnbGnbGnbGnbEPbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQaaaaafaaaaaabASbNRbNSbNTbASaaaaaaaaabGDbNUbNVbJkbGDbMCbKYaaabKZbNWbNXbNYbNZbHVbOabObbOcbOdbGFbOebOfbOgbOhbOibOibOibOibOibOibOibOibOkbOlbOmbOnbOobOpbOqbKfbKgbLwbKfbKhbKgbKfbOvbOwbOxbOvbOvbOxbOvbOvbOwbOvbLEbLFbLCbLDbLBbODbOEbkfbLzbLAaQqbLybLNbwUbOKbHjbIGbWQbcubaWbXTbWRbaTbaSbWQbBTbOSbOTbDsbBTbBTbOUbMdbOVbJbbJbbHrbHrbHrbHrbHvbHrbOWbKvbOXbHrbOYbJabyVbJbbOZbPabPbbJbaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbPcbPcbPcbPcbPcbPcbPdbGnbPebPcbNNbGnbGnbGnbGnbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNObESbNPbESbNQaaaaafaaaaaabASbNRbNSbNTbASaaaaaaaaabGDbNUbNVbJkbGDbMCbKYaaabKZbNWbNXbNYbNZbHVbOabObbOcbOdbGFbOebOfbOgbOhbOibOibOibOibOibOibOibOibOkbOlbOmbOnbOobOpbOqbKfbKgbLwbKfbKhbKgbKfbOvbOwbOxbOvbOvbOxbOvbOvbOwbOvbLEbLFbLCbLDbLBbODbOEbkfbLzbLAavSbLybLNbwUbOKbHjbIGbWQckSbSjbXTbWRbYSbSjbWQbBTbOSbOTbDsbBTbBTbOUbMdbOVbJbbJbbHrbHrbHrbHrbHvbHrbOWbKvbOXbHrbOYbJabyVbJbbOZbPabPbbJbaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbPcbPcbPcbPcbPcbPcbPdbGnbPebPcbNNbGnbGnbGnbGnbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaafaaaaaaaaabGDbPfbPgbPhbGDbMCbPiaaabPjbJpbPkbPlbPmbHVbHVbPnbPobPpbPqbPrbPsbPtbPubPubPubPubPubPubPubPubPwbPxbPybPybPzbPAbPBbPCbPDbPEbPFbPGbPGbPEbPGbPGbPFbPGbPGbPGbPGbPGbPGbPFbPHbwSbyubyvbAdbAebPNbPObPPbAfbAgbAhbBrbwVbwUbHibHjbIGbONbOMbOLbIIbIIbOPbOObOQbBTbBTbQdbBTbBTbQebQfbMdbojbQgaafbQhbQibQjbQkbQlbQkbQmbQnbQobHrbQpbHwbQqbJbbQrbQsbQsbQtaagaagaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQubGlbGlbGlbGlbGlbGlbGlbQvbGobGnbGnbGnbGnbQwbGobEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafbGDbGDbGDbGDbGDbQxbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbGFbQDbQEbQFbQGbQGbQHbQIbQHbRIbRHbQGbQGbQGbQGbQGbQLbQGbQGbQMbQNbQObQGbQGbQGbQPbQGbGKbGKbGKbGKbGKbGKbGKbGKbGKbHjbwSbBEbBtbBDbBFbQUbOEbQVbCLbCMbBHbBIbBsbwUbHibRbbPVbORbPXbPWbPZbPYbQbbQabRcbQcbRlbRmbojbRnbojbQfbMdbojbRoaafbQhbRpbRpbRqbRrbRsbRtbRubRvbHrbRwbHwbAEbJbbJbbJbbJbbJbaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbKJbKJbKJbKJbKJbKJbRxbGnbKIbKJbRybGnbGnbGnbGnbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabRzbRAbMCbGDbGDbGDbGDbGDbGFbGFbGFbGFbGFbGFbGFbGFbRBbRDbRCbQJbRGbRFbREbREbOjbRJbRKbRLbRMbRNbRObRPbRQbRRbRSbRTbRUbRVbRWbRXbRYbRZaafaaaaaaaaaaaaaaaaaabGKbSabHjbwSbwTbwTbwSbwTbSbbScbsjbwUbwUbwUbwUbwUbwUbHibSdbIGbIFbIFbIDbIIbKkbIJbIIbIIbIHbSlbSmbSnbojbSobQfbMdbSpbSqaafbQhbRpbSrbQkbSsbQkbStbSubSvbHrbRwbHwbSwbSxbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEPbGnbGnbGnbGnbGnbGnbNMbGnbRybGnbGnbGnbGnbGnbEPbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbSybSzbSAbSBbSBbSCbSDbSEbSFbSGbSHbSIbSJbSIbSKbSFbSLbSMbSNbSObSPbSQbSRbSRbSSbSTbRKbSUbRMbRNbRObRPbSVbSWbSXbSYbSZbTabSZbTbbTcbTdaafbTebTebTebTebTeaaabGKbTfbTgbPEbPGbPGbPEbThbQXbLTbTkbThbPGbPGbPGbPGbPGbTlbTmbIGbKlbKnbKmbLZbLYbNsbNrbIGbIGbrhbTubrhbrhbrhbTvbTwbTxbrhbHrbHrbHrbHrbHrbTybHrbHrbHrbHrbHrbRwbHwbTzbSxbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTAaaaaafaafbTBbTBbTBbTBbTBbTBbTBbTBbTCbTDbSFbTEbSGbSGbSIbTFbSKbSFbTGbTHbTIbTJbTKbTLbTMbTNbTObTPbRKbTQbTRbTSbTRbTTbTUbSWbTVbTWbTXbTYbTZbUabUbbUcbUdbUebUfbUgbUhbTeaaabGKbUibUjbUkbUlbUmbUnbUobSfbSgbUrbUobUobUsbUtbUobUobUubHjbIGbIGbIGbIGbIGbIGbTtbIGbIGbUwbUxbUybUzbUAbrhbTubUvbUCbrhbUDbUEbUFbUGbUHbRwbUIbAEbUJbAEbAEbRwbHwbUKbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEPbPebPcbPcbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabULbUMbUNbUObUObUObUPbUQbURbUSbUTbUUbUVbTBbUWbTDbSFbUXbSGbSHbSGbSIbUYbSFbUZbVabSNbSObVbbVcbSZbSZbVdbVebVfbVgbSRbSRbVhbVibSZbVjbTVbTWbVkbVlbVlbVmbVnbVoaafbVpbVqbUhbVrbTeaafbGKbVsbVtbGKaaaaafaaabVubVvbVwbVxbVuaafaafaaaaafbGKbVybVzbPGbPGbPGbPGbPGbPGbPEbPGbPGbPGbPGbPFbVAbPGbVBbTibTjbVEbVFbVGbVHbUBbVHbVIbVJbVHbVHbVHbVHbVHbVKbVLbVMbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVPbVPbVPbVPbVQbVRbVSbVTbVTbVUbTBbVVbVWbVXbVYbVZbWabSGbSGbWbbSFbWcbSMbSNbQGbQGbWdbWebWfbWgbWhbWibWjbSZbSZbWkbWlbWmbWnbWobWpbWqbWrbWsbWtbWubWvbWwbUebWxbUhbUhbTeaafbGKbPybPybGKaaaaafaaabWybWzbWAbWBbWyaafaafaaaaafbGKbWCbWDbWEbWFbLtbWGbWGbWHbWIbWJbWKbUobUobUsbUtbUobUobQZbQYbWNbRhbRhbRkbSebRibRjbRhbRfawKavUavUavTbRfbWSbAEbWTbWUbWVbWWbWXbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXbbXcbXcbXdbEPbEPbGnbGnbXebGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbXfbXgbXhbXibXhbXjbXkbXlbXmbXmbXnbTBbXobJkbSFbXpbSGbXqbSGbSGbSGbXrbUZbXsbSNbXtbQGbXubRKbXvbXwbXxbRKbXybXzbSZbWkbWlbXAbRKbXBbXCbXDbXEbXFbXGbXFbXHaafbTebTebTebTebTeaafbGKbGKbXIbGKaafaafaafbXJbXKbXLbXMbXJaafaaaaaaaafbGKbGKbGKbGKbGKbXNbGKbGKbXObXPbXQbGKbGKaaaaaaaaaaaabXRbXSbTrbXUbHkbTsbTnbRabTpbTqbSiazGbSkdQfbIEbShbHkbyVbXVbXWbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbXYbXZbYabHzbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbXfbYbbYcbYdbYebVSbYfbVSbYgbVSbYhbYibYjbYkbSFbYlbSGbXqbSGbSGbYmbSFbYnbYobSNbYpbYqbSZbYrbYsbYtbYtbRKbYubWmbYvbYwbYxbYybYzbYAbYBbYCbYDbTXbYEbYFbYGbUdbUebYHbYIbYIbTeaafaafbPybYJbPyaaaaafaaabYKbYLbYMbYNbYKaafaaaaaaaafaaaaaaaaabGKbYObPybYPbGKaaaaafaaaaaaaafaaaaaaaaaaaabYQbYRcrncrmdPAcrRdPDdPCbTqdPPdPRcirbIEbIEbIEdQRbHkbYUbYUbYVbYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbYXbEMbEMbENbEObEObEPbEPbEPbEPbEQaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVPbVPbVPbVPbVQbVRbVSbVTbVTbVUbTBbVVbVWbVXbVYbVZbWabSGbSGbWbbSFbWcbSMbSNbQGbQGbWdbWebWfbWgbWhbWibWjbSZbSZbWkbWlbWmbWnbWobWpbWqbWrbWsbWtbWubWvbWwbUebWxbUhbUhbTeaafbGKbPybPybGKaaaaafaaabWybWzbWAbWBbWyaafaafaaaaafbGKbWCbWDbWEbWFbLtbWGbWGbWHbWIbWJbWKbUobUobUsbUtbUobUobQZbQYbWNbRhbRhbRkbSebRibRjbRhbRfbRebRdbRdbrGbRfbWSbAEbWTbWUbWVbWWbWXbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXbbXcbXcbXdbEPbEPbGnbGnbXebGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaafaafbXfbXgbXhbXibXhbXjbXkbXlbXmbXmbXnbTBbXobJkbSFbXpbSGbXqbSGbSGbSGbXrbUZbXsbSNbXtbQGbXubRKbXvbXwbXxbRKbXybXzbSZbWkbWlbXAbRKbXBbXCbXDbXEbXFbXGbXFbXHaafbTebTebTebTebTeaafbGKbGKbXIbGKaafaafaafbXJbXKbXLbXMbXJaafaaaaaaaafbGKbGKbGKbGKbGKbXNbGKbGKbXObXPbXQbGKbGKaaaaaaaaaaaabXRbXSbTrbXUbHkbTsbTnbRabTpbTqbSibRgbSkdQfbIEbShbHkbyVbXVbXWbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbXYbXZbYabHzbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbXfbYbbYcbYdbYebVSbYfbVSbYgbVSbYhbYibYjbYkbSFbYlbSGbXqbSGbSGbYmbSFbYnbYobSNbYpbYqbSZbYrbYsbYtbYtbRKbYubWmbYvbYwbYxbYybYzbYAbYBbYCbYDbTXbYEbYFbYGbUdbUebYHbYIbYIbTeaafaafbPybYJbPyaaaaafaaabYKbYLbYMbYNbYKaafaaaaaaaafaaaaaaaaabGKbYObPybYPbGKaaaaafaaaaaaaafaaaaaaaaaaaabYQbYRcrncrmdPAcrRdPDdPCbTqdPPdPRdPQbIEbIEbIEdQRbHkbYUbYUbYVbYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbYXbEMbEMbENbEObEObEPbEPbEPbEPbEQaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbXfbYYbYZbZabYZbZbbZcbZdbZebZfbZgbTBbMCbZhbSFbZibSGbZjbZkbZlbZmbSFbZnbXsbSNbZobZpbTcbZqbTcbZrbZsbZtbTcbZubZvbZwbZxbZybZzbZAbZBbZCbSZbZDbZEbZFbVoaafbVpbZGbZHbZIbTeaafaaaaaaaaaaaaaaaaaaaaabZJbVubZKbZLbZJaafaafaafaafaafaafaaabGKbZMbZNbZObGKaaaaafaaaaaaaafaaaaaaaaaaaabZPbZQcjWcjVcjBcjecmrcjZcjYcjYcpTcnFcnqdPHbIEdQQbHkbYUbZTbZUbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTbVPbVPbVPbVPbVPbTBbTBbTBbTBbTBbTBbTBbMCbJkbSFbSFbSFbSFbSFbSFbSFbSFbZWbXsbSNbZXbZYbZZcaacabcaccadcaecafcagcahbWkbWlcaicajcakcalcambSZbZDcancaocapbWwbUecaqbYIbYIbTeaafaaaaaaaaaaafaafaafaaabVucarcascatbVubVubVubVubVubVubVuaafbGKbGKbGKbGKbGKaaaaafaaaaaaaafaaaaaaaaaaaacaucavdPIcaxdPYdPXdPJdPWbTqbTqdQadPZbIEbIEbIEdQTbHkbYUcaycazcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDbJkcaFbKTbKTbKTcaGcpUcaGcaGbKTcaHbKTdPFcaJdPEcaJcaJcaKcaJcaJcaLbGDcaMbXsbSNcaNcaOcaPbQGbQGbQGbQGbQGbQGbQGcaQbWkbWlbTVcaRcaScaTcaUbSZbZDbZEcaVbVoaafbTebTebTebTebTeaafaaabVubVubVubVubVubVubVucaWcaXcaYcaZcbacbbcbccbdcbebVuaafaafaafaafaafaafaafcbfaafaafaafaafaafaafaafcbgbXRdPGcbidPTdPSdPSdPWbTqdPPdPVcisbIEbIEbIEdQSbHkbYUcbjcbkcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciucbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcbCbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhciwbIEdQVdQWcVNbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbGDccfcbrcbxcbxcbxcbxccgcbxccgcqzckcdQxcqwcrycsmcrkcricbxccpbJkcbzbGDdPLbXsbSNcitcitcrucitcitcifcitcifcitbQGccwccxbWlbXAcbEccybXzcbFcczbZDbZEccAbVoaafbVpccBccCccDbTeaafaaabVuccEccFccGcaZbVuccHcaZccIccJcaZccKccLccMccNccObVuaaaaaaaaaaafaaaaaaaaabXRbXRbXRbXRbXRbXRbXRbXRbXRccPdPMccRbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkaafccSccTccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTcbxccUccgccgccgccgccVccgccgcyVccXdQCcyWdQAcgqcdccyXcdecdecdecdfbGDcwIdQOcwJcitcixcjfcjOcjUckScjOclbcwKbQGcdqcdrbWlbXAcbEcakbXzcdscdtcducdvcdwcapbWwbUecdxcbLcbLbTeaafcdycdzcdAcdBcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNbVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQcdRcdScdTcdUcdVcdWdQPcdYcdZceaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPalQalPalPalPampalPalPalPalQalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafcedceecefcegcehceicejcekcelcrDcdbcdbcvudQAcgqcdbcvFcvEcvGcdeceqdQbcesbXsbSNcitcjccjccjccjccjQcjccjccjcbQGcodcmQbWlbXAceycezbSZceAceBbZDceCceDbVoaafbTebTebTebTebTeaafaaabVuceEceFceGceHceGceIceJceKceLceGceMceNceGceIceObVuaafaafaafaafaafaafaafbXRcePceQcePceRceSbZQceTcdVceUdQNceUbXRbXRaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaceXceeceYceZcfccfdciocgdckVcgAcffclIcgzcrhcgqcdbcdbcfhcdbcgxbYpcgpcfkcgrcfmchCchAchBchAchAchnchAchAchAchgcgBchDcfscftcfubTVcaRcfvcfwcfxcfycfzbYGbUdbUecfAcfBcfBbTeaafaaabVucfCbXKcfDbVucfEcfFceNcfGcfHcfIcfJccNcfKcfLcfMbVuaaaaaaaaaaafaaaaaaaaabXRcePcePcePcfNcfOcdTcfPcfQcfRcgocfTcfUbXRaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDbJkcaFbKTbKTbKTcaGcpUcaGcaGbKTcaHbKTdPFcaJdPEcaJcaJcaKcaJcaJcaLbGDcaMbXsbSNcaNcaOcaPbQGbQGbQGbQGbQGbQGbQGcaQbWkbWlbTVcaRcaScaTcaUbSZbZDbZEcaVbVoaafbTebTebTebTebTeaafaaabVubVubVubVubVubVubVucaWcaXcaYcaZcbacbbcbccbdcbebVuaafaafaafaafaafaafaafcbfaafaafaafaafaafaafaafcbgbXRdPGcbidPTdPSdPSdPWbTqdPPdPVdPUbIEbIEbIEdQSbHkbYUcbjcbkcblbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabETcbncbocbpbJkcbqbJkcbrbJkcbtbJkcbscbxbGDbGDcbucbvcbvcbwbGDdPNcbwcbxcbxcbybJkcbzbGDbZWbXsbSNcbAcbBbSZcbCbQGaaaaaaaaaaaabQNcbDbWkbWlbXAcbEcakbXzcbFcbGcbHcbIcbJbYGbUdbUecbKcbLcbMbTeaafaaabVucbNcbOcbPcbQbVucbRcbScaXcbTcaZbXKcbUbXKcbVbXKbVuaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaabXRcbWdPOcbYbHkdQidQdcrCdQUdQedQhdQgbIEdQVdQWdQXbHkcbZccaccbcccccdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbGDccfcbrcbxcbxcbxcbxccgcbxccgcqzckcdQxcqwcrycsmcrkcricbxccpbJkcbzbGDdPLbXsbSNcitcitcrucitcitcitcitcitcitbQGccwccxbWlbXAcbEccybXzcbFcczbZDbZEccAbVoaafbVpccBccCccDbTeaafaaabVuccEccFccGcaZbVuccHcaZccIccJcaZccKccLccMccNccObVuaaaaaaaaaaafaaaaaaaaabXRbXRbXRbXRbXRbXRbXRbXRbXRccPdPMccRbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkbHkaafccSccTccSaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanmanmanmanmacTcbxccUccgccgccgccgccVccgccgcyVccXdQCcyWdQAcgqcdccyXcdecdecdecdfbGDcwIdQOcwJcitaQqcjccjccifcircircircisbQGcdqcdrbWlbXAcbEcakbXzcdscdtcducdvcdwcapbWwbUecdxcbLcbLbTeaafcdycdzcdAcdBcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNbVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQcdRcdScdTcdUcdVcdWdQPcdYcdZceaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcebceccebaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalQalPalPalQalPalPalPampalPalPalPalQalQaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafcedceecefcegcehceicejcekcelcrDcdbcdbcvudQAcgqcdbcvFcvEcvGcdeceqdQbcesbXsbSNcitcbmcjccjcbLxcieciecieciebQGcodcmQbWlbXAceycezbSZceAceBbZDceCceDbVoaafbTebTebTebTebTeaafaaabVuceEceFceGceHceGceIceJceKceLceGceMceNceGceIceObVuaafaafaafaafaafaafaafbXRcePceQcePceRceSbZQceTcdVceUdQNceUbXRbXRaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafaaaceWaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaafaafaaaaafaafaaaaaaaafaafaafaaaalQaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaceXceeceYceZcfccfdciocgdckVcgAcffclIcgzcrhcgqcdbcdbcfhcdbcgxbYpcgpcfkcgrcfmchCchAchBchAchnchAchAchAchAchgcgBchDcfscftcfubTVcaRcfvcfwcfxcfycfzbYGbUdbUecfAcfBcfBbTeaafaaabVucfCbXKcfDbVucfEcfFceNcfGcfHcfIcfJccNcfKcfLcfMbVuaaaaaaaaaaafaaaaaaaaabXRcePcePcePcfNcfOcdTcfPcfQcfRcgocfTcfUbXRaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacfVaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaafcfZaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaceXcdXccrccQccZcslcgmcggcgfcgecgccgbcfScflcfjcgkcglchucgncgjcfecfbceVcfacetcgicghcrgcfqcfrcfpcfpcfpcfpcfocexcgCcercgEcgCcgFcgGcgHcgIcgJcgKcgLbVoaafbVpcgMcgNcgObTeaafaafbVucgPbXKcfDbVucgQbXKbXMcgRcgScgTceJcgUcgTcgUceJbVuaaaaaaaaaaafaaaaaaaaabXRcdVcdVcdVcdVcgVbZQcgWcgXcgYcclchachbbXRaaaaaaaaaaaaaaachcchcchcchdaafaafaafaafcfVaafaafaafaafaafampchcchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafceXchfckachhchichjchkchlchmciWchochpchqchrchochochsckPciSchvcgychxbLjchycgDcitcbmcjQcjcciecjccjccjcbYSbQGcjgbSZchEchFbTcchGbZrchHchIbRXchJchKcapbWwbUechLcfBcfBbTeaafaaabVucgPbXKcfDbVuchMbXKbXMbXKchNcgTbXKbXMcgTbXMchObVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQchPchQcdTchRchSchTcgvbZQchVbXRaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaachXchYccgchZciacibciccidccgciycdbcfhccXcigcihcdbciicijcikcilcgucinclPcipcgtcitbRgbSjbRdbRebLxbRdbrGbETbQGcivbSZchEcizbSZbSZbSZbTbbZzcizbZEcaVbVoaafbTebTebTebTebTeaafaaabVucgPbXKcfDbVuciAciBciCciDciEciFciGciHciFciHciGbVuaafaafaafaafaafaafaafbXRcePcePcePciIceSbZQciJciKciLcgsbZQciNbXRbXRbXRbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGDciQccgccgciRckTciTciUciVckYcdbcfhcihciXciYciZcjacjbckZchvcimbYpbSNbYpciqcitcitclacitcitcitcitcifcitbQGclVcjhcjicjjcjkcjlcjkcjjcjmcjjcjnchFcjoaafaafaafaafaafaafaafaaacjpcjqcjrcjsbZJbVucjtcjucjvbVubVucjwbVubVubVucjwbZJaaaaaaaaaaaaaaaaaaaaabXRcePcePcePchPcjxcdTcjycjzcjAchUcjCcjCcjDcjEcjFbXRaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaacfWchecfYaaacfWchecfYaaacfWchecfYaafaafaafaafaaaaaaaaaaaaaaaaaaaafaafaafceXchfckachhchichjchkchlchmciWchochpchqchrchochochsckPciSchvcgychxbLjchycgDcitbiCcjQcjcbpPbezbezbezbezbQGcjgbSZchEchFbTcchGbZrchHchIbRXchJchKcapbWwbUechLcfBcfBbTeaafaaabVucgPbXKcfDbVuchMbXKbXMbXKchNcgTbXKbXMcgTbXMchObVuaaaaaaaaaaafaaaaaaaaabXRcdOcdPcdQchPchQcdTchRchSchTcgvbZQchVbXRaaaaaaaaaaaaaaachcaaaaafaaaaafaaaaaaaaachWaaaaafaafaaaaaaaaaaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaalPaafcfWchecfYaaacfWchecfYaafcfWchecfYaafaaaaaaaafaafaaaaaaaaaaaaaaaaafaaaaaachXchYccgchZciacibciccidccgciycdbcfhccXcigcihcdbciicijcikcilcgucinclPcipcgtcitaQqcjQcjcaGwawKawKawKazGbQGcivbSZchEcizbSZbSZbSZbTbbZzcizbZEcaVbVoaafbTebTebTebTebTeaafaaabVucgPbXKcfDbVuciAciBciCciDciEciFciGciHciFciHciGbVuaafaafaafaafaafaafaafbXRcePcePcePciIceSbZQciJciKciLcgsbZQciNbXRbXRbXRbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaaaaaaaaaaaaaaaaafaaaaafaaaaafaafaaaaaabGDciQccgccgciRckTciTciUciVckYcdbcfhcihciXciYciZcjacjbckZchvcimbYpbSNbYpciqcitcitclacitcitcitcitcitcitbQGclVcjhcjicjjcjkcjlcjkcjjcjmcjjcjnchFcjoaafaafaafaafaafaafaafaaacjpcjqcjrcjsbZJbVucjtcjucjvbVubVucjwbVubVubVucjwbZJaaaaaaaaaaaaaaaaaaaaabXRcePcePcePchPcjxcdTcjycjzcjAchUcjCcjCcjDcjEcjFbXRaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaaacfWchecfYaafcfWchecfYaaacfWchecfYaafaaaaaaaaaaaaaafaafcjMcjNcjNcjNcjNbGDbGDciQcdeckbckccjPckOckOckOckNcdbcfhcihcjRcjSciZcjTcjbckQcdechzchwcsDchtcgZccuckLckMckdckeccuaaaaaaaaabQGckfckgckhckickjckkcklckmbSZcknckockpckqaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafbVuckrckscktbVuaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdVcdVcdVcdVckubZQciJckvckwcgsbZQbZQckxbZQckybXRaaaaaachcaafckzckzckzckzckzaaaciPaaackzckzckzckzckzaafchcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafckAaafaafaafckAaafaaaaafckAaafaaaaaaaaaaaaaaackBckCckDckEckFckGckHckIckJckKcdecpKcmTcmTcmpcmocjdcmqcmwckRcihdPzciXciZcjacjbcmxcdeckUckUcsOckWckXccucrwcmycmzcmAccuaaaaaaaaaacTclccldcleclfclgclhclgclfclgcliclgclicljaafaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaclkaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcdOcdPcdQcllchQcdTclmbZSclnciMcloclpclqclrclsbXRaaaaaachcaaaaafaaaaafaafaafaaaciPaaaaafaaaaafaaaaafaaachcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwclxclyclzclAclBclCclDclEclFbJkciQcbxcdecdecdecdecbxclUcdecmlcrvclIclIclIclIclJcjbcdbcmmclNclOcsEclQclRccuclSclTclGclMccuaaaaaaaaaaaaaafclWaafclXaafclWaafclXaafclYaafclYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaaaaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaabXRcePceQcePcmaceSbZQbZRbZScmbcmJbZQcmccdVcdVcdVbXRaaaaaachcaaaciOciOciOciOciOaafciPaafciOciOciOciOciOaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdaaaaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaaaaafaafcmeaafaaaaafcmeaafaaaaafcmeaafaaaaaaaaaaaaaaackBckCcmfcmgcmhcmicjNcmjbJkbSAcmkcmkcmkcmkcmkcmkcewcdecepcmncemcemcemcemcemceocdlcdpcmscmscnKcmucmvcdjcddccvcdicdgccuaaaaaaaaaaaabTecmBbVpcmBbTecmBbVpcmBbTecmCbVpcmDbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXRcePcePcePcllcmEcmFcmGcmHcmIcmJbZQcmJbZQcmKbZQbYQaafaafchcaafcjGcjHcjHcjHcjHcjIciPcjJcjKcjKcjKcjKcjLaafchcaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNbGDcbyccpcmNcmOcbtbJkbJkcmPbJkcmRcmSceucmUcmVcmVcmVcmVcmWcmRckUcmXclNcmYcmZcnackUccuccuccuccuccuaaaaaaaaaaaabTecnbcnccndbTecnecnfcngbTecnhcnicnjbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRcnkcnlcnlcnmcnncnocnncnpcbXcnrcnscntcdTcnucnvaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQalPaafaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafcmMcjNcjNcjNcjNbGDcbyccpcmNcmOcbtbJkbJkciwbJkcmRcmSceucmUcmVcmVcmVcmVcmWcmRckUcmXclNcmYcmZcnackUccuccuccuccuccuaaaaaaaaaaaabTecnbcnccndbTecnecnfcngbTecnhcnicnjbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbgbXRcnkcnlcnlcnmcnncnocnncnpcbXcnrcnscntcdTcnucnvaaaaaachcaafckzckzckzckzckzaaaciPaafckzckzckzckzckzaaachcaaacmdaaaaaacmdaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaacmdaaaaaacmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfWcmLcfYaafcfWcmLcfYaaacfWcmLcfYaaaaaaaaaaafaaaaafaafaafaaacnwbPhbPgbGDcnxcnycnycnzbGDbGDbGDbGDbJkcmRcmRcnAcnBcnCcnDcnEcchcnGcnHcnIclNcnJcnKcmZcnLckUaafaafaafaafaafaaaaaaaaaaaabTecnMcnNcnMbTecnOcnPcnObTecnQcnRcnSbTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclkaaabXRcnTcnUcnVcnWcnXcnUcnYcnZcnXcnUcoabXRaaaaaachdaaaaafaaaaafaaaaafaaacobaaaaafaaaaafaafaafaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGvaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaaacfWcmLcfYaafaaaaaaaaaaaaaafaafaaaaaacocbJkbJkbMBbJkbJkbJkbJkbJkbJkbJkbJkcbtcmRcmRcoecofcogcohcohcoicojcmRcokclNclNcmYcmZcnackUckUckUckUckUckUckUckUaaaaaabTecnMcolcnMbTecnOcomcnObTecnSconcnSbTeaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacooaafbXRcopcoqcorcdVcoscotcoucdVcovcowcoxbXRaaaaaachcaaaciOciOciOciOciOaafcfVaafciOciOciOciOciOaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalPaafcfWcmLcfYaaacfWcmLcfYaafcfWcmLcfYaafaafaafaaaaafaafaaaaafaaabSybPfcoybGDcnxcnycnycnzcbxcjXcjXcjXcjXcjXcmRcozcoAcoBcskcoDcoEcoFcmRcokclNclNcoGcoHcoIcoJcoKcoLcoMcmtcoNcoOckUaaaaaabTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaabXRcoPcePcePcdVcoPcePcePcdVcoPcePcePbXRaafaafchcaafcjGcjHcjHcjHcjHcoQcoRcoQcjKcjKcjKcjKcjLaafchcaaacmdcmdcmdcmdaaacmdcmdcmdcmdcmdcmdcmdcmdcmdaaacmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10713,12 +10850,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGccGgcGhcGicGjcGdcGkcGkcGdcGlcGmcGdcGdcGdcGfcGbcGbcFYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGccGdcGncGncGncGncGdcGocGocGdcGncGncGpcGqcGdcGdcGfcGbcGrcGrcGrcGrcGraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcGdcGscGtcGucGvcGdcGncGncGwcGncGncGncGncGxcGycGdcGbcGrcGzcGAcGBcGrcGrcGrcGrcGrcGCcGDcGDcGEcGrcGraaaaaaaaaaaaaaaaaaaaaaaacGFcGFcGFcGFcGFcGFcGFcGFcGFcGFcGFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcGIcGncGJcGJcGJcGdcGncGncGdcGKcGLcGMcGNcGOcGPcGdcGbcGrcGQcGAcGAcGRcGScGTcGUcGVcGWcGUcGXcGYcGZcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcHacHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcGncGncGncGncGncGwcGncGncGdcGdcGdcGdcGdcGdcGdcHfcGbcGrcGrcGrcGrcGrcGScGXcGUcHgcHhcGUcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHlcHmcHmcHmcHmcHmcHncHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcGIcGncGJcGJcGJcGdcGncGncGdcGKcGLcGMcGNcGOcGPcGdcGbcGrcGQcGAcGAcGRcGScGTcGUcGVcjfcGUcGXcGYcGZcGrcGrcGrcGrcGrcGrcGrcGrcGrcGrcHacHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcGncGncGncGncGncGwcGncGncGdcGdcGdcGdcGdcGdcGdcHfcGbcGrcGrcGrcGrcGrcGScGXcGUcixcHhcGUcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHlcHmcHmcHmcHmcHmcHncHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcHpcGncHpcGncHpcGdcGncGncGncGncHqcGbcGbcGbcGbcGbcHrcHicHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGXcGXcHicHjcHjcHjcHjcHjcHjcHjcHjcHkcHacHscHtcHtcHtcHtcHtcHscHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGdcGdcGdcGdcGdcGdcGdcGncGncGncGncHqcGbcGbcGbcGbcGbcHrcHicHjcHjcHjcHicGXcGXcGXcGXcGXcGXcGXcGScGScGrcGrcGrcGrcGrcGrcGrcGrcGrcGFcHacHscHtcHtcHtcHtcHtcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcHucHvcHwcHucHxcGdcGncGncGncGncHqcGbcGbcGbcGbcGbcGbcGrcGrcGrcGrcGrcGXcGXcGUcHgcGWcGUcGXcHycHzcGrcHAcHBcHBcHCcGrcHDcHEcHFcGFcHbcHscHtcHtcHtcHtcHtcHGcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcHHcHHcHHcHHcHHcGwcGncGncGdcGdcGdcGdcGdcGdcGdcGfcGbcGrcGzcGAcGBcGrcGXcGXcGUcHgcHIcGUcGXcGScGScGrcHJcHJcHJcHJcGrcHKcHEcHLcGFcHbcHscHtcHtcHtcHtcHtcHMcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGccGdcHucHvcHwcHucHxcGdcGncGncGncGncHqcGbcGbcGbcGbcGbcGbcGrcGrcGrcGrcGrcGXcGXcGUcixcjfcGUcGXcHycHzcGrcHAcHBcHBcHCcGrcHDcHEcHFcGFcHbcHscHtcHtcHtcHtcHtcHGcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGGcGHcHHcHHcHHcHHcHHcGwcGncGncGdcGdcGdcGdcGdcGdcGdcGfcGbcGrcGzcGAcGBcGrcGXcGXcGUcixcHIcGUcGXcGScGScGrcHJcHJcHJcHJcGrcHKcHEcHLcGFcHbcHscHtcHtcHtcHtcHtcHMcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHecGHcHNcHHcHHcHHcHHcGdcGncGncGncGncGncGdcGncHOcHPcGdcGbcGrcGQcGAcGAcGRcGXcGXcGXcGXcGXcGXcGXcGXcGXcGrcHJcHQcHRcHRcGrcGrcHScGrcGFcHbcHscHtcHtcHtcHtcHTcHscGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacHocGdcGdcHUcHVcHVcHVcGdcGncHWcHXcHYcGncGwcGncHZcIacGdcGbcGrcGrcGrcGrcGrcGrcGrcIbcGrcGrcGrcGXcGXcGXcIccHJcIdcIdcHJcHJcHJcHJcIecGFcHbcHscHtcHtcHtcHtcHtcHMcGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcHocGdcHHcHHcHHcHHcGdcGncHXcIfcHXcGncGdcHpcGdcGdcHfcGbcGrcIgcIhcIicGrcIjcIkcIkcIkcIlcGrcGXcGXcGXcGXcHJcHJcHJcHJcImcHJcHJcHRcGFcHbcHscHtcHtcHtcHtcHtcIncGFcHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10741,58 +10878,58 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicNjcNjcLtcIPcLtcMCcMCcNkcNlcNlcNmcMCcNncNocMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNicLtcLtcLtcIPcLtcLtcLtcLtcLucLucMCcMCcMCcNzcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGcLtcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcRYcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcNOcNOcIPcIPcIPcIPcMQcNrcNPcNQcNRcNScMQaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcRZcRZcRZcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcOacIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOecOfcOfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQaaaaaaaaaaaaaaaaaaaaaaaacIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmcOncOocOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQaaaaaaaaaaaaaaaaaaaaaaaacIRcRAcQOcRDcQOcRBcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOvcOpcOpcOpcOpcOpcOpcOwcOxaaaaaaaaaaaaaaaaaacIRaaaaaaaaaaaaaaaaaaaaaaaacOycJIcREcJJcRPcLccNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBcRNcRFcRFcRFcRGcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOGcOHcOHcOHcOHcOHcOHcOecOIaaaaaaaaaaaaaaaaaacIRaaaaaaaaaaaaaaaaaaaaaaaacOycKacMscMdcMscRRcNdaaaaaaaaaaaaaaaaaaaaaaaaaaacOBcRQcOLcOMcONcOMcRUcRScOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOQcOecOecOecOecOecOecOecOecOIaaaaaaaaaaaaaaaaaaaaacIRaaaaaaaaaaaaaaaaaaaaaaaacOycORcQTcRVcQTcRXcNdaaaaaaaaaaaaaaaaaaaaaaaaaaacOVcOWcOXcOYcOYcOYcOZcPacOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycJIcJJcRycJJcRqcNdcNdcNdaaaaaaaaaaaaaaaaaaaaacOVcPdcOXcOYcOYcRicOZcRpcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPicOycPkcMscPlcJJcPmcJJcPncMscPkcNdaaaaaaaaaaaaaaaaaaaaacPocPpcPqcPpcPrcPpcPqcPpcPsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPicPtcPucPvcPtcPucPucPucPwcPucPucPxcPycPhcPicPicOycPkcLvcPlcJJcJJcJJcPncLvcPkcNdcNdcNdcNdcNdcNdaaaaaacOVcQjcPAcPAcOYcPAcPAcQjcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPtcPBcPCcPDcPEcPFcPFcPFcPFcPFcPFcPGcPHcPhcPicPicOycPkcLvcPIcJJcJJcJJcRzcLvcPkcNdcPKcPKcPKcPKcNdaaaaaacOVcPLcOYcOYcOYcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPwcPCcPNcPCcPOcPCcPCcPCcPCcPCcPCcPCcPOcPicPicPicOycPkcQTcPlcJJcJJcJJcPncQTcPkcNdcQUcPbcPbcPbcPbcPbcPccOVcPLcOYcPMcPScPLcOYcPMcPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPUcPVcPCcPWcPEcPXcPXcPXcPXcPXcPXcPYcPZcPhcPicQXcOycQWcQccQVcJJcJJcJJcQIcQHcQKcNdcQhcQhcQhcQhcQlcQocQlcQkcOYcOYcPMcQRcPLcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPicPUcPucQmcPUcPucPucPucPwcPucPucQncPycPhcPicQXcRdcPicRdcRecJJcJJcJJcRccQlcQocQlcQhcQhcQhcQhcRacPbcPccOVcQZcOYcPMcQGcPLcOYcQYcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPhcPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicQXcOycRhcQccQVcJJcJJcJJcQIcQHcQKcNdcQwcQwcQwcQwcNdaaaaaacRfcPLcOYcPMcRgcPLcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQNcQzcQzcPkcQMcPlcJJcJJcJJcPncQOcPkcNdcNdcQocQocNdcNdaaaaaacQPcPLcOYcPMcQRcPLcOYcPMcPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQpcQecQDcQEcQEcQFcQAcQycQCcQBcQxcOOcPTcOOcOOcOOcQvcQzcPkcQQcPlcJJcJJcJJcQIcQHcQKcNdcQJcQScQScQJcNdaaaaaacQLcPLcOYcPMcQGcPLcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQpcQecQecQecQecQecQscOrcOrcOrcyvcOOcOOcOOcQqcOOcOOcQzcPkcQrcKacKbcKbcKLcQtcQlcQocQlcQhcQhcQhcQhcQucPbcPccOVcPLcOYcPMcRbcPLcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQdcQecQfcQdcQgcQicQacOrcOrcOrcOrcOOcOOcQbcOOcPRcPTcRjcRjcRjcRkcRlcRmcRncRocRjcRjcRjcQhcQhcQhcQhcQlcQocQlcQkcOYcOYcOYcOYcOYcOYcQjcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcOScOrcyvcyvcyvcyvcyvcOrcOrcOrcOrcOOcOOcOOcOTcOOcOOcRjcRrcRscRtcRucRvcRwcRxcRscRrcRjcPzcOUcOUcOUcOUcPbcPccOVcPfcPecRCcPJcPAcOYcPPcPQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcOzcOrcOrcOrcOrcOrcOrcOrcOrcOrcOrcOKcOOcOOcOOcOOcOOcRjcRscRHcRIcRucRvcRwcRJcRKcRscRjcPKcPKcPKcPKcNdaaaaaacOVcRLcRMcPAcOVcOPcROcOPcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcOzcOrcOrcOrcOrcOrcOAcOrcOrcOAcOrcODcOCcOCcOCcOEcOCcRjcRTcRscRTcRucRvcRwcRTcRscRTcRjcNdcNdcNdcNdcNdaaaaaacOVcPAcPAcOJcOVcOtcRWcOscOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcNTcOrcOrcOrcOrcyvcywcyvcyvcywcyvcCScNMcNMcNMcNMcNMcRjcSccRscRscRucRvcRwcRscRscSdcRjaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcOucSfcOtcRWcOscOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQzcyucyhcyhcygcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcRjcSjcSkcSkcRucRvcRwcSlcSlcSmcRjaaaaaaaaaaaaaaaaaaaaacSncSocSpcSpcSpcSpcSpcSocSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcyfcyfcyfcyfcQzcRvcRvcRvcRvcRvcRvcRvcRvcRvcRvcRvcRjcRjcRmcRjcRjcRvcRjcRjcRmcRjcRjcRjcRjcRjcRjcRjaaaaaaaaacSncSscSscSscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcyfcyfcyfcyfcQzcRvcRjcRjcRjcRjcStcRjcRjcRjcRvcRvcRvcRvcRvcRvcRjcRvcRjcRvcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQzcQzcQzcQzcQzcQzcRvcRjcSucSvcSvcSvcSvcSwcRjcRjcRjcRjcRjcRjcRjcRjcSxcRjcRjcRjcRjcRjcRjcRjcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSucSvcSvcSvcSvcSwcRjcSycSzcSAcSzcSBcSCcSCcSCcSCcSCcSBcSCcSBcSCcSDcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSvcSvcSvcSvcSFcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSHcSIcRjcRvcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSJcSKcSKcSvcSvcSLcSCcSCcSMcSNcSMcSCcSCcSCcSCcSCcSMcSNcSMcSOcSCcRjcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRvcRjcRjcRjcRjcRjcRjcRjcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSPcSCcRjcRjcRjcRjcRjcRjcRjcRvcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRvcRjcRjcSQcSQcSQcSQcSQcRjcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSScSRcRjcSTcSTcSTcSTcSTcRjcRvcRvcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRjcRjcSUcSUcSUcSUcSUcRjcSVcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcSVcRjcSUcSUcSUcSUcSUcRjcRjcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTicTacTacTbcTccSWcSWcSWcSWcSWcTjcTkcTjcSWcSWcSWcSWcSXcTdcTbcTecTecTlcTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcTmcTncTmcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcTocTpcTqcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRscTrcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcSWcTscSWcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecTrcRscRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcTtcRjcTucTucTucTucTucRjcSVcSWcSWcSWcSWcSWcSWcTscSWcSWcSWcSWcSWcSXcSVcRjcTucTucTucTucTucRjcTtcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSjcTvcRscRjcTwcTwcTwcTwcTwcRjcSRcSRcSRcSRcSRcSRcTxcTycTxcSRcSRcSRcSRcSScSRcRjcTzcTzcTzcTzcTzcRjcRscTAcSmcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRscRjcRjcRjcRjcRjcRjcRjcTBcTCcTCcTCcTCcTCcTDcTEcTBcTCcTCcTCcTCcTFcTBcRjcRjcRjcRjcRjcRjcRjcRscRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRscRscRvcRvcRvcRvcRvcRjcTBcTBcTHcTBcTHcTBcTBcTIcTJcTBcTHcTBcTHcTKcTBcRjcRvcRvcRvcRvcRvcRscRscRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTMcTLcTLcTLcTNcTNcTNcTLcTLcTNcTNcTNcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRjcRjcRjcRjcRvcRmcTBcTBcTBcTOcTOcTOcTBcTBcTBcTOcTOcTOcTOcTOcTBcRmcRvcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTPcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTQcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcTRcTRcTRcTScTTcTUcTVcTBcTWcTXcTYcTZcUacUbcUccRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcUdcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTPcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcUecUdcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcUfcUgcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcUhcUicTLcTLcTLcUecTLcUjcTLcTLcTLcTLcTLcTLcTG
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcNDcNDcNEcNFcIPcNGcNGcNGcLtcLtcLtcNHcNIcNJcNKcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRcIRcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcNOcNOcIPcIPcIPcIPcMQcNrcNPcNQcNRcNScMQdTAdTUdTUdTAdTJdTTcJJdTBcIRcIRcIRcOacIRcIRcwZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdTAdTVdTVdTAdTLdTEcJJdTBcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOecOfcOfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdTAdTUdTUdTAdTOdTEcJJdTBcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmcOncOocOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdTAdTAdTAdTAdTDdTEcJJdTBcIRdTCcORdTCdTFdTCcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOvcOpcOpcOpcOpcOpcOpcOwcOxaaaaaaaaaaaaaaaaaacIRdTGdTAdTGdTAdTJdTEcJJdTHdTIcJIcJJdTKcJJcMvcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBciuciuciuciuciuciuciuciucOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOGcOHcOHcOHcOHcOHcOHcOecOIaaaaaaaaaaaaaaaaaacIRdTGdTAdTGdTAdTLdTEcJJdTHdTIcKacJJcLxdTMcMXcNdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadRXcOLdSbcOMcONdSacOMdRZdRYcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOQcOecOecOecOecOecOecOecOecOIaaaaaaaaaaaaaaaaaaaaacIRdTGdTAdTGdTAdTOdTNcMEdTQcOydTCdTPdTRdTSdTCcNdaaaaaaaaaaaaaaaaaaaaaaaaaaacOBcOVcOWcOXcOYcOYcOYcOYcOZdSgcOVcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOycOydSicJJcJJdShcLccNdcNdcNdaaaaaaaaaaaaaaaaaaaaacOVcOVcPdcOXcOYdRDdRCcOYcOZcPacOVcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPidRHdSjdSjdSjdSjdSjcOycPkcMscPlcJJcJJcPmcLccMscPkcNdaaaaaaaaaaaaaaaaaacOBcPodREcPqdRFcPrcPpcPpcPrdRFcPqdRGcPscOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPtcPucPvcPtcPucPucPucPwcPucPucPxcPycPhcPicPidSQdSjdSjdSjdSjdSjcOycPkcLvcPlcJJcJJcJJcLccLvcPkcNdcNdcNdcNdcNdcNdaaaaaacOVdRIcRbcRbcOYdRKdRJcOYcRbcRbdRIcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPtcPBcPCcPDcPEcPFcPFcPFcPFcPFcPFcPGcPHcPhcPicPidRHdSjdSjdSjdSjdSjcOycPkcLvcPlcJJcJJcJJcPncLvcPkcPKcPKcPKcPKcPKcNdaaaaaacOVcPLcOYcOYcOYcOYcOYcOYcOYcOYdRLcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPwcPCcPNcPCcPOcPCcPCcPCcPCcPCcPCcPCcPOcPicPicPicOycOycOycOycQcdRPcOycPkcLvcPlcJJcJJcJJcUBdROcKwcQUcQUcQUcQUcQVdRNcQUcQVcOVcPLcOYcOYcPScPScPScPScOYcOYcPMciuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPUcPVcPCcPWcPEcPXcPXcPXcPXcPXcPXcPYcPZcPhcPicPicOydRrdRsdRudRtdRtcOydRRdRSdRQcJJcJJcJJcJJcRYcQhcQhcQhcQhcQhcRRcRycRzcRycQkcOYcOYcOYdRldRjdRkdRlcOYcOYcPMciuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPUcPucQmcPUcPucPucPucPwcPucPucQncPycPhcPicPicOydRvdRwdRxdRtdRtdRTdRUdRWcJJcJJcJJcJJcJJcRYcQhcQhcQhcQhcQhcRRcQXcQUcQVcOVdRncOYcOYcRbcRbcRbcRbcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacPgcPicPicPicPicPicPicPicPicPicPicPicPicPicPjcPhcPicPicOydRydRzdRAdRtdRtdRTdRUdRWcJJcJJcJJcJJdSedSfcQUdSdcQhcQhcQwdSccNdaaaaaaciudRncOYcOYcOYcOYcOYcOYcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzcQzdRpdRpdRpcRDcRDcQzcVBcLfcUJcJJcJJcJJcPncQQcPkdRocQhcRRdRMdRBcNdaaaaaaciudRncOYcOYcPScPScPScPScOYcOYcPMciuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOydRhdRidRidRidRfdRgcRUcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcRDcQzcPkcLvcPlcJJcJJcJJcUBcRZcQUcUDcQhcQhcQScUHcNdaaaaaaciudRncOYcOYdRldRjdRkdRlcOYcOYcPMciuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcQFcQFcQFcQFcVZcSecVYcWacUycRDcSidRdcWbcUycRDcRDcRDcRDcRDcRDcRDcRDcQzcPkcLvcPIcJJcJJcJJcJJcRYcQhcQhcQhcQhcQhcRRcQXcQUcQVcOVdRecOYcOYcRbcRbcRbcRbcOYcOYcPMcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcRpcQFcQFcQFcShcSecVNcVOcUycRDcSicVMcVCcUycRDcRDcVxcVxcVxcVxcVxcVxcQzcQZcQYcRccRacRdcRdcRdcRfcRdcRdcQhcQhcQhcRRcRycRzcRycQkcOYcOYcOYcOYcOYcOYcOYcOYcOYcVWcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcVpcQFcQFcQFcShcRUcRDcRDcRDcRDcRDcRDcRDcRDcRDcRFcVqcVqcVqcVqcVqcVqcQzcQzcQzcQzcQzcQWcQWcQzcQzcQzcQzcQXcQUcQUcQUcQUcQUcQVcOVciuciucRCciucVsciucROciucROciucOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcQFcUVcQFcUYcShcSecUZcUXcUycRDcSicURcUQcUycRDcRFcUPcREcREcREcREcREcQzcQNcQNcQNcQPcOEcOEcQRcQMcQMcQzcPKcPKcPKcPKcNdaaaaaacOVcRLcRMcPAcVocOVcVncRWcVncRWcVncOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycSbcQFcQFcSacQFcShcSecSgcSrcUycRDcSicUAcUzcUycRDcRFcREcREcREcREcREcREcQzcQLcQKcQJcQGcOEcOEcOEcQMcQMcQzcNdcNdcNdcNdcNdaaacOBcOVcUGcPAcPAcUNcOVcUOcRWcRWcRWcUKcOVcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcQFcQFcQFcQFcRScRUcRDcRDcRDcRDcRDcRDcRDcRDcRDcRFcREcREcRGcRPcRNcRQcQzcQqcQpcQrcOEcOUcQgcOEcOEcQucQzaaaaaaaaaaaaaaaaaaaaacOVcRLcRMcPAcRXcSfcRVcRWcRVcRWcRVcOVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcRqcQFcRpcQBcRicRhcRgcRgcRgcRjcRjcRjcRkcRlcQocRncRocRjcRjcRjcQzcQzcQzcQjcQicQicOUcQfcQecQgcPTcQdcQzaaaaaaaaaaaaaaaaaaaaacSncSocSpcSpcSpcSpcSpcRecRecRecSocSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcQFcQFcQBcQDcQAcQEcQEcQEcQEcRjcRrcRscRtcRucRvcRwcRxcRscRrcRjcQzcQzcQzcQzcQzcQzcPccQbcQacPbcPTcQdcQzaaaaaaaaaaaaaaaaaaaaaaaacSncSscSscSscSscSscSscSscSscSqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQOcQFcQBcQDcQAcQAcQEcQEcQEcQEcRjcRscRHcRIcRucRvcRwcRJcRKcRscRjcPPcPJcPecPRcPQcQzcOEcPccPbcOEcOEcOUcOTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQFcQBcQDcQAcQAcQAcQEcQEcQEcQEcRjcRTcRscRTcRucRvcRwcRTcRscRTcRjcOScOEcOEcOEcOEcQIcOEcOEcOEcOEcOEcOKcOJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycQBcQDcQAcQAcQAcQAcQAcQAcQAcQAcRjcSccRscRscRucRvcRwcRscRscSdcRjcQycQvcQHcQtcQscQzcOEcOEcOEcOEcOEcOAcOzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOycOycOycOycOycOycOycOycOycOycOycOycRjcSjcSkcSkcRucRvcRwcSlcSlcSmcRjcOPcQlcOucOtcPzcQzcPfcOOcOrcNTcNMcOscQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRvcRvcRvcRvcRvcRvcRvcRvcRvcRvcRjcRjcRmcRjcRjcRvcRjcRjcRmcRjcRjcRjcRjcRjcRjcRjcQzcQzcQzcQzcQzcQzcQzcQzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcRjcRjcRjcStcRjcRjcRjcRvcRvcRvcRvcRvcRvcRjcRvcRjcRvcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSucSvcSvcSvcSvcSwcRjcRjcRjcRjcRjcRjcRjcRjcSxcRjcRjcRjcRjcRjcRjcRjcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSucSvcSvcSvcSvcSwcRjcSycjOcjUcjOcSBcSCcSCcSCcSCcSCcSBcSCcSBcSCcSDcRjcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSvcSvcSvcSvcSFcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSHcSIcRjcRvcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRvcRjcSEcSJcSKcSKcSvcSvcSLcSCcSCcSMcSNcSMcSCcSCcSCcSCcSCcSMcSNcSMcSOcSCcRjcRvcRvcRvcRvcRvcRvcRvcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRvcRjcRjcRjcRjcRjcRjcRjcRjcSCcSGcSGcSGcSGcSGcSCcSCcSCcSGcSGcSGcSGcSPcSCcRjcRjcRjcRjcRjcRjcRjcRvcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRvcRjcRjcSQcSQcSQcSQcSQcRjcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSRcSScSRcRjcSTcSTcSTcSTcSTcRjcRvcRvcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRjcRjcSUcSUcSUcSUcSUcRjcSVcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcSVcRjcSUcSUcSUcSUcSUcRjcRjcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTicTacTacTbcTccSWcSWcSWcSWcSWcTjcTkcTjcSWcSWcSWcSWcSXcTdcTbcTecTecTlcTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcTmcTncTmcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTGcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcSYcSZcTacTgcTacTgcTacTbcTccSWcSWcSWcSWcSWcTocTpcTqcSWcSWcSWcSWcSXcTdcTbcTecThcTecThcTecSZcTfcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTMcTLcTLcTLcTNcTNcTNcTLcTLcTNcTNcTNcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcRscTrcTacTacTacTacTacTbcTccSWcSWcSWcSWcSWcSWcTscSWcSWcSWcSWcSWcSXcTdcTbcTecTecTecTecTecTrcRscRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTPcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTQcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSccRjcTtcRjcTucTucTucTucTucRjcSVcSWcSWcSWcSWcSWcSWcTscSWcSWcSWcSWcSWcSXcSVcRjcTucTucTucTucTucRjcTtcRjcSdcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcUdcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcSjcTvcRscRjcTwcTwcTwcTwcTwcRjcSRcSRcSRcSRcSRcSRcTxcTycTxcSRcSRcSRcSRcSScSRcRjcTzcTzcTzcTzcTzcRjcRscTAcSmcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTPcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRscRjcRjcRjcRjcRjcRjcRjcTBcTCcTCcTCcTCcTCcTDcTEcTBcTCcTCcTCcTCcTFcTBcRjcRjcRjcRjcRjcRjcRjcRscRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcUecUdcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRscRscRvcRvcRvcRvcRvcRjcTBcTBcTHcTBcTHcTBcTBcTIcTJcTBcTHcTBcTHcTKcTBcRjcRvcRvcRvcRvcRvcRscRscRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRjcRjcRjcRjcRvcRmcTBcTBcTBcTOcTOcTOcTBcTBcTBcTOcTOcTOcTOcTOcTBcRmcRvcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLclbcUgcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcTRcTRcTRcTScTTcTUcTVcTBcTWcTXcTYcTZcUacUbcUccRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcUhcmPcTLcTLcTLcUecTLcUjcTLcTLcTLcTLcTLcTLcTG
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjcRjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTG
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcUdcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTPcTLcTLcTG
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcUecUdcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcTLcUdcTLcTLcTG
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacTGcTLcTLcTLcTLcTLcTLcTLcUkcTLcUkcTLcUkcTLcUlcTLcTLcTLcTLcTLcTG
@@ -10827,23 +10964,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUscUscUscUscUscUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUtcUucUvcUwcUxcUZcUscVpcVocVncUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvcUvcUvcUCcUAcUEcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUFcUFcUvcUvcUvcUzcUscUycUIcSrcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcSicSicUscUscULcUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUMcUMcUvcSecSbcSacUscShcULcSgcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUScUTcUUaaacUScUTcUUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcSecUYcUWcUscUVcURcUXcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVacVbcVccVccVccVdcVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvcUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUScUTcVecUTcVfcVgcVhcVicVjcVgcVkcUTcVecUTcUUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscVlcVmcUHcUJcUvcUNcUKcUPcUOcUQcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVbcVccVccVdcVaaaacVbcVgcVucVvcVwcVgcVdaaacVacVbcVccVccVdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUBcVycVzcUvcUvcUvcVAcUGcUDcVDcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcVEcVFcVgcVacVbcVgcVGcVHcVIcVHcVJcVgcVdcVacVgcVKcVLcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscVscVycVzcUvcUvcUvcVrcVqcVrcVqcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcVPcVQcVgcVccVRcVScVJcVHcVTcVHcVJcVScVRcVccVgcVUcVVcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUBcVMcVXcUvcVCcUNcVBcVDcVxcVtcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcWccWdcVgcVccWecVScVJcVHcVJcVHcVJcVScWecVccVgcWfcWccVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUscUscUscUscUscUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcWgcWhcVgcVgcVgcVgcVgcVgcWicVgcVgcVgcVgcVgcVgcWjcWkcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccVRcWccWlcWlcWlcWlcWlcWlcVgcWlcVgcWlcWlcWlcWlcWlcWlcWccVRcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccWmcWncWocWpcWqcWrcVgcWicVgcWicVgcWicVgcWscWtcWucWvcWncWmcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccWecWncWwcWwcWwcWwcVgcWwcWwcWwcWwcWwcVgcWwcWwcWxcWwcWncWecVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVbcVgcWycWzcWAcWBcWCcVgcWDcWwcWwcWwcWEcVgcWFcWGcWHcWIcWycVgcVdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUscUscUscUscUscUscUscUscUscUscUscUsdTbcUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUtcUucUvcUwdSVdSUcUsdSYdSXdSWcUsdSZdSwdTacUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvcUvdSzcUCdSxcUEdSydSwdSwdSvcUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUFcUFcUvcUvcUvdSucUsdStcUIdSscUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvdSmcUscULcULdSncUsdSqdSrdSodSpcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUMcUMcUvcUvcUvcUxcUscULcULcULdSkcULcULcULdSlcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUScUTcUUaaacUScUTcUUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvdSTcUsdSRdTXdSScUsdSPdTWdSOdSpcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVacVbcVccVccVccVdcVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvdSucUscUscUscUscUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUScUTcVecUTcVfcVgcVhcVicVjcVgcVkcUTcVecUTcUUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSBdSFdSGdSDcUvdSHdSJdSIdSHcVzdSMdSNdSKdSLcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVbcVccVccVdcVaaaacVbcVgcVucVvcVwcVgcVdaaacVacVbcVccVccVdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSBdSAdSEdSDcUvdSCdSCdSCdSCcVXcVAcVDcVAcVDcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcVEcVFcVgcVacVbcVgcVGcVHcVIcVHcVJcVgcVdcVacVgcVKcVLcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSBdTfdTedSDcUvdSCdSCdSCdSCdSCdSCdSCdSCdSCcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcVPcVQcVgcVccVRcVScVJcVHcVTcVHcVJcVScVRcVccVgcVUcVVcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvdSBdTgcUWdSDcUvdSCdSCdSCdSCdSCdSCdThdTjdTicUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcWccWdcVgcVccWecVScVJcVHcVJcVHcVJcVScWecVccVgcWfcWccVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUvcUvcUvcUvcUvcUvdSCdSCdSCdSCdSCdSCdSCdSCdSCcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcWgcWhcVgcVgcVgcVgcVgcVgcWicVgcVgcVgcVgcVgcVgcWjcWkcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscVlcVmcVmdTccVmcVmcVmdTccVmcVmcVmdTccVmcVmdTdcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccVRcWccWlcWlcWlcWlcWlcWlcVgcWlcVgcWlcWlcWlcWlcWlcWlcWccVRcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUsdTkdTldTlcVzdTodTpdTqcVzdTmdTmdTncVzdTsdTrcVycUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccWmcWncWocWpcWqcWrcVgcWicVgcWicVgcWicVgcWscWtcWucWvcWncWmcVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUsdTldTtdTkcVXdTxdTwdTpcVXdTvdTudTmcVXdTycVydTzcUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVccWecWncWwcWwcWwcWwcVgcWwcWwcWwcWwcWwcVgcWwcWwcWxcWwcWncWecVcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUscUscUscUscUscUscUscUscUscUscUscUscUscUscUscUscUsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVbcVgcWycWzcWAcWBcWCcVgcWDcWwcWwcWwcWEcVgcWFcWGcWHcWIcWycVgcVdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWJcVgcWKcWKcVgcVgcVgcVgcWLcWwcWwcWwcWMcVgcVgcVgcVgcWKcWKcVgcWNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacWJcWOcWOcWNaaaaaacVgcWPcWwcWwcWwcWQcVgaaaaaacWJcWOcWOcWNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacVgcWRcWwcWwcWwcWQcVgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11187,14 +11324,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgGdgJdgJdgNdgJdgJdgUdgGdgVdgJdgWdgGdgJdgJdgGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaafaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgGdgXdgXdgYdgZdhadgGdgGdgJdgJdgVdgGdgGdhbdgGaaacYVcYVcYVcYVcYVcYVcYVcYVcYVcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafacTaaaaaaaafaagaagaagdhcaafaafaafaaaacTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgGdgJdgJdgNdgJdgJdgGdgGdgVdgJdgJdgJdgJdgJdgGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafacTdhdaafaafdhdaagaagaagaagaagdhdaafaafdhdacTaafaafaafaaaaaaaaaaaaaaaaaaaaadhedheacTacTacTdgGdhfdgJdhgdgJdgJdhhdhidgJdgJdgJdgJdgJdhjdgGcYVcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafacTdhdaafaafdhdaagaagaagaagaagdhdaafaafdhdacTaafaafaafaaaaaaaaaaaaaaaaaaaaadhedheacTacTacTdgGdhfdgJdhgdgJdgJdhhdhidgJdgJdgJdgJdgJcyfdgGcYVcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafdhkdhkdhkdhkaagdhcaagaagaagdhkdhkdhkdhkaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaadheacTacTdgGdhldhmdhndhldhldgGdgGdgGdgGdgGdgGdgGdgGdgGdhocYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdhkdhkdhkdhkdhpdhkdhqdhkdhrdhsdhtdhkdhkdhkdhkdhkdhkaafaafaaaaaaaaaaaaaaadheaaaaaaaaaacTacTacTdgGdgJdgJdgNdgJdgJdhudhvdhwdhxdhydhzdhAdhxdhBdhCcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhkdhkdhkdhDdhEdhFdhGdhDdhsdhHdhHdhIdhHdhDdhFdhDdhkdhkdhkaafaaaaaaaaaaaaaaaaaaaaadheaaaaaaaaaaaadgGdhfdgJdhgdgJdgJdhudhJdhKdhLdhKdhKdhKdhKdhMdhNcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhkdhkdhkdhDdhEdhFdhGdhDdhsdhHdhHdhIdhHdhDdhFdhDdhkdhkdhkaafaaaaaaaaaaaaaaaaaaaaadheaaaaaaaaaaaadgGdhfdgJdhgdgJdgJdhucwKdhKdhLdhKdhKdhKdhKdhMdhNcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhkdhkdhOdhPdhQdhRdhQdhDdhSdhrdhHdhHdhIdhTdhDdhDdhDdhUdhVdhkacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgGdhldhmdhWdhldhldhXdhKdhKdhLdhKdhKdhKdhLdhKdhYdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhkdhkdiadiadiadiadibdhHdicdhkdhIdiddhkdhHdiedhFdiediedhHdhkacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgGdgJdgVdifdgJdgJdigdhKdhKdhKdhKdihdhKdhKdiidijcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadhkdhkdhHdiediediedikdhEdhDdildiedhHdiediedhDdhEdhEdiediedhkacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdgGdgJdgJdimdindiodipdiqdiqdirdisdhLdhKdhKdhKdhYcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdhkdhkdiedhEdhFdhDditdhDdhFdhDdhHdhHdiedhDdhDdhDdhDdhFdhDdhkacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdgGdgJdgJdifdgJdgJdiudhxdhxdhKdivdiwdhKdiwdixdiyaagdizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdhkdhkdiedhEdhFdhDditdhDdhFdhDdhHdhHdiedhDdhDdhDdhDdhFdhDdhkacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdgGdgJdgJdifdgJdgJdiudhxdhxdhKdivdiwdhKdiwdixcygaagdizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdhkdhkdhDdhFdhDdiAdiBdiCdiDdhHdiEdhHdhHdiFdiGdiHdiedhEdhFdhkacTaafaaaaaaaaaaaaaaadheaaaaaaaafaafaafdgGdgGdgGdgNdgGdgJdhudiIdiJdiKdiLdiMdhvdhvdhxdhNdhZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafdhkdhkdiedhDdiAdiNdiOdiPdhHdhHdhHdhHdhHdiQdiQdiRdiHdhDdhEdhkacTaafaafaaaacTdgGdgGdgGdgGdgGdgGdgGdgGdgGdgGdgGdiSdgGdgGdgGdiTdiTdiUdiTdiTdiTdhodhodhocYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdhkdhkdhkdiediediVdiWdhEdhHdhHdhHdhHdhHdhHdhHdhHdiXdiYdiediZdhkacTacTaafaafacTdgGdjadjadjadjbdjcdjddjedgGdjadjadjfdjadjadgGacTaafaagaagaaaacTdjgaaganmcYVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -11548,7 +11685,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndH
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHVdHVdHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHndHndCidCidCidCidCidCidCidCidJjdJkdJldCidCidCidBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadIPdJmdIPdIPdIPdIPdIPdIPdIVdJndCidCidCidCidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdqTdqTdBvdBvdCidJfdCidCidCidIedHIdHJdCidCidCidCidCidCidCidGpdGpdBvdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndCidCidJodJodJodJodJodJodJpdJqdJrdJodJodJodJodJodCidCidCidBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdqTdBvdBvdCidCidCidCidCidBvdBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadIPdIPdIPdIPdJsdJtdJudIPdITdJvdIPdJbdIPdIPdIPdJwdJxdJydIPdCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadqTdqTdqTdBvdBvdCidCidCidCidCidCidHEdHOdHGdCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHVdHVdHVdHndHndHndHndHndHndHndHVdHVdHVdHVdHVdHndHndBvdCidCidCidJodJzdJAdJBdJCdJDdJEdJFdJGdJHdJIdJJdJKdJLdHJdCidCidBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdqTdBvdBvdCidCidCidCidCidCidCidCidCidCidBvdBvdBvdBvdBvdqTdqTdqTdqTdsadsadsadIPdJMdJNdJOdJPdJNdJNdIPdIXdIYdJQdIVdIPdJRdJSdJTdJTdJTdJedCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadBvdBvdBvdCidCidCidCidCidCidCidCidJUdJVdJWdJXdJVdJVdCidCidCidCidCidCidBvdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHVdHVdHVdHndHndqTdBvdCidCidCidJodJYdJAdJZdKadJAdKbdJAdJAdKcdKddKedJKdKfdKgdCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdDQdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdqTdqTdqTdIPdKhdJNdKidKjdKkdKldIPdIPdIPdIPdIVdIPdJRdKmdKmdKmdKndJidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidCidCidCidCidCidCidJUdKodKodKodKpdJVdCidKqdCidCidCidEudDQdBvdqTdqTdsadsadsadsadsadsadsadsadsadsadqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHVdHVdHVdHndHndqTdBvdCidCidCidJodJYdJAdJZdKadJAdKbdJAdJAdKcdKddKedJKdKfdKgdCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdDQdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdqTdqTdqTdqTdIPcyhdJNdKicyudKkdKldIPdIPdIPdIPdIVdIPdJRdKmdKmdKmdKndJidCidCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidCidCidCidCidCidCidJUdKodKodKodKpdJVdCidKqdCidCidCidEudDQdBvdqTdqTdsadsadsadsadsadsadsadsadsadsadqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHVdHVdHVdHndHndHndHndHndHndHndHndHndHndHndHndHndqTdBvdCidCidCidJodKrdJAdJAdKsdJAdKbdJAdJAdJAdKtdKudKvdJLdHGdCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadsadsadqTdqTdBvdBvdCidJfdCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidCidBvdBvdBvdBvdqTdqTdqTdIPdKwdJNdKxdJNdKydJNdKzdKndKAdKBdKCdIPdJRdKmdKDdKmdKEdJndCidCidCidCidCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidCidCidCidKFdKFdKGdKHdJUdKIdKJdKKdKLdJVdJVdJVdJVdCidCidCidCidBvdBvdqTdqTdsadsadsadsadsadsadsadsadsadqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndHndHndHndHndsadsadBvdBvdCidCidJodKMdJAdKNdKOdKPdKQdKRdJAdJodJodJodJodJodJodIedHJdCidCidCidCidCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdBvdCidCidCidCidCidCidCidCidCidCidCidIedHJdCidCidCidCidCidCidCidCidCidBvdBvdqTdqTdIPdIPdIPdIPdIPdIPdIPdKSdKTdKUdKSdKTdIPdIPdIPdIPdIPdKVdIPdIPdKWdKXdCidCiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadCidCidKYdKHdKZdLadLbdLcdLddLedLfdLgdLhdLidLjdLkdHJdCidCidCidDPdBvdqTdqTdsadsadsadsadsadsadsadqTdqTdqTdsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadHndHndHndHndHndHndHndHndHndHndHndsadsadqTdBvdCidCidJodLldJAdLmdKadLndLodLpdJAdLqdLrdLsdLtdLudLvdIkdIldIcdIcdIcdIcdIcdIbdCidCidCidCidBvdBvdBvdqTdqTdqTdqTdqTdsadsadsadqTdqTdqTdqTdBvdBvdCidCidIhdIcdIcdIcdIcdIcdIcdIcdIcdIkdIldIcdIcdIcdIcdIbdCidCidCidCidCidBvdqTdqTdqTdqTdqTdIPdLwdLxdLydKmdKEdLzdKndKEdKzdLAdLBdLCdKndKEdKmdKmdLDdLEdJxdJydLFdLGdLGdLGdLGdLGdLGdLGdLHdLHdLHdLHdLHdLHdLHdKGdLIdLJdLKdLadLLdLMdLNdLOdLedLedLPdLQdLRdLSdLTdLUdCidCidCidDPdBvdqTdqTdsadsadsadsadsadsadqTdqTdqTdsadsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/nano/css/shared.css b/nano/css/shared.css
index 5d41a4f330..241ec579ab 100644
--- a/nano/css/shared.css
+++ b/nano/css/shared.css
@@ -23,7 +23,9 @@ hr {
padding: 0px 4px 4px 4px;
margin: 0 2px 2px 0;
cursor:default;
+ white-space: nowrap;
}
+
.hasIcon {
padding: 0px 4px 4px 0px;
}
@@ -138,6 +140,12 @@ h4 {
clear: both;
padding: 8px;
}
+
+.white {
+ color: white;
+ font-weight: bold;
+}
+
.good {
color: #4f7529;
font-weight: bold;
@@ -192,6 +200,8 @@ div.notice {
margin: 4px 0 0 0;
clear: both;
}
+
+
.itemLabel {
float: left;
width: 30%;
@@ -206,6 +216,13 @@ div.notice {
width: 20%;
color: #e9c183;
}
+.itemLabelWide {
+ float: left;
+ width: 45%;
+ color: #e9c183;
+}
+
+
.itemContentWide {
float: left;
width: 79%;
@@ -214,6 +231,11 @@ div.notice {
float: left;
width: 33%;
}
+.itemContentMedium {
+ float: left;
+ width: 55%;
+}
+
.statusDisplay {
background: #000000;
color: #ffffff;
@@ -221,6 +243,17 @@ div.notice {
padding: 4px;
margin: 3px 0;
}
+.statusDisplayRecords {
+ background: #000000;
+ color: #ffffff;
+ border: 1px solid #40628a;
+ padding: 4px;
+ margin: 3px 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+
.statusLabel {
width: 138px;
float: left;
@@ -307,7 +340,17 @@ div.notice {
float: left;
}
.fixedLeftWide {
- width: 150px;
+ width: 165px;
+ float: left;
+}
+
+.fixedLeftWider{
+ width: 220px;
+ float: left;
+}
+
+.fixedLeftWidest{
+ width: 250px;
float: left;
}
@@ -315,6 +358,24 @@ div.notice {
float: right;
}
+/* Used in PDA */
+
+
+.wholeScreen
+{
+ position: absolute
+ color: #517087;
+ font-size: 16px;
+ font-weight: bold;
+ text-align:center;
+}
+
+.pdalink
+{
+ float: left;
+ white-space:nowrap;
+}
+
/* DNA Modifier UI (dna_modifier.tmpl) */
.dnaBlock
@@ -363,3 +424,67 @@ div.notice {
margin: 200px 0;
text-align: center;
}
+
+/* Table stuffs for power monitor */
+table.pmon
+{
+border:2px solid RoyalBlue;
+}
+
+table.pmon td, table.pmon th
+{
+border-bottom:1px dotted black;
+padding:0px 5px 0px 5px;
+}
+
+
+
+/* Table Stuffs for manifest*/
+
+th.command
+{
+ background: #3333FF;
+ font-weight: bold;
+ color: #ffffff;
+}
+
+th.sec
+{
+ background: #8e0000;
+ font-weight: bold;
+ color: #ffffff;
+}
+th.med
+{
+ background: #006600;
+ font-weight: bold;
+ color: #ffffff;
+}
+th.eng
+{
+ background: #b27300;
+ font-weight: bold;
+ color: #ffffff;
+}
+th.sci
+{
+ background: #a65ba6;
+ font-weight: bold;
+ color: #ffffff;
+}
+th.civ
+{
+ background: #a32800;
+ font-weight: bold;
+ color: #ffffff;
+}
+th.misc
+{
+ background: #666666;
+ font-weight: bold;
+ color: #ffffff;
+}
+
+
+
+
diff --git a/nano/images/uiBackground-Syndicate.png b/nano/images/uiBackground-Syndicate.png
new file mode 100644
index 0000000000..3ca932cb83
Binary files /dev/null and b/nano/images/uiBackground-Syndicate.png differ
diff --git a/nano/images/uiBackground-Syndicate.xcf b/nano/images/uiBackground-Syndicate.xcf
new file mode 100644
index 0000000000..c86cea69d1
Binary files /dev/null and b/nano/images/uiBackground-Syndicate.xcf differ
diff --git a/nano/images/uiTitleFluff-Syndicate.png b/nano/images/uiTitleFluff-Syndicate.png
new file mode 100644
index 0000000000..b09f5ba6b2
Binary files /dev/null and b/nano/images/uiTitleFluff-Syndicate.png differ
diff --git a/nano/js/nano_base_helpers.js b/nano/js/nano_base_helpers.js
index ef34bd506a..338be42256 100644
--- a/nano/js/nano_base_helpers.js
+++ b/nano/js/nano_base_helpers.js
@@ -15,6 +15,20 @@ NanoBaseHelpers = function ()
var initHelpers = function ()
{
$.views.helpers({
+
+ syndicateMode: function() {
+ $('body').css("background-color","#8f1414");
+ $('body').css("background-image","url('uiBackground-Syndicate.png')");
+ $('body').css("background-position","50% 0");
+ $('body').css("background-repeat","repeat-x");
+
+ $('#uiTitleFluff').css("background-image","url('uiTitleFluff-Syndicate.png')");
+ $('#uiTitleFluff').css("background-position","50% 50%");
+ $('#uiTitleFluff').css("background-repeat", "no-repeat");
+
+ return '';
+ },
+
// Generate a Byond link
link: function( text, icon, parameters, status, elementClass, elementId) {
diff --git a/nano/templates/TemplatesGuide.txt b/nano/templates/TemplatesGuide.txt
index 3cef9b9128..3b042edd0b 100644
--- a/nano/templates/TemplatesGuide.txt
+++ b/nano/templates/TemplatesGuide.txt
@@ -7,7 +7,4 @@ to easily add conditionals (if statements), loops (for loops) and custom formatt
Templates are stored in the /nano/templates folder and the file extension is .tmpl.
-This guide is a work in progress. However the templating system is "JSRender", and documentation for it's
-markup syntax can be found here: http://www.jsviews.com/#jsrtags
-
-
+This guide is being replaced with a wiki entry, found here: http://baystation12.net/wiki/index.php?title=NanoUI
\ No newline at end of file
diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl
new file mode 100644
index 0000000000..a404357899
--- /dev/null
+++ b/nano/templates/pda.tmpl
@@ -0,0 +1,929 @@
+
+
+{^{if owner}}
+
+
+ Functions:
+
+
+
+ {^{:~link('Close', 'gear', {'choice' : "Close"}, null, 'fixedLeft')}}
+ {^{if idInserted}} {^{:~link('Update PDA Info', 'eject', {'choice' : "UpdateInfo"}, null, 'fixedLeftWide')}} {{/if}}
+ {^{if mode != 0}} {^{:~link('Return', 'arrowreturn-1-w', {'choice' : "Return"}, null, 'fixedLeft')}} {{/if}}
+
+
+
+
+
+ Station Time:
+
+
+ {^{:stationTime}}
+
+
+
+ {^{if mode == 0}}
+
+
+ Owner:
+
+
+ {^{:owner}}, {^{:ownjob}}
+
+
+
+
+
+ ID:
+
+
+ {^{:~link(idLink, 'eject', {'choice' : "Authenticate"}, idInserted ? null : 'disabled', idInserted ? 'fixedLeftWidest' : 'fixedLeft')}}
+
+
+
+
+
+ Cartridge:
+
+
+ {^{:~link(cartridge ? cartridge.name : 'no cartridge', 'eject', {'choice' : "Eject"}, cartridge ? null : 'disabled', cartridge ? null : 'fixedLeft')}}
+
+
+
+
Functions
+
+
+
+ General:
+
+
+ {^{:~link('Notekeeper', 'note', {'choice' : "1"},null, 'fixedLeftWide')}}
+ {^{:~link('Messenger', newMessage ? 'mail-closed' : 'mail-open', {'choice' : "2"},null, 'fixedLeftWide')}}
+ {^{:~link('Crew Manifest', 'contact', {'choice' : "41"},null, 'fixedLeftWide')}}
+
+
+
+ {^{if cartridge}}
+ {^{if cartridge.access.access_clown == 1}}
+
+
+ Clown:
+
+
+ {^{:~link('Honk Synthesizer', 'gear', {'choice' : "Honk"},null, 'fixedLeftWide')}}
+
+
+
+ {{/if}}
+ {^{if cartridge.access.access_engine == 1}}
+
+
+ Engineering:
+
+
+ {^{:~link('Power Monitor', 'alert', {'choice' : "43"},null, 'fixedLeftWide')}}
+
+
+
+ {{/if}}
+ {^{if cartridge.access.access_medical == 1}}
+
+
+ Medical:
+
+
+ {^{:~link('Medical Records', 'gear', {'choice' : "44"},null, 'fixedLeftWide')}}
+ {^{:~link(scanmode == 1 ? 'Disable Med Scanner' : 'Enable Med Scanner', 'gear', {'choice' : "Medical Scan"},null , 'fixedLeftWide')}}
+
+
+
+ {{/if}}
+ {^{if cartridge.access.access_security == 1}}
+
+
+ Security:
+
+
+ {^{:~link('Security Records', 'gear', {'choice' : "45"},null, 'fixedLeftWide')}}
+ {^{if cartridge.radio ==1}} {^{:~link('Security Bot Access', 'gear', {'choice' : "46"},null, 'fixedLeftWide')}} {{/if}}
+
+
+
+
+ {{/if}}
+ {^{if cartridge.access.access_quartermaster == 1}}
+
+
+ Quartermaster:
+
+
+ {^{:~link('Supply Records', 'gear', {'choice' : "47"},null, 'fixedLeftWide')}}
+ {^{if cartridge.radio == 3}} {^{:~link('Delivery Bot Control', 'gear', {'choice' : "48"},null, 'fixedLeftWide')}} {{/if}}
+
+
+
+
+ {{/if}}
+ {{/if}}
+
+
+
+ Utilities:
+
+
+ {^{if cartridge}}
+ {^{if cartridge.access.access_status_display == 1}} {^{:~link('Status Display', 'gear', {'choice' : "42"},null, 'fixedLeftWide')}}{{/if}}
+ {^{if cartridge.access.access_janitor==1}} {^{:~link('Custodial Locator', 'gear', {'choice' : "49"},null, 'fixedLeftWide')}} {{/if}}
+ {^{if cartridge.radio == 2}} {^{:~link('Signaler System', 'gear', {'choice' : "40"},null, 'fixedLeftWide')}} {{/if}}
+ {^{if cartridge.access.access_reagent_scanner==1}} {^{:~link(scanmode == 3 ? 'Disable Reagent Scanner' : 'Enable Reagent Scanner', 'gear', {'choice' : "Reagent Scan"},null, 'fixedLeftWider')}} {{/if}}
+ {^{if cartridge.access.access_engine==1}} {^{:~link(scanmode == 4 ? 'Disable Halogen Counter' : 'Enable Halogen Counter', 'gear', {'choice' : "Halogen Counter"}, null, 'fixedLeftWider')}} {{/if}}
+ {^{if cartridge.access.access_atmos==1}} {^{:~link(scanmode == 5 ? 'Disable Gas Scanner' : 'Enable Gas Scanner', 'gear', {'choice' : "Gas Scan"}, null, 'fixedLeftWide')}} {{/if}}
+ {^{if cartridge.access.access_remote_door==1}}{^{:~link('Toggle Door', 'gear', {'choice' : "Toggle Door"},null, 'fixedLeftWide')}} {{/if}}
+ {{/if}}
+ {^{:~link('Atmospheric Scan', 'gear', {'choice' : "3"},null, 'fixedLeftWide')}}
+ {^{:~link(fon==1 ? 'Disable Flashlight' : 'Enable Flashlight', 'lightbulb', {'choice' : "Light"}, null,'fixedLeftWide')}}
+
+
+ {^{if pai}}
+
+
+ PAI Utilities:
+
+
+ {^{:~link('Configuration', 'gear', {'choice' : "pai", 'option' : "1"},null, 'fixedLeft')}}
+ {^{:~link('Eject pAI', 'eject', {'choice' : "pai", 'option' : "2"},null, 'fixedLeft')}}
+
+
+ {{/if}}
+ {{/if}}
+ {^{if mode == 1}}
+
+
+
+
+ {^{:~link('Edit Notes', 'gear', {'choice' : "Edit"},null, 'fixedLeft')}}
+
+
+
+
+ {{else mode == 2}}
+ SpaceMessenger V4.0.1
+
+
+ Messenger Functions:
+
+
+
+ {^{:~link(silent==1 ? 'Ringer: Off' : 'Ringer: On', silent==1 ? 'volume-off' : 'volume-on', {'choice' : "Toggle Ringer"},null, 'fixedLeftWide')}}
+ {^{:~link(toff==1 ? 'Messenger: Off' : 'Messenger: On',toff==1 ? 'close':'check', {'choice' : "Toggle Messenger"},null, 'fixedLeftWide')}}
+ {^{:~link('Set Ringtone', 'comment', {'choice' : "Ringtone"}, null, 'fixedLeftWide')}}
+ {^{:~link('Delete all Conversations', 'trash', {'choice' : "Clear", 'option' : "All"},null, 'fixedLeftWider')}}
+
+
+ {^{if toff == 0}}
+
+ {^{if cartridge}}
+ {^{if cartridge.charges}}
+
+ {^{:cartridge.charges}}
+ {^{if cartridge.type == "/obj/item/weapon/cartridge/syndicate"}} detonation charges left. {{/if}}
+ {^{if cartridge.type == "/obj/item/weapon/cartridge/clown" || cartridge.type == "/obj/item/weapon/cartridge/mime"}} viral files left. {{/if}}
+
+
+ {{/if}}
+ {{/if}}
+
+ {^{if pda_count == 0}}No other PDAS located
+ {{else}}
+ Current Conversations
+ {^{for convopdas}}
+
+ {^{:~link(Name, 'circle-arrow-s', {'choice' : "Select Conversation", 'convo' : Reference } , null, fixedLeftWider)}}
+ {^{if ~root.cartridge}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/syndicate" && Detonate == 1}} {^{:~link('*Detonate*', 'radiation', {'choice' : "Detonate", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/clown"}} {^{:~link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/mime"}} {^{:~link('*Send Virus*', 'circle-arrow-s', {'choice' : "Send Silence", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {{/if}}
+
+ {{/for}}
+ Other PDAs
+ {^{for pdas}}
+
+ {^{:~link(Name, 'circle-arrow-s', {'choice' : "Message", 'target' : Reference}, null, fixedLeftWider)}}
+ {^{if ~root.cartridge}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/syndicate" && Detonate == 1}} {^{:~link('*Detonate*', 'radiation', {'choice' : "Detonate", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/clown"}} {^{:~link('*Send Virus*', 'star', {'choice' : "Send Honk", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {^{if ~root.cartridge.type == "/obj/item/weapon/cartridge/mime"}} {^{:~link('*Send Virus*', 'circle-arrow-s', {'choice' : "Send Silence", 'target' : Reference}, null, 'fixedLeft')}} {{/if}}
+ {{/if}}
+
+ {{/for}}
+ {{/if}}
+ {{/if}}
+
+ {{else mode == 21}}
+ SpaceMessenger V4.0.1
+
+
+ Messenger Functions:
+
+
+
+ {^{:~link('Delete Conversation', 'trash', {'choice' : "Clear", 'option' : "Convo"},null, 'fixedLeftWide')}}
+
+
+
+ Conversation with: {^{:convo_name}} ({^{:convo_job}})
+
+
+
+ {^{for messages}}
+ {^{if ~root.active_conversation == target}}
+ {^{if sent==0}}
+ Them: {^{:message}}
+ {{else}}
+ You: {^{:message}}
+ {{/if}}
+ {{/if}}
+ {{/for}}
+
+
+
+
+ {^{:~link('Reply', 'comment', {'choice' : "Message", 'target': active_conversation},null, 'fixedLeft')}}
+
+ {{else mode== 41}}
+
+
+ {^{if manifest.heads.length}}
+ | Command |
+ {^{for manifest["heads"]}}
+ {^{if rank == "Captain"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {^{if manifest.sec.length}}
+ | Security |
+ {^{for manifest["sec"]}}
+ {^{if rank == "Head of Security"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {^{if manifest.eng.length}}
+ | Engineering |
+ {^{for manifest["eng"]}}
+ {^{if rank == "Chief Engineer"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+
+ {{/for}}
+ {{/if}}
+ {^{if manifest.med.length}}
+ | Medical |
+ {^{for manifest["med"]}}
+ {^{if rank == "Chief Medical Officer"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {^{if manifest.sci.length}}
+ | Science |
+ {^{for manifest["sci"]}}
+ {^{if rank == "Research Director"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {^{if manifest.civ.length}}
+ | Civilian |
+ {^{for manifest["civ"]}}
+ {^{if rank == "Head of Personnel"}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{else}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/if}}
+ {{/for}}
+ {{/if}}
+ {^{if manifest.misc.length}}
+ | Misc |
+ {^{for manifest["misc"]}}
+ | {^{:name}} | {^{:rank}} | {^{:active}} |
+ {{/for}}
+ {{/if}}
+
+
+
+
+ {{else mode == 3}}
+
+ Atmospheric Scan
+
+
+ {^{if aircontents.reading == 1}}
+
+ Pressure:
+
+
+ {^{:~string('{1} kPa', aircontents.pressure < 80 || aircontents.pressure > 120 ? 'bad' : aircontents.pressure < 95 || aircontents.pressure > 110 ? 'average' : 'good' , aircontents.pressure)}}
+
+
+ Temperature:
+
+
+ {^{:~string('{1} °C', aircontents.temp < 5 || aircontents.temp > 35 ? 'bad' : aircontents.temp < 15 || aircontents.temp > 25 ? 'average' : 'good' , aircontents.temp)}}
+
+
+
+ Oxygen:
+
+
+ {^{:~string('{1}%', aircontents.oxygen < 17 ? 'bad' : aircontents.oxygen < 19 ? 'average' : 'good' , aircontents.oxygen)}}
+
+
+ Nitrogen:
+
+
+ {^{:~string('{1}%', aircontents.nitrogen > 82 ? 'bad' : aircontents.nitrogen > 80 ? 'average' : 'good' , aircontents.nitrogen)}}
+
+
+ Carbon Dioxide:
+
+
+ {^{:~string('{1}%', aircontents.carbon_dioxide > 5 ? 'bad' : 'good' , aircontents.carbon_dioxide)}}
+
+
+ Plasma:
+
+
+ {^{:~string('{1}%', aircontents.plasma > 0 ? 'bad' : 'good' , aircontents.plasma)}}
+
+
+ {^{if aircontents.other > 0}}
+
+ Unknown:
+
+
+ {^{:aircontents.other}}%
+
+ {{/if}}
+ {{else}}
+
+ Unable to get air reading
+
+ {{/if}}
+
+
+
+ {{else mode == 40}}
+ Remote Signaling System
+
+
+ Frequency:
+
+
+ {^{:records.signal_freq}}
+
+ {^{:~link('-1', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "-10"},null, null)}}
+ {^{:~link('-.2', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "-2"},null, null)}}
+
+ {^{:~link('+.2', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "2"},null, null)}}
+ {^{:~link('+1', null, {'cartmenu' : "1", 'choice' : "Signal Frequency", 'sfreq' : "10"},null, null)}}
+
+
+
+
+
+ Code:
+
+
+
+ {^{:records.signal_code}}
+
+ {^{:~link('-5', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "-5"},null, null)}}
+ {^{:~link('-1', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "-1"},null, null)}}
+ {^{:~link('+1', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "1"},null, null)}}
+ {^{:~link('+5', null, {'cartmenu' : "1", 'choice' : "Signal Code", 'scode' : "5"},null, null)}}
+
+
+
+ {^{:~link('Send Signal', 'radiation', {'cartmenu' : "1", 'choice' : "Send Signal"},null, null)}}
+
+
+ {{else mode == 42}}
+ Station Status Displays Interlink
+
+
+ Code:
+
+
+ {^{:~link('Clear', 'trash', {'cartmenu' : "1", 'choice' : "Status", 'statdisp' : "blank"},null, null)}}
+ {^{:~link('Shuttle ETA', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "shuttle"},null, null)}}
+ {^{:~link('Message', 'gear', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "message"},null, null)}}
+
+
+
+
+
+ Message line 1
+
+
+ {^{:~link(records.message1 + ' (set)', 'pencil', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "setmsg1"},null, null)}}
+
+
+
+
+ Message line 2
+
+
+ {^{:~link(records.message2 + ' (set)', 'pencil', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "setmsg2"},null, null)}}
+
+
+
+
+
+
+ ALERT!:
+
+
+ {^{:~link('None', 'alert', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'default' : "alert"},null, null)}}
+ {^{:~link('Alert', 'alert', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "alert"},null, null)}}
+ {^{:~link('Lockdown', 'caution', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "alert"},null, null)}}
+ {^{:~link('Biohazard', 'radiation', {'cartmenu' : "1", 'choice' : "Status",'statdisp' : "alert", 'alert' : "alert"},null, null)}}
+
+
+
+ {{else mode == 43}}
+
+ Station Powermonitors
+
+ Select A power monitor:
+
+ {^{for records.powermonitors}}
+
+ {^{:~link(Name, 'radiation', {'cartmenu' : "1", 'choice' : "Power Select",'target' : ref},null, null)}}
+
+ {{/for}}
+
+ {{else mode == 433}}
+ Powernet Status
+
+
+ Current Load:
+
+
+ {^{:records.powerload}} W
+
+
+
+
+ Total Power:
+
+
+ {^{:records.poweravail}} W
+
+
+
+
+
+ {^{for records.apcs}}
+ {^{if #index % 20 === 0}}
+ | Area | Eqp. | Lgt. | Env | Cell |
+ {{/if}}
+
+ | {^{:Name}} |
+ {^{:~string(' | ', Equipment==1 ? '#4f7529' : '#8f1414' )}}
+ {^{:~string(' | ', Lights==1 ? '#4f7529' : '#8f1414' )}}
+ {^{:~string(' | ', Environment==1 ? '#4f7529' : '#8f1414' )}}
+ {^{:~string('{1} | ', CellStatus==1 ? '#4f7529' : '#8f1414', CellStatus==-1 ? 'No Cell' : CellPct + '%' )}}
+
+ {{/for}}
+
+
+
+ {{else mode == 44}}
+ Medical Record List
+
+ Select A record
+
+
+ {^{for records.medical_records}}
+
+ {^{:~link(Name, 'gear', {'cartmenu' : "1", 'choice' : "Medical Records",'target' : ref},null, null)}}
+
+ {{/for}}
+
+
+
+ {{else mode == 441}}
+ Medical Record
+
+
+
+ {^{if records.general_exists == 1}}
+ Name: {^{:records.general.name}}
+ Sex: {^{:records.general.sex}}
+ Species: {^{:records.general.species}}
+ Age: {^{:records.general.age}}
+ Rank: {^{:records.general.rank}}
+ Fingerprint: {^{:records.general.fingerprint}}
+ Physical Status: {^{:records.general.p_stat}}
+ Mental Status: {^{:records.general.m_stat}}
+ {{else}}
+
+ General Record Lost!
+
+ {{/if}}
+ {^{if records.medical_exists == 1}}
+ Medical Data:
+ Blood Type: {^{:records.medical.b_type}}
+ Minor Disabilities: {^{:records.medical.mi_dis}}
+ Details: {^{:records.medical.mi_dis_d}}
+ Major Disabilities: {^{:records.medical.ma_dis}}
+ Details: {^{:records.medical.ma_dis_d}}
+ Allergies: {^{:records.medical.alg}}
+ Details: {^{:records.medical.alg_d}}
+ Current Disease: {^{:records.medical.cdi}}
+ Details: {^{:records.medical.alg_d}}
+ Important Notes: {^{:records.medical.notes}}
+ {{else}}
+
+ Medical Record Lost!
+
+ {{/if}}
+
+
+
+
+
+ {{else mode == 45}}
+ Security Record List
+
+ Select A record
+
+
+ {^{for records.security_records}}
+
+ {^{:~link(Name, 'gear', {'cartmenu' : "1", 'choice' : "Security Records",'target' : ref},null, null)}}
+
+ {{/for}}
+
+
+
+ {{else mode == 451}}
+ Security Record
+
+
+
+ {^{if records.general_exists == 1}}
+ Name: {^{:records.general.name}}
+ Sex: {^{:records.general.sex}}
+ Species: {^{:records.general.species}}
+ Age: {^{:records.general.age}}
+ Rank: {^{:records.general.rank}}
+ Fingerprint: {^{:records.general.fingerprint}}
+ Physical Status: {^{:records.general.p_stat}}
+ Mental Status: {^{:records.general.m_stat}}
+ {{else}}
+
+ General Record Lost!
+
+ {{/if}}
+ {^{if records.security_exists == 1}}
+ Security Data:
+ Criminal Status: {^{:records.security.criminal}}
+ Minor Crimes: {^{:records.security.mi_crim}}
+ Details: {^{:records.security.mi_crim_d}}
+ Major Crimes: {^{:records.security.ma_crim}}
+ Details: {^{:records.security.ma_crim_d}}
+ Important Notes: {^{:records.security.notes}}
+ {{else}}
+
+ Security Record Lost!
+
+ {{/if}}
+
+
+
+ {{else mode == 46}}
+ Security Bot Control
+ {^{if records.beepsky.active == null || records.beepsky.active == 0}}
+ {^{if records.beepsky.count == 0}}
+ No bots found.
+ {{else}}
+
+ Select A Bot.
+
+
+ {^{for records.beepsky.bots}}
+
+ {^{:~link(Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : ref},null, null)}} (Location: {^{:Location}})
+
+ {{/for}}
+ {{/if}}
+
+ {^{:~link('Scan for Bots','gear', {'radiomenu' : "1", 'op' : "scanbots"},null, null)}}
+
+ {{else}}
+ {^{:records.beepsky.active}}
+
+ {^{if records.beepsky.botstatus.mode == -1}}
+ Waiting for response...
+ {{else}}
+ Status:
+
+
+
+ Location:
+
+
+ {^{:records.beepsky.botstatus.loca}}
+
+
+
+
+ Mode:
+
+
+
+ {^{if records.beepsky.botstatus.mode ==0}} Ready
+ {{else records.beepsky.botstatus.mode == 1}}
+ Apprehending target
+ {{else records.beepsky.botstatus.mode ==2 || records.beepsky.botstatus.mode == 3}}
+ Arresting target
+ {{else records.beepsky.botstatus.mode ==4}}
+ Starting patrol
+ {{else records.beepsky.botstatus.mode ==5}}
+ On Patrol
+ {{else records.beepsky.botstatus.mode ==6}}
+ Responding to summons
+ {{/if}}
+
+
+
+
+ {^{:~link('Stop Patrol', 'gear', {'radiomenu' : "1", 'op' : "stop"},null, null)}}
+ {^{:~link('Start Patrol', 'gear', {'radiomenu' : "1", 'op' : "go"},null, null)}}
+ {^{:~link('Summon Bot', 'gear', {'radiomenu' : "1", 'op' : "summon"},null, null)}}
+
+ {{/if}}
+ {^{:~link('Return to Bot list', 'gear', {'radiomenu' : "1", 'op' : "botlist"},null, null)}}
+ {{/if}}
+ {{else mode == 47}}
+ Supply Record Interlink
+
+
+ Location:
+
+
+
+ {^{if records.supply.shuttle_moving}}
+ Moving to station ({^{:records.supply.shuttle_eta}})
+ {{else}}
+ Shuttle at {^{:records.supply.shuttle_loc}}
+ {{/if}}
+
+
+
+
+
+
+ Current Approved Orders
+ {^{if records.supply.approved_count == 0}}
+ No current approved orders
+ {{else}}
+ {^{for records.supply.approved}}
+ #{^{:Number}} - {^{:Name}} approved by {^{:OrderedBy}}
{^{if Comment != ""}} {^{:Comment}}
{{/if}}
+ {{/for}}
+ {{/if}}
+
+ Current Requested Orders
+ {^{if records.supply.requests_count == 0}}
+ No current requested orders
+ {{else}}
+ {^{for records.supply.requests}}
+ #{^{:Number}} - {^{:Name}} requested by {^{:OrderedBy}}
{^{if Comment != ""}} {^{:Comment}}
{{/if}}
+ {{/for}}
+ {{/if}}
+
+
+
+
+ {{else mode == 48}}
+ Mule Control
+ {^{if records.mulebot.active == null || records.mulebot.active == 0}}
+ {^{if records.mulebot.count == 0}}
+ No bots found.
+
+ {{else}}
+ Mule List
+
+ Select A Mulebot
+
+
+ {^{for records.mulebot.bots}}
+
+ {^{:~link(Name, 'gear', {'radiomenu' : "1", 'op' : "control",'bot' : ref},null, null)}} (Location: {^{:Location}})
+
+ {{/for}}
+ {{/if}}
+
+ {^{:~link('Scan for Bots','gear', {'radiomenu' : "1", 'op' : "scanbots"},null, null)}}
+ {{else}}
+ {^{if records.mulebot.botstatus.mode == -1}}
+ Waiting for response...
+ {{else}}
+ Status:
+
+
+
+ Location:
+
+
+ {^{:records.mulebot.botstatus.loca}}
+
+
+
+
+ Mode:
+
+
+
+ {^{if records.mulebot.botstatus.mode ==0}} Ready
+ {{else records.mulebot.botstatus.mode == 1}}
+ Loading/Unloading
+ {{else records.mulebot.botstatus.mode ==2}}
+ Navigating to Delivery Location
+ {{else records.mulebot.botstatus.mode == 3}}
+ Navigating to Home
+ {{else records.mulebot.botstatus.mode ==4}}
+ Waiting for Clear Path
+ {{else records.mulebot.botstatus.mode ==5 || records.mulebot.botstatus.mode == 6}}
+ Calculating navigation Path
+
+ {{else records.mulebot.botstatus.mode ==7}}
+ Unable to locate destination
+ {{/if}}
+
+
+
+
+
+ Current Load:
+
+
+
+ {^{:~link(records.mulebot.botstatus.load == null ? 'None (Unload)' : records.mulebot.botstatus.load + ' (Unload)', 'gear', {'radiomenu' : "1", 'op' : "unload"},records.mulebot.botstatus.load == null ? 'disabled' : null, null)}}
+
+
+
+
+
+ Power:
+
+
+
+ {^{:records.mulebot.botstatus.powr}}%
+
+
+
+
+
+
+ Destination:
+
+
+ {^{:~link(records.mulebot.botstatus.dest == null || records.mulebot.botstatus.dest == "" ? 'None (Set)': records.mulebot.botstatus.dest+ ' (Set)', 'gear', {'radiomenu' : "1", 'op' : "setdest"},null, null)}}
+
+
+
+
+
+ Home:
+
+
+ {^{if records.mulebot.botstatus.home == null}} None {{else}} {^{:records.mulebot.botstatus.home}} {{/if}}
+
+
+
+
+ Auto Return:
+
+
+ {^{:~link(records.mulebot.botstatus.retn == 1 ? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : records.mulebot.botstatus.retn==1 ? "retoff" : "reton"},null, null)}}
+
+
+
+
+ Auto Pickup:
+
+
+ {^{:~link(records.mulebot.botstatus.pick==1? 'ON' : 'OFF', 'gear', {'radiomenu' : "1", 'op' : records.mulebot.botstatus.pick==1 ? "pickoff" : "pickon"},null, null)}}
+
+
+
+
+ Functions:
+
+
+ {^{:~link('Stop', 'gear', {'radiomenu' : "1", 'op' : "stop"},null, null)}}
+ {^{:~link('Proceed', 'gear', {'radiomenu' : "1", 'op' : "go"},null, null)}}
+ {^{:~link('Return Home', 'gear', {'radiomenu' : "1", 'op' : "home"},null, null)}}
+
+
+
+ {^{:~link('Return to Bot list', 'gear', {'radiomenu' : "1", 'op' : "botlist"},null, null)}}
+
+
+ {{/if}}
+ {{/if}}
+
+
+
+ {{else mode == 49}}
+ Janatorial Supplies Locator
+
+ Current Location:
+ {^{if records.janitor.user_loc.x == 0}}
+ Unknown
+ {{else}}
+ {^{:records.janitor.user_loc.x}} / {^{:records.janitor.user_loc.y}}
+ {{/if}}
+
+
+ {^{for records.janitor.mops}}
+ {^{if x==0}}
+ Unable to locate Mop
+ {{else}}
+ Mop Location:
+ ({^{:x}} / {^{:y}}) - {^{:dir}} - Status: {^{:status}}
+ {{/if}}
+ {{/for}}
+
+
+ {^{for records.janitor.buckets}}
+ {^{if x==0}}
+ Unable to locate Water Buckets
+ {{else}}
+ Water Buckets Location:
+ ({^{:x}} / {^{:y}}) - {^{:dir}} - Water Level: {^{:status}}
+ {{/if}}
+ {{/for}}
+
+
+ {^{for records.janitor.cleanbots}}
+ {^{if x==0}}
+ Unable to locate Clean Bots
+ {{else}}
+ Clean Bots Location:
+ ({^{:x}} / {^{:y}}) - {^{:dir}} - Status: {^{:status}}
+ {{/if}}
+
+ {{/for}}
+
+
+ {^{for records.janitor.carts}}
+ {^{if x==0}}
+ Unable to locate Janitorial Cart
+ {{else}}
+ Janitorial cart Location:
+ ({^{:x}} / {^{:y}}) - {^{:dir}} - Status: {^{:status}}
+ {{/if}}
+
+ {{/for}}
+
+
+
+
+
+ {{/if}}
+
+
+{{else}}
+
No Owner information found, please swipe ID
+
+{{/if}}
+
diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl
new file mode 100644
index 0000000000..2f47c19635
--- /dev/null
+++ b/nano/templates/uplink.tmpl
@@ -0,0 +1,46 @@
+
+
+{^{:~syndicateMode()}}
+{^{:welcome}}
+
+
+
+ Functions:
+
+
+ {^{:~link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}}
+
+
+
+
+
+ Tele-Crystals:
+
+
+ {^{:crystals}}
+
+
+Request items:
+Each item costs a number of tele-crystals as indicated by the number following their name.
+
+
+{^{for nano_items}}
+
+
{^{:Category}}
+
+ {^{for items}}
+
+ {^{:~link( Name, 'gear', {'buy_item' : obj_path, 'cost' : Cost}, Cost > ~root.crystals ? 'disabled' : null, null)}} - {^{:Cost}}
+
+ {{/for}}
+
+
+{{/for}}
+
+
+ {^{:~link('Buy Random (??)' , 'gear', {'buy_item' : 'random'}, null, 'fixedLeftWidest')}}
+
+
diff --git a/sound/effects/canopen.ogg b/sound/effects/canopen.ogg
new file mode 100644
index 0000000000..8e266c30b4
Binary files /dev/null and b/sound/effects/canopen.ogg differ