diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm
index a63681cc21..4e9d7fd6ad 100644
--- a/code/__defines/_planes+layers.dm
+++ b/code/__defines/_planes+layers.dm
@@ -116,6 +116,8 @@ What is the naming convention for planes or layers?
#define HUD_LAYER 20 // Above lighting, but below obfuscation. For in-game HUD effects (whereas SCREEN_LAYER is for abstract/OOC things like inventory slots)
#define SCREEN_LAYER 22 // Mob HUD/effects layer
+#define PLANE_STATUS 2 //Status Indicators that show over mobs' heads when certain things like stuns affect them.
+
#define PLANE_ADMIN1 3 //Purely for shenanigans (below lighting)
#define PLANE_PLANETLIGHTING 4 //Lighting on planets
#define PLANE_LIGHTING 5 //Where the lighting (and darkness) lives
@@ -138,8 +140,6 @@ What is the naming convention for planes or layers?
#define PLANE_MESONS 30 //Stuff seen with mesons, like open ceilings. This is 30 for downstreams.
-#define PLANE_STATUS 31 //Status Indicators that show over mobs' heads when certain things like stuns affect them.
-
#define PLANE_ADMIN2 33 //Purely for shenanigans (above lighting)
#define PLANE_BUILDMODE 39 //Things that only show up when you have buildmode on
diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm
index 0019c3cbd7..da9220b3af 100644
--- a/code/__defines/mobs.dm
+++ b/code/__defines/mobs.dm
@@ -431,4 +431,6 @@
#define EXAMINE_SKIPLEGS 0x0080
#define EXAMINE_SKIPFEET 0x0100
-#define MAX_NUTRITION 5000 //VOREStation Edit
\ No newline at end of file
+#define MAX_NUTRITION 5000 //VOREStation Edit
+
+#define FAKE_INVIS_ALPHA_THRESHOLD 127 // If something's alpha var is at or below this number, certain things will pretend it is invisible.
diff --git a/code/__defines/objects.dm b/code/__defines/objects.dm
index 3d2891a3c5..d6530fecff 100644
--- a/code/__defines/objects.dm
+++ b/code/__defines/objects.dm
@@ -40,4 +40,12 @@
#define CATALOGUER_REWARD_SUPERHARD 2560 // Very difficult and dangerous, such as scanning the Advanced Dark Gygax.
// 5 10 20 40 80 160
-// 10 40 160 640 2560
\ No newline at end of file
+// 10 40 160 640 2560
+
+// Defines for Exosuit components.
+
+#define MECH_HULL "Hull"
+#define MECH_ACTUATOR "Actuator"
+#define MECH_ARMOR "Plating"
+#define MECH_GAS "Life Support"
+#define MECH_ELECTRIC "Firmware"
diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index 99a313e454..eba949e02d 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -289,6 +289,11 @@ Turf and target are seperate in case you want to teleport some distance from a t
/proc/format_frequency(var/f)
return "[round(f / 10)].[f % 10]"
+//Opposite of format, returns as a number
+/proc/unformat_frequency(frequency)
+ frequency = text2num(frequency)
+ return frequency * 10
+
//This will update a mob's name, real_name, mind.name, data_core records, pda and id
diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm
index b99ab68064..c1d87d7ef3 100644
--- a/code/controllers/communications.dm
+++ b/code/controllers/communications.dm
@@ -148,6 +148,41 @@ var/list/radiochannels = list(
"Talon" = TALON_FREQ //VOREStation Add
)
+// Hey, if anyone ever needs to update tgui/packages/tgui/constants.js with new radio channels
+// I've kept this around just for you.
+/* /client/verb/generate_tgui_radio_constants()
+ set name = "Generate TGUI Radio Constants"
+ set category = "Generate TGUI Radio Constants"
+
+ var/list/channel_info = list()
+
+ for(var/i in RADIO_LOW_FREQ to RADIO_HIGH_FREQ)
+ for(var/key in radiochannels)
+ if(i == radiochannels[key])
+ channel_info.Add(list(list("name" = key, "freq" = i, "color" = frequency_span_class(i))))
+
+ for(var/list/channel in channel_info)
+ switch(channel["color"])
+ if("deadsay") channel["color"] = "#530FAD"
+ if("radio") channel["color"] = "#008000"
+ if("deptradio") channel["color"] = "#ff00ff"
+ if("newscaster") channel["color"] = "#750000"
+ if("comradio") channel["color"] = "#193A7A"
+ if("syndradio") channel["color"] = "#6D3F40"
+ if("centradio") channel["color"] = "#5C5C8A"
+ if("airadio") channel["color"] = "#FF00FF"
+ if("entradio") channel["color"] = "#339966"
+ if("secradio") channel["color"] = "#A30000"
+ if("engradio") channel["color"] = "#A66300"
+ if("medradio") channel["color"] = "#008160"
+ if("sciradio") channel["color"] = "#993399"
+ if("supradio") channel["color"] = "#5F4519"
+ if("srvradio") channel["color"] = "#6eaa2c"
+ if("expradio") channel["color"] = "#555555"
+
+ to_chat(src, json_encode(channel_info)) */
+
+
// central command channels, i.e deathsquid & response teams
var/list/CENT_FREQS = list(ERT_FREQ, DTH_FREQ)
diff --git a/code/controllers/subsystems/tgui.dm b/code/controllers/subsystems/tgui.dm
index 91533a7783..e94830a5f0 100644
--- a/code/controllers/subsystems/tgui.dm
+++ b/code/controllers/subsystems/tgui.dm
@@ -255,13 +255,13 @@ SUBSYSTEM_DEF(tgui)
*
* return int The number of UIs closed.
**/
-/datum/controller/subsystem/tgui/proc/close_user_uis(mob/user, datum/src_object)
+/datum/controller/subsystem/tgui/proc/close_user_uis(mob/user, datum/src_object, logout = FALSE)
var/count = 0
if(length(user?.tgui_open_uis) == 0)
return count
for(var/datum/tgui/ui in user.tgui_open_uis)
if(isnull(src_object) || ui.src_object == src_object)
- ui.close()
+ ui.close(logout = logout)
count++
return count
@@ -315,7 +315,7 @@ SUBSYSTEM_DEF(tgui)
* return int The number of UIs closed.
**/
/datum/controller/subsystem/tgui/proc/on_logout(mob/user)
- return close_user_uis(user)
+ return close_user_uis(user, logout = TRUE)
/**
* private
diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm
index e170d8c885..53a2f14fac 100644
--- a/code/datums/autolathe/arms.dm
+++ b/code/datums/autolathe/arms.dm
@@ -33,6 +33,12 @@
path =/obj/item/ammo_casing/a12g/stunshell
hidden = 1
+/datum/category_item/autolathe/arms/flechetteshell
+ name = "ammunition (flechette cartridge, shotgun)"
+ path =/obj/item/ammo_casing/a12g/flechette
+ hidden = 1
+ man_rating = 2
+
//////////////////
/*Ammo magazines*/
//////////////////
@@ -64,6 +70,18 @@
name = "pistol magazine (.45 flash)"
path =/obj/item/ammo_magazine/m45/flash
+/datum/category_item/autolathe/arms/pistol_45ap
+ name = "pistol magazine (.45 armor piercing)"
+ path =/obj/item/ammo_magazine/m45/ap
+ hidden = 1
+ resources = list(DEFAULT_WALL_MATERIAL = 500, MAT_PLASTEEL = 300)
+
+/datum/category_item/autolathe/arms/pistol_45hp
+ name = "pistol magazine (.45 hollowpoint)"
+ path =/obj/item/ammo_magazine/m45/hp
+ hidden = 1
+ resources = list(DEFAULT_WALL_MATERIAL = 500, MAT_PLASTIC = 200)
+
/datum/category_item/autolathe/arms/pistol_45uzi
name = "uzi magazine (.45)"
path =/obj/item/ammo_magazine/m45uzi
@@ -138,6 +156,12 @@
name = "top-mounted SMG magazine (9mm flash)"
path =/obj/item/ammo_magazine/m9mmt/flash
+/datum/category_item/autolathe/arms/smg_9mmap
+ name = "top-mounted SMG magazine (9mm armor piercing)"
+ path =/obj/item/ammo_magazine/m9mmt/ap
+ hidden = 1
+ man_rating = 2
+
/////// 10mm
/datum/category_item/autolathe/arms/smg_10mm
name = "SMG magazine (10mm)"
diff --git a/code/datums/autolathe/autolathe.dm b/code/datums/autolathe/autolathe.dm
index 91c9ec37b7..003212fe75 100644
--- a/code/datums/autolathe/autolathe.dm
+++ b/code/datums/autolathe/autolathe.dm
@@ -71,6 +71,7 @@ var/datum/category_collection/autolathe/autolathe_recipes
var/is_stack // Creates multiple of an item if applied to non-stack items
var/max_stack
var/no_scale
+ var/man_rating = 0
/datum/category_item/autolathe/dd_SortValue()
return name
\ No newline at end of file
diff --git a/code/datums/autolathe/general.dm b/code/datums/autolathe/general.dm
index c11319972f..370ffe1d39 100644
--- a/code/datums/autolathe/general.dm
+++ b/code/datums/autolathe/general.dm
@@ -98,6 +98,18 @@
is_stack = TRUE
no_scale = TRUE //prevents material duplication exploits
+/datum/category_item/autolathe/general/plasteel
+ name = "plasteel sheets"
+ path =/obj/item/stack/material/plasteel
+ is_stack = TRUE
+ no_scale = TRUE //prevents material duplication exploits
+
+/datum/category_item/autolathe/general/plastic
+ name = "plastic sheets"
+ path =/obj/item/stack/material/plastic
+ is_stack = TRUE
+ no_scale = TRUE //prevents material duplication exploits
+
//TFF 24/12/19 - Let people print more spray bottles if needed.
/datum/category_item/autolathe/general/spraybottle
name = "spray bottle"
@@ -137,6 +149,12 @@
name = "light fixture battery"
path =/obj/item/weapon/cell/emergency_light
+/datum/category_item/autolathe/general/idcard
+ name = "ID Card"
+ path = /obj/item/weapon/card/id
+ resources = list(DEFAULT_WALL_MATERIAL = 100, MAT_GLASS = 100, MAT_PLASTIC = 300)
+ man_rating = 2
+
/datum/category_item/autolathe/general/handcuffs
name = "handcuffs"
path =/obj/item/weapon/handcuffs
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index ff483432ed..bb9372749a 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -332,6 +332,19 @@ var/global/list/PDA_Manifest = list()
var/datum/job/J = SSjob.get_job(assignment)
hidden = J?.offmap_spawn
+ /* Note: Due to cached_character_icon, a number of emergent properties occur due to the initialization
+ * order of readied-up vs latejoiners. Namely, latejoiners will get a uniform in their datacore picture, but readied-up will
+ * not. This is due to the fact that SSticker calls data_core.manifest_inject() inside of ticker/proc/create_characters(),
+ * but does not equip them until ticker/proc/equip_characters(), which is called later. So, this proc is literally called before
+ * they ever get their equipment, and so it can't get a picture of them in their equipment.
+ * Latejoiners do not have this problem, because /mob/new_player/proc/AttemptLateSpawn calls EquipRank() before it calls
+ * this proc, which means that they're already clothed by the time they get their picture taken here.
+ * The COMPILE_OVERLAYS() here is just to bypass SSoverlays taking for-fucking-ever to update the mob, since we're about to
+ * take a picture of them, we want all the overlays.
+ */
+ COMPILE_OVERLAYS(H)
+ SSoverlays.queue -= H
+
var/id = generate_record_id()
//General Record
var/datum/data/record/G = CreateGeneralRecord(H, id, hidden)
@@ -418,8 +431,8 @@ var/global/list/PDA_Manifest = list()
var/icon/side
if(H)
var/icon/charicon = cached_character_icon(H)
- front = icon(charicon, dir = SOUTH)
- side = icon(charicon, dir = WEST)
+ front = icon(charicon, dir = SOUTH, frame = 1)
+ side = icon(charicon, dir = WEST, frame = 1)
else // Sending null things through browse_rsc() makes a runtime and breaks the console trying to view the record.
front = icon('html/images/no_image32.png')
side = icon('html/images/no_image32.png')
diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index 3a9a0610a5..e8b0c2aa78 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -4,7 +4,7 @@
mid_sounds = list('sound/machines/shower/shower_mid1.ogg'=1,'sound/machines/shower/shower_mid2.ogg'=1,'sound/machines/shower/shower_mid3.ogg'=1)
mid_length = 10
end_sound = 'sound/machines/shower/shower_end.ogg'
- volume = 20
+ volume = 15
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm
index 5c35e2ae6f..e9fa3f2d99 100644
--- a/code/datums/supplypacks/supply.dm
+++ b/code/datums/supplypacks/supply.dm
@@ -89,6 +89,7 @@
name = "Stationery - sticky notes (50)"
contains = list(/obj/item/sticky_pad/random)
cost = 10
+ containertype = /obj/structure/closet/crate/ummarcar
containername = "\improper Sticky notes crate"
/datum/supply_pack/supply/spare_pda
diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm
index d37fbff0fe..83ebb65fa8 100644
--- a/code/datums/wires/wires.dm
+++ b/code/datums/wires/wires.dm
@@ -154,7 +154,7 @@
/datum/wires/tgui_act(action, list/params)
if(..())
- return
+ return TRUE
var/mob/user = usr
if(!interactable(user))
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index f6f2ddfce8..b76d5412b9 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -371,20 +371,22 @@ var/list/mob/living/forced_ambiance_list = new
L.lastarea = newarea
L.lastareachange = world.time
- play_ambience(L)
+ play_ambience(L, initial = TRUE)
if(no_spoilers)
L.disable_spoiler_vision()
-/area/proc/play_ambience(var/mob/living/L)
+/area/proc/play_ambience(var/mob/living/L, initial = TRUE)
// Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch
if(!(L && L.is_preference_enabled(/datum/client_preference/play_ambiance))) return
// If we previously were in an area with force-played ambiance, stop it.
- if(L in forced_ambiance_list)
+ if((L in forced_ambiance_list) && initial)
L << sound(null, channel = CHANNEL_AMBIENCE_FORCED)
forced_ambiance_list -= L
if(forced_ambience)
+ if(L in forced_ambiance_list)
+ return
if(forced_ambience.len)
forced_ambiance_list |= L
var/sound/chosen_ambiance = pick(forced_ambience)
diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm
index 13138f0eef..ddd49703c6 100644
--- a/code/game/dna/dna2.dm
+++ b/code/game/dna/dna2.dm
@@ -127,6 +127,7 @@ var/global/list/datum/dna/gene/dna_genes[0]
new_dna.species=species
new_dna.body_markings=body_markings.Copy()
new_dna.base_species=base_species //VOREStation Edit
+ new_dna.custom_species=custom_species //VOREStaton Edit
new_dna.species_traits=species_traits.Copy() //VOREStation Edit
new_dna.blood_color=blood_color //VOREStation Edit
for(var/b=1;b<=DNA_SE_LENGTH;b++)
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index a72c92d47c..eb0ad7000c 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -455,13 +455,13 @@
/obj/machinery/computer/scan_consolenew/tgui_act(action, params)
if(..())
- return FALSE // don't update uis
+ return TRUE
if(!istype(usr.loc, /turf))
- return FALSE // don't update uis
+ return TRUE
if(!src || !src.connected)
- return FALSE // don't update uis
+ return TRUE
if(irradiating) // Make sure that it isn't already irradiating someone...
- return FALSE // don't update uis
+ return TRUE
add_fingerprint(usr)
diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm
index 551784cfa5..499bb42e2c 100644
--- a/code/game/jobs/job/science_vr.dm
+++ b/code/game/jobs/job/science_vr.dm
@@ -55,4 +55,4 @@
outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist
job_description = "A Xenobotanist grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \
- are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew."
\ No newline at end of file
+ are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew."
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index d7d8761db7..a97fbf986f 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -293,7 +293,7 @@
/obj/machinery/sleeper/tgui_act(action, params, datum/tgui/ui, datum/tgui_state/state)
if(..())
- return
+ return TRUE
if(!controls_inside && usr == occupant)
return
if(panel_open)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 12f3b28b97..a3e4d2eeb3 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -216,7 +216,11 @@
var/reagentData[0]
if(H.reagents.reagent_list.len >= 1)
for(var/datum/reagent/R in H.reagents.reagent_list)
- reagentData[++reagentData.len] = list("name" = R.name, "amount" = R.volume)
+ reagentData[++reagentData.len] = list(
+ "name" = R.name,
+ "amount" = R.volume,
+ "overdose" = (R.overdose && R.volume > R.overdose) ? TRUE : FALSE,
+ )
else
reagentData = null
@@ -225,7 +229,11 @@
var/ingestedData[0]
if(H.ingested.reagent_list.len >= 1)
for(var/datum/reagent/R in H.ingested.reagent_list)
- ingestedData[++ingestedData.len] = list("name" = R.name, "amount" = R.volume)
+ ingestedData[++ingestedData.len] = list(
+ "name" = R.name,
+ "amount" = R.volume,
+ "overdose" = (R.overdose && R.volume > R.overdose) ? TRUE : FALSE,
+ )
else
ingestedData = null
@@ -315,7 +323,7 @@
/obj/machinery/bodyscanner/tgui_act(action, params)
if(..())
- return
+ return TRUE
. = TRUE
switch(action)
@@ -610,4 +618,4 @@
return
if(scanner)
- return scanner.tgui_interact(user)
\ No newline at end of file
+ return scanner.tgui_interact(user)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 1629b77bdd..3e1188198b 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -12,8 +12,8 @@
circuit = /obj/item/weapon/circuitboard/autolathe
var/datum/category_collection/autolathe/machine_recipes
- var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
- var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
+ var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, MAT_GLASS = 0, MAT_PLASTEEL = 0, MAT_PLASTIC = 0)
+ var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, MAT_GLASS = 0, MAT_PLASTEEL = 0, MAT_PLASTIC = 0)
var/datum/category_group/autolathe/current_category
var/hacked = 0
@@ -26,6 +26,9 @@
var/datum/wires/autolathe/wires = null
+ var/mb_rating = 0
+ var/man_rating = 0
+
var/filtertext
/obj/machinery/autolathe/Initialize()
@@ -64,6 +67,9 @@
var/list/material_bottom = list("
")
for(var/material in stored_material)
+ if(material != DEFAULT_WALL_MATERIAL && material != MAT_GLASS) // Don't show the Extras unless people care enough to put them in.
+ if(stored_material[material] <= 0)
+ continue
material_top += "[material] "
material_bottom += "[stored_material[material]]/[storage_capacity[material]] "
@@ -72,7 +78,9 @@
dat += "Printable Designs "
for(var/datum/category_item/autolathe/R in current_category.items)
- if(R.hidden && !hacked)
+ if(R.hidden && !hacked) // Illegal or nonstandard.
+ continue
+ if(R.man_rating > man_rating) // Advanced parts.
continue
if(filtertext && findtext(R.name, filtertext) == 0)
continue
@@ -311,14 +319,16 @@
//Updates overall lathe storage size.
/obj/machinery/autolathe/RefreshParts()
..()
- var/mb_rating = 0
- var/man_rating = 0
+ mb_rating = 0
+ man_rating = 0
for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts)
mb_rating += MB.rating
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
man_rating += M.rating
storage_capacity[DEFAULT_WALL_MATERIAL] = mb_rating * 25000
+ storage_capacity[MAT_PLASTIC] = mb_rating * 20000
+ storage_capacity[MAT_PLASTEEL] = mb_rating * 16250
storage_capacity["glass"] = mb_rating * 12500
build_time = 50 / man_rating
mat_efficiency = 1.1 - man_rating * 0.1// Normally, price is 1.25 the amount of material, so this shouldn't go higher than 0.6. Maximum rating of parts is 5
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index cf041a74fc..aa76f23077 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -129,7 +129,7 @@
/obj/machinery/computer/operating/tgui_act(action, params)
if(..())
- return
+ return TRUE
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.set_machine(src)
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index ffc99e4733..8ef01c9b64 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -14,17 +14,7 @@
/obj/item/clothing/suit/syndicatefake = 2,
/obj/item/weapon/storage/fancy/crayons = 2,
/obj/item/toy/spinningtoy = 2,
- /obj/item/toy/prize/ripley = 1,
- /obj/item/toy/prize/fireripley = 1,
- /obj/item/toy/prize/deathripley = 1,
- /obj/item/toy/prize/gygax = 1,
- /obj/item/toy/prize/durand = 1,
- /obj/item/toy/prize/honk = 1,
- /obj/item/toy/prize/marauder = 1,
- /obj/item/toy/prize/seraph = 1,
- /obj/item/toy/prize/mauler = 1,
- /obj/item/toy/prize/odysseus = 1,
- /obj/item/toy/prize/phazon = 1,
+ /obj/random/mech_toy = 1,
/obj/item/weapon/reagent_containers/spray/waterflower = 1,
/obj/random/action_figure = 1,
/obj/random/plushie = 1,
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index 07fac6fb0d..9bf3235d8d 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -198,7 +198,7 @@
/obj/machinery/computer/cloning/tgui_act(action, params)
if(..())
- return
+ return TRUE
. = TRUE
switch(tgui_modal_act(src, action, params))
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 40e8152340..f775bed4c3 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -170,7 +170,7 @@
data["virus"] = list()
for(var/ID in virusDB)
var/datum/data/record/v = virusDB[ID]
- data["virus"] += list(list("name" = v.fields["name"], "D" = v))
+ data["virus"] += list(list("name" = v.fields["name"], "D" = "\ref[v]"))
if(MED_DATA_MEDBOT)
data["medbots"] = list()
for(var/mob/living/bot/medbot/M in mob_list)
@@ -198,7 +198,7 @@
/obj/machinery/computer/med_data/tgui_act(action, params)
if(..())
- return
+ return TRUE
if(!data_core.general.Find(active1))
active1 = null
@@ -266,16 +266,9 @@
active2 = null
if("vir")
var/datum/data/record/v = locate(params["vir"])
- var/list/payload = list(
- id = v.fields["id"],
- name = v.fields["name"],
- max_stages = "Unknown",
- spread_text = v.fields["spread type"],
- cure = v.fields["antigen"],
- desc = v.fields["description"],
- severity = "Unknown"
- );
- tgui_modal_message(src, "virus", "", null, payload)
+ if(!istype(v))
+ return FALSE
+ tgui_modal_message(src, "virus", "", null, v.fields["tgui_description"])
if("del_all")
for(var/datum/data/record/R in data_core.medical)
qdel(R)
@@ -508,3 +501,6 @@
icon_screen = "medlaptop"
circuit = /obj/item/weapon/circuitboard/med_data/laptop
density = 0
+
+#undef FIELD
+#undef MED_FIELD
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index d279a9773b..d822bcb739 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -141,7 +141,7 @@
/obj/machinery/atmospherics/unary/cryo_cell/tgui_act(action, params)
if(..() || usr == occupant)
- return
+ return TRUE
. = TRUE
switch(action)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 8f1d7faed7..2ec9c0043b 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1127,6 +1127,7 @@ About the new airlock wires panel:
SetWeakened(5)
var/turf/T = get_turf(src)
T.add_blood(src)
+ return 1
/mob/living/carbon/airlock_crush(var/crush_damage)
. = ..()
diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm
index ebf1beceaf..569c413f94 100644
--- a/code/game/machinery/doors/blast_door.dm
+++ b/code/game/machinery/doors/blast_door.dm
@@ -10,6 +10,9 @@
// UPDATE 06.04.2018
// The emag thing wasn't working as intended, manually overwrote it.
+#define BLAST_DOOR_CRUSH_DAMAGE 40
+#define SHUTTER_CRUSH_DAMAGE 5 // YW Edit - Shutter damage 5.
+
/obj/machinery/door/blast
name = "Blast Door"
desc = "That looks like it doesn't open easily."
@@ -24,6 +27,8 @@
var/icon_state_closing = null
var/open_sound = 'sound/machines/blastdooropen.ogg'
var/close_sound = 'sound/machines/blastdoorclose.ogg'
+ var/damage = BLAST_DOOR_CRUSH_DAMAGE
+ var/multiplier = 1 // The multiplier for how powerful our YEET is.
closed_layer = ON_WINDOW_LAYER // Above airlocks when closed
var/id = 1.0
@@ -61,9 +66,13 @@
SSradiation.resistance_cache.Remove(get_turf(src))
return
-// Has to be in here, comment at the top is older than the emag_act code on doors proper
+// Proc: emag_act()
+// Description: Emag action to allow blast doors to double their yeet distance and speed.
/obj/machinery/door/blast/emag_act()
- return -1
+ if(!emagged)
+ emagged = 1
+ multiplier = 2 // Haha emag go yeet
+ return 1
// Blast doors are triggered remotely, so nobody is allowed to physically influence it.
/obj/machinery/door/blast/allowed(mob/M)
@@ -88,6 +97,10 @@
// Parameters: None
// Description: Closes the door. No checks are done inside this proc.
/obj/machinery/door/blast/proc/force_close()
+ // Blast door turf checks. We do this before the door closes to prevent it from failing after the door is closed, because obv a closed door will block any adjacency checks.
+ var/turf/T = get_turf(src)
+ var/list/yeet_turfs = T.CardinalTurfs(TRUE)
+
src.operating = 1
playsound(src, close_sound, 100, 1)
src.layer = closed_layer
@@ -98,6 +111,14 @@
src.set_opacity(1)
sleep(15)
src.operating = 0
+
+ // Blast door crushing.
+ for(var/turf/turf in locs)
+ for(var/atom/movable/AM in turf)
+ if(AM.airlock_crush(damage))
+ if(LAZYLEN(yeet_turfs))
+ AM.throw_at(get_edge_target_turf(src, get_dir(src, pick(yeet_turfs))), (rand(1,3) * multiplier), (rand(2,4) * multiplier)) // YEET.
+ take_damage(damage*0.2)
// Proc: force_toggle()
// Parameters: None
@@ -300,3 +321,7 @@ obj/machinery/door/blast/regular/open
icon_state_closed = "shutter1"
icon_state_closing = "shutterc1"
icon_state = "shutter1"
+ damage = SHUTTER_CRUSH_DAMAGE
+
+#undef BLAST_DOOR_CRUSH_DAMAGE
+#undef SHUTTER_CRUSH_DAMAGE
\ No newline at end of file
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 0d2c4e78e8..1afa9910f4 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -213,6 +213,13 @@ Class Procs:
/obj/machinery/proc/inoperable(var/additional_flags = 0)
return (stat & (NOPOWER | BROKEN | additional_flags))
+// Duplicate of below because we don't want to fuck around with CanUseTopic in TGUI
+// TODO: Replace this with can_interact from /tg/
+/obj/machinery/tgui_status(mob/user)
+ if(!interact_offline && (stat & (NOPOWER | BROKEN)))
+ return STATUS_CLOSE
+ return ..()
+
/obj/machinery/CanUseTopic(var/mob/user)
if(!interact_offline && (stat & (NOPOWER | BROKEN)))
return STATUS_CLOSE
diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index b5d3351b21..d618d276c3 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -17,6 +17,14 @@
max_special_equip = 1
cargo_capacity = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/durable,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/reinforced,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
/*
/obj/mecha/combat/range_action(target as obj|mob|turf)
if(internal_damage&MECHA_INT_CONTROL_LOST)
diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm
index 5ab43a93ee..aa5a9e000c 100644
--- a/code/game/mecha/combat/durand.dm
+++ b/code/game/mecha/combat/durand.dm
@@ -5,8 +5,8 @@
initial_icon = "durand"
step_in = 4
dir_in = 1 //Facing North.
- health = 400
- maxhealth = 400 //Don't forget to update the /old variant if you change this number.
+ health = 300
+ maxhealth = 300 //Don't forget to update the /old variant if you change this number.
deflect_chance = 20
damage_absorption = list("brute"=0.5,"fire"=1.1,"bullet"=0.65,"laser"=0.85,"energy"=0.9,"bomb"=0.8)
max_temperature = 30000
@@ -23,6 +23,14 @@
max_universal_equip = 1
max_special_equip = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/durable,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/military,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
defence_mode_possible = 1
/*
@@ -73,5 +81,5 @@
/obj/mecha/combat/durand/old/New()
..()
health = 25
- maxhealth = 350 //Just slightly worse.
+ maxhealth = 250 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index d74b96cf99..0323124c47 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -5,8 +5,8 @@
initial_icon = "gygax"
step_in = 3
dir_in = 1 //Facing North.
- health = 300
- maxhealth = 300 //Don't forget to update the /old variant if you change this number.
+ health = 250
+ maxhealth = 250 //Don't forget to update the /old variant if you change this number.
deflect_chance = 15
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
max_temperature = 25000
@@ -21,6 +21,14 @@
max_universal_equip = 1
max_special_equip = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/lightweight,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/marshal,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
overload_possible = 1
//Not quite sure how to move those yet.
@@ -58,17 +66,12 @@
max_universal_equip = 1
max_special_equip = 2
-/obj/mecha/combat/gygax/dark/Initialize()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/clusterbang
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/teleporter
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
- ME.attach(src)
- return
+ starting_equipment = list(
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot,
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/grenade/clusterbang,
+ /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,
+ /obj/item/mecha_parts/mecha_equipment/teleporter
+ )
/obj/mecha/combat/gygax/dark/add_cell(var/obj/item/weapon/cell/C=null)
if(C)
@@ -101,6 +104,14 @@
max_universal_equip = 1
max_special_equip = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/lightweight,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
var/obj/item/clothing/glasses/hud/health/mech/hud
/obj/mecha/combat/gygax/serenity/New()
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index a79dc3fda2..e2c0b9467a 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -5,8 +5,8 @@
icon_state = "marauder"
initial_icon = "marauder"
step_in = 5
- health = 500
- maxhealth = 500 //Don't forget to update the /old variant if you change this number.
+ health = 350
+ maxhealth = 350 //Don't forget to update the /old variant if you change this number.
deflect_chance = 25
damage_absorption = list("brute"=0.5,"fire"=0.7,"bullet"=0.45,"laser"=0.6,"energy"=0.7,"bomb"=0.7)
max_temperature = 60000
@@ -29,6 +29,21 @@
zoom_possible = 1
thrusters_possible = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/durable,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/military,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
+ starting_equipment = list(
+ /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse,
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive,
+ /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,
+ /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster
+ )
+
/obj/mecha/combat/marauder/seraph
desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
name = "Seraph"
@@ -37,12 +52,20 @@
initial_icon = "seraph"
operation_req_access = list(access_cent_creed)
step_in = 3
- health = 550
+ health = 450
wreckage = /obj/effect/decal/mecha_wreckage/seraph
internal_damage_threshold = 20
force = 55
max_equip = 5
+ starting_equipment = list(
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot,
+ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive,
+ /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,
+ /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,
+ /obj/item/mecha_parts/mecha_equipment/teleporter
+ )
+
//Note that is the Mauler
/obj/mecha/combat/marauder/mauler
desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model."
@@ -53,40 +76,6 @@
wreckage = /obj/effect/decal/mecha_wreckage/mauler
mech_faction = MECH_FACTION_SYNDI
-//Note that is the default Marauder
-/obj/mecha/combat/marauder/Initialize()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
- ME.attach(src)
- return
-
-//Note that this is the seraph.
-/obj/mecha/combat/marauder/seraph/Initialize()
- ..()//Let it equip whatever is needed.
- var/obj/item/mecha_parts/mecha_equipment/ME
- if(equipment.len)//Now to remove it and equip anew.
- for(ME in equipment)
- ME.detach()
- qdel(ME)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/teleporter(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster(src)
- ME.attach(src)
- return
-
-
//I'll break this down later
/obj/mecha/combat/marauder/relaymove(mob/user,direction)
if(user != src.occupant) //While not "realistic", this piece is player friendly.
@@ -150,17 +139,10 @@
/obj/mecha/combat/marauder/old
desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations. This one is particularly worn looking and likely isn't as sturdy."
+ starting_equipment = null
+
/obj/mecha/combat/marauder/old/New()
..()
health = 25
- maxhealth = 400 //Just slightly worse.
+ maxhealth = 300 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
-
-/obj/mecha/combat/marauder/old/Initialize()
- ..()
- var/obj/item/mecha_parts/mecha_equipment/ME
- if(equipment.len)
- for(ME in equipment)
- ME.detach()
- qdel(ME)
- return
\ No newline at end of file
diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm
index 121bab34f9..17aea92345 100644
--- a/code/game/mecha/combat/phazon.dm
+++ b/code/game/mecha/combat/phazon.dm
@@ -25,15 +25,24 @@
max_universal_equip = 3
max_special_equip = 4
- phasing_possible = 1
- switch_dmg_type_possible = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/durable,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/alien,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
+ cloak_possible = TRUE
+ phasing_possible = TRUE
+ switch_dmg_type_possible = TRUE
/obj/mecha/combat/phazon/equipped/Initialize()
..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/rcd
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/gravcatapult
- ME.attach(src)
+ starting_equipment = list(
+ /obj/item/mecha_parts/mecha_equipment/tool/rcd,
+ /obj/item/mecha_parts/mecha_equipment/gravcatapult
+ )
return
/* Leaving this until we are really sure we don't need it for reference.
@@ -95,8 +104,9 @@
max_universal_equip = 2
max_special_equip = 2
- phasing_possible = 1
- switch_dmg_type_possible = 1
+ phasing_possible = TRUE
+ switch_dmg_type_possible = TRUE
+ cloak_possible = FALSE
/obj/mecha/combat/phazon/janus/take_damage(amount, type="brute")
..()
diff --git a/code/game/mecha/components/_component.dm b/code/game/mecha/components/_component.dm
new file mode 100644
index 0000000000..aadf390c61
--- /dev/null
+++ b/code/game/mecha/components/_component.dm
@@ -0,0 +1,155 @@
+
+/obj/item/mecha_parts/component
+ name = "mecha component"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "component"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
+
+ var/component_type = null
+
+ var/obj/mecha/chassis = null
+ var/start_damaged = FALSE
+
+ var/emp_resistance = 0 // Amount of emp 'levels' removed.
+
+ var/list/required_type = null // List, if it exists. Exosuits meant to use the component (Unique var changes / effects)
+
+ var/integrity
+ var/integrity_danger_mod = 0.5 // Multiplier for comparison to max_integrity before problems start.
+ var/max_integrity = 100
+
+ var/step_delay = 0
+
+ var/relative_size = 30 // Percent chance for the component to be hit.
+
+ var/internal_damage_flag // If set, the component will toggle the flag on or off if it is destroyed / severely damaged.
+
+/obj/item/mecha_parts/component/examine(mob/user)
+ . = ..()
+ var/show_integrity = round(integrity/max_integrity*100, 0.1)
+ switch(show_integrity)
+ if(85 to 100)
+ . += "It's fully intact."
+ if(65 to 85)
+ . += "It's slightly damaged."
+ if(45 to 65)
+ . += "It's badly damaged. "
+ if(25 to 45)
+ . += "It's heavily damaged. "
+ if(2 to 25)
+ . += "It's falling apart. "
+ if(0 to 1)
+ . += "It is completely destroyed. "
+
+/obj/item/mecha_parts/component/Initialize()
+ ..()
+ integrity = max_integrity
+
+ if(start_damaged)
+ integrity = round(integrity * integrity_danger_mod)
+
+/obj/item/mecha_parts/component/Destroy()
+ detach()
+ return ..()
+
+// Damage code.
+
+/obj/item/mecha_parts/component/emp_act(var/severity = 4)
+ if(severity + emp_resistance > 4)
+ return
+
+ severity = clamp(severity + emp_resistance, 1, 4)
+
+ take_damage((4 - severity) * round(integrity * 0.1, 0.1))
+
+/obj/item/mecha_parts/component/proc/adjust_integrity(var/amt = 0)
+ integrity = clamp(integrity + amt, 0, max_integrity)
+ return
+
+/obj/item/mecha_parts/component/proc/damage_part(var/dam_amt = 0, var/type = BRUTE)
+ if(dam_amt <= 0)
+ return FALSE
+
+ adjust_integrity(-1 * dam_amt)
+
+ if(chassis && internal_damage_flag)
+ if(get_efficiency() < 0.5)
+ chassis.check_for_internal_damage(list(internal_damage_flag), TRUE)
+
+ return TRUE
+
+/obj/item/mecha_parts/component/proc/get_efficiency()
+ var/integ_limit = round(max_integrity * integrity_danger_mod)
+
+ if(integrity < integ_limit)
+ var/int_percent = round(integrity / integ_limit, 0.1)
+
+ return int_percent
+
+ return 1
+
+// Attach/Detach code.
+
+/obj/item/mecha_parts/component/proc/attach(var/obj/mecha/target, var/mob/living/user)
+ if(target)
+ if(!(component_type in target.internal_components))
+ if(user)
+ to_chat(user, "\The [target] doesn't seem to have anywhere to put \the [src]. ")
+ return FALSE
+ if(target.internal_components[component_type])
+ if(user)
+ to_chat(user, "\The [target] already has a [component_type] installed! ")
+ return FALSE
+ chassis = target
+ if(user)
+ user.drop_from_inventory(src)
+ forceMove(target)
+
+ if(internal_damage_flag)
+ if(integrity > (max_integrity * integrity_danger_mod))
+ if(chassis.hasInternalDamage(internal_damage_flag))
+ chassis.clearInternalDamage(internal_damage_flag)
+
+ else
+ chassis.check_for_internal_damage(list(internal_damage_flag))
+
+ chassis.internal_components[component_type] = src
+
+ if(user)
+ chassis.visible_message("[user] installs \the [src] in \the [chassis]. ")
+ return TRUE
+ return FALSE
+
+/obj/item/mecha_parts/component/proc/detach()
+ if(chassis)
+ chassis.internal_components[component_type] = null
+
+ if(internal_damage_flag && chassis.hasInternalDamage(internal_damage_flag)) // If the module has been removed, it's kind of unfair to keep it causing problems by being damaged. It's nonfunctional either way.
+ chassis.clearInternalDamage(internal_damage_flag)
+
+ forceMove(get_turf(chassis))
+ chassis = null
+ return TRUE
+
+
+/obj/item/mecha_parts/component/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W,/obj/item/stack/nanopaste))
+ var/obj/item/stack/nanopaste/NP = W
+
+ if(integrity < max_integrity)
+ while(integrity < max_integrity && NP)
+ if(do_after(user, 1 SECOND, src) && NP.use(1))
+ adjust_integrity(10)
+
+ return
+
+ return ..()
+
+// Various procs to handle different calls by Exosuits. IE, movement actions, damage actions, etc.
+
+/obj/item/mecha_parts/component/proc/get_step_delay()
+ return step_delay
+
+/obj/item/mecha_parts/component/proc/handle_move()
+ return
diff --git a/code/game/mecha/components/actuators.dm b/code/game/mecha/components/actuators.dm
new file mode 100644
index 0000000000..d814518629
--- /dev/null
+++ b/code/game/mecha/components/actuators.dm
@@ -0,0 +1,37 @@
+
+/obj/item/mecha_parts/component/actuator
+ name = "mecha actuator"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "motor"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
+
+ component_type = MECH_ACTUATOR
+
+ start_damaged = FALSE
+
+ emp_resistance = 1
+
+ required_type = null // List, if it exists. Exosuits meant to use the component.
+
+ integrity_danger_mod = 0.6 // Multiplier for comparison to max_integrity before problems start.
+ max_integrity = 50
+
+ internal_damage_flag = MECHA_INT_CONTROL_LOST
+
+ var/strafing_multiplier = 1.5
+
+/obj/item/mecha_parts/component/actuator/get_step_delay()
+ return step_delay
+
+/obj/item/mecha_parts/component/actuator/hispeed
+ name = "overclocked mecha actuator"
+
+ step_delay = -1
+
+ emp_resistance = -1
+
+ integrity_danger_mod = 0.7
+ max_integrity = 60
+
+ strafing_multiplier = 1.2
diff --git a/code/game/mecha/components/armor.dm b/code/game/mecha/components/armor.dm
new file mode 100644
index 0000000000..b64c37bca5
--- /dev/null
+++ b/code/game/mecha/components/armor.dm
@@ -0,0 +1,238 @@
+
+/obj/item/mecha_parts/component/armor
+ name = "mecha plating"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "armor"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 2)
+
+ component_type = MECH_ARMOR
+
+ start_damaged = FALSE
+
+ emp_resistance = 4
+
+ required_type = null // List, if it exists. Exosuits meant to use the component.
+
+ integrity_danger_mod = 0.4 // Multiplier for comparison to max_integrity before problems start.
+ max_integrity = 120
+
+ internal_damage_flag = MECHA_INT_TEMP_CONTROL
+
+ step_delay = 1
+
+ var/deflect_chance = 10
+ var/list/damage_absorption = list(
+ "brute"= 0.8,
+ "fire"= 1.2,
+ "bullet"= 0.9,
+ "laser"= 1,
+ "energy"= 1,
+ "bomb"= 1,
+ "bio"= 1,
+ "rad"= 1
+ )
+
+ var/damage_minimum = 10
+ var/minimum_penetration = 0
+ var/fail_penetration_value = 0.66
+
+/obj/item/mecha_parts/component/armor/mining
+ name = "blast-resistant mecha plating"
+
+ step_delay = 2
+ max_integrity = 80
+
+ damage_absorption = list(
+ "brute"=0.8,
+ "fire"=0.8,
+ "bullet"=1.2,
+ "laser"=1.2,
+ "energy"=1,
+ "bomb"=0.5,
+ "bio"=1,
+ "rad"=1
+ )
+
+/obj/item/mecha_parts/component/armor/lightweight
+ name = "lightweight mecha plating"
+
+ max_integrity = 50
+ step_delay = 0
+
+ damage_absorption = list(
+ "brute"=1,
+ "fire"=1.4,
+ "bullet"=1.1,
+ "laser"=1.2,
+ "energy"=1,
+ "bomb"=1,
+ "bio"=1,
+ "rad"=1
+ )
+
+/obj/item/mecha_parts/component/armor/reinforced
+ name = "reinforced mecha plating"
+
+ step_delay = 4
+
+ max_integrity = 80
+
+ minimum_penetration = 10
+
+ damage_absorption = list(
+ "brute"=0.7,
+ "fire"=1,
+ "bullet"=0.7,
+ "laser"=0.85,
+ "energy"=1,
+ "bomb"=0.8
+ )
+
+/obj/item/mecha_parts/component/armor/military
+ name = "military grade mecha plating"
+
+ step_delay = 6
+
+ max_integrity = 100
+
+ emp_resistance = 2
+
+ required_type = list(/obj/mecha/combat)
+
+ damage_minimum = 15
+ minimum_penetration = 25
+
+ damage_absorption = list(
+ "brute"=0.5,
+ "fire"=1.1,
+ "bullet"=0.65,
+ "laser"=0.85,
+ "energy"=0.9,
+ "bomb"=0.8
+ )
+
+/obj/item/mecha_parts/component/armor/military/attach(var/obj/mecha/target, var/mob/living/user)
+ . = ..()
+ if(.)
+ var/typepass = FALSE
+ for(var/type in required_type)
+ if(istype(chassis, type))
+ typepass = TRUE
+
+ if(typepass)
+ step_delay = 3
+ else
+ step_delay = initial(step_delay)
+
+/obj/item/mecha_parts/component/armor/marshal
+ name = "marshal mecha plating"
+
+ step_delay = 5
+
+ max_integrity = 100
+
+ emp_resistance = 3
+
+ deflect_chance = 15
+
+ minimum_penetration = 10
+
+ required_type = list(/obj/mecha/combat)
+
+ damage_absorption = list(
+ "brute"=0.75,
+ "fire"=1,
+ "bullet"=0.8,
+ "laser"=0.7,
+ "energy"=0.85,
+ "bomb"=1
+ )
+
+/obj/item/mecha_parts/component/armor/marshal/attach(var/obj/mecha/target, var/mob/living/user)
+ . = ..()
+ if(.)
+ var/typepass = FALSE
+ for(var/type in required_type)
+ if(istype(chassis, type))
+ typepass = TRUE
+
+ if(typepass)
+ step_delay = 2
+ else
+ step_delay = initial(step_delay)
+
+/obj/item/mecha_parts/component/armor/marshal/reinforced
+ name = "blackops mecha plating"
+
+ step_delay = 5
+
+ damage_absorption = list(
+ "brute"=0.6,
+ "fire"=0.8,
+ "bullet"=0.6,
+ "laser"=0.5,
+ "energy"=0.65,
+ "bomb"=0.8
+ )
+
+/obj/item/mecha_parts/component/armor/military/marauder
+ name = "cutting edge mecha plating"
+
+ step_delay = 4
+
+ max_integrity = 150
+
+ emp_resistance = 3
+
+ required_type = list(/obj/mecha/combat/marauder)
+
+ deflect_chance = 25
+ damage_minimum = 30
+ minimum_penetration = 25
+
+ damage_absorption = list(
+ "brute"=0.5,
+ "fire"=0.7,
+ "bullet"=0.45,
+ "laser"=0.6,
+ "energy"=0.7,
+ "bomb"=0.7
+ )
+
+/obj/item/mecha_parts/component/armor/military/marauder/attach(var/obj/mecha/target, var/mob/living/user)
+ . = ..()
+ if(.)
+ var/typepass = FALSE
+ for(var/type in required_type)
+ if(istype(chassis, type))
+ typepass = TRUE
+
+ if(typepass)
+ step_delay = 1
+ else
+ step_delay = initial(step_delay)
+
+/obj/item/mecha_parts/component/armor/alien
+ name = "strange mecha plating"
+ step_delay = 3
+ damage_absorption = list(
+ "brute"=0.7,
+ "fire"=0.7,
+ "bullet"=0.7,
+ "laser"=0.7,
+ "energy"=0.7,
+ "bomb"=0.7
+ )
+
+/obj/item/mecha_parts/component/armor/alien/attach(var/obj/mecha/target, var/mob/living/user)
+ . = ..()
+ if(.)
+ if(istype(target, /obj/mecha/combat/phazon/janus))
+ step_delay = -1
+
+ else if(istype(target, /obj/mecha/combat/phazon))
+ step_delay = -3
+
+ else
+ step_delay = initial(step_delay)
diff --git a/code/game/mecha/components/electrical.dm b/code/game/mecha/components/electrical.dm
new file mode 100644
index 0000000000..de07c96c84
--- /dev/null
+++ b/code/game/mecha/components/electrical.dm
@@ -0,0 +1,31 @@
+
+/obj/item/mecha_parts/component/electrical
+ name = "mecha electrical harness"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "board"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
+
+ component_type = MECH_ELECTRIC
+
+ emp_resistance = 1
+
+ integrity_danger_mod = 0.4
+ max_integrity = 40
+
+ step_delay = 0
+
+ relative_size = 20
+
+ internal_damage_flag = MECHA_INT_SHORT_CIRCUIT
+
+ var/charge_cost_mod = 1
+
+/obj/item/mecha_parts/component/electrical/high_current
+ name = "efficient mecha electrical harness"
+
+ emp_resistance = 0
+ max_integrity = 30
+
+ relative_size = 10
+ charge_cost_mod = 0.6
diff --git a/code/game/mecha/components/hull.dm b/code/game/mecha/components/hull.dm
new file mode 100644
index 0000000000..16d01ad92c
--- /dev/null
+++ b/code/game/mecha/components/hull.dm
@@ -0,0 +1,33 @@
+
+/obj/item/mecha_parts/component/hull
+ name = "mecha hull"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "hull"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
+
+ component_type = MECH_HULL
+
+ emp_resistance = 0 // Amount of emp 'levels' removed.
+
+ required_type = null // List, if it exists. Exosuits meant to use the component.
+
+ integrity_danger_mod = 0.5 // Multiplier for comparison to max_integrity before problems start.
+ max_integrity = 50
+
+ internal_damage_flag = MECHA_INT_FIRE
+
+ step_delay = 2
+
+/obj/item/mecha_parts/component/hull/durable
+ name = "durable mecha hull"
+
+ step_delay = 4
+ integrity_danger_mod = 0.3
+ max_integrity = 100
+
+/obj/item/mecha_parts/component/hull/lightweight
+ name = "lightweight mecha hull"
+
+ step_delay = 1
+ integrity_danger_mod = 0.3
diff --git a/code/game/mecha/components/lifesupport.dm b/code/game/mecha/components/lifesupport.dm
new file mode 100644
index 0000000000..d98cefda4d
--- /dev/null
+++ b/code/game/mecha/components/lifesupport.dm
@@ -0,0 +1,28 @@
+
+/obj/item/mecha_parts/component/gas
+ name = "mecha life-support"
+ icon = 'icons/mecha/mech_component.dmi'
+ icon_state = "lifesupport"
+ w_class = ITEMSIZE_HUGE
+ origin_tech = list(TECH_DATA = 2, TECH_ENGINEERING = 2)
+
+ component_type = MECH_GAS
+
+ emp_resistance = 1
+
+ integrity_danger_mod = 0.4
+ max_integrity = 40
+
+ step_delay = 0
+
+ relative_size = 20
+
+ internal_damage_flag = MECHA_INT_TANK_BREACH
+
+/obj/item/mecha_parts/component/gas/reinforced
+ name = "reinforced mecha life-support"
+
+ emp_resistance = 2
+ max_integrity = 80
+
+ relative_size = 40
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index 678ac64910..617af4849f 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -28,6 +28,8 @@
var/ready_sound = 'sound/mecha/mech_reload_default.ogg' //Sound to play once the fire delay passed.
var/enable_special = FALSE // Will the tool do its special?
+ var/step_delay = 0 // Does the component slow/speed up the suit?
+
/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(target=1)
sleep(equip_cooldown)
set_ready_state(1)
@@ -273,3 +275,6 @@
/obj/item/mecha_parts/mecha_equipment/proc/MoveAction() //Allows mech equipment to do an action upon the mech moving
return
+
+/obj/item/mecha_parts/mecha_equipment/proc/get_step_delay() // Equipment returns its slowdown or speedboost.
+ return step_delay
diff --git a/code/game/mecha/equipment/tools/armor_melee.dm b/code/game/mecha/equipment/tools/armor_melee.dm
index 8390a2cc52..085148d938 100644
--- a/code/game/mecha/equipment/tools/armor_melee.dm
+++ b/code/game/mecha/equipment/tools/armor_melee.dm
@@ -9,6 +9,8 @@
var/deflect_coeff = 1.15
var/damage_coeff = 0.8
+ step_delay = 1
+
equip_type = EQUIP_HULL
/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/get_equip_info()
diff --git a/code/game/mecha/equipment/tools/armor_ranged.dm b/code/game/mecha/equipment/tools/armor_ranged.dm
index 4fb3aac32b..5b8d6d8172 100644
--- a/code/game/mecha/equipment/tools/armor_ranged.dm
+++ b/code/game/mecha/equipment/tools/armor_ranged.dm
@@ -9,6 +9,8 @@
var/deflect_coeff = 1.15
var/damage_coeff = 0.8
+ step_delay = 2
+
equip_type = EQUIP_HULL
/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/handle_projectile_contact(var/obj/item/projectile/Proj, var/inc_damage)
diff --git a/code/game/mecha/equipment/tools/repair_droid.dm b/code/game/mecha/equipment/tools/repair_droid.dm
index f4f9696aa5..7cd8ebd9ab 100644
--- a/code/game/mecha/equipment/tools/repair_droid.dm
+++ b/code/game/mecha/equipment/tools/repair_droid.dm
@@ -11,6 +11,8 @@
var/icon/droid_overlay
var/list/repairable_damage = list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH)
+ step_delay = 1
+
equip_type = EQUIP_HULL
/obj/item/mecha_parts/mecha_equipment/repair_droid/New()
@@ -79,8 +81,23 @@
RD.chassis.clearInternalDamage(int_dam_flag)
repaired = 1
break
- if(health_boost<0 || RD.chassis.health < initial(RD.chassis.health))
+
+ var/obj/item/mecha_parts/component/AC = RD.chassis.internal_components[MECH_ARMOR]
+ var/obj/item/mecha_parts/component/HC = RD.chassis.internal_components[MECH_HULL]
+
+ var/damaged_armor = AC.integrity < AC.max_integrity
+
+ var/damaged_hull = HC.integrity < HC.max_integrity
+
+ if(health_boost<0 || RD.chassis.health < initial(RD.chassis.health) || damaged_armor || damaged_hull)
RD.chassis.health += min(health_boost, initial(RD.chassis.health)-RD.chassis.health)
+
+ if(AC)
+ AC.adjust_integrity(round(health_boost * 0.5, 0.5))
+
+ if(HC)
+ HC.adjust_integrity(round(health_boost * 0.5, 0.5))
+
repaired = 1
if(repaired)
if(RD.chassis.use_power(RD.energy_drain))
diff --git a/code/game/mecha/equipment/tools/shield.dm b/code/game/mecha/equipment/tools/shield.dm
index 1ceab07945..453c2ba9da 100644
--- a/code/game/mecha/equipment/tools/shield.dm
+++ b/code/game/mecha/equipment/tools/shield.dm
@@ -7,6 +7,8 @@
energy_drain = 20
range = 0
+ step_delay = 1
+
var/obj/item/shield_projector/line/exosuit/my_shield = null
var/my_shield_type = /obj/item/shield_projector/line/exosuit
var/icon/drone_overlay
@@ -66,9 +68,11 @@
my_shield.attack_self(chassis.occupant)
if(my_shield.active)
set_ready_state(0)
+ step_delay = 4
log_message("Activated.")
else
set_ready_state(1)
+ step_delay = 1
log_message("Deactivated.")
/obj/item/mecha_parts/mecha_equipment/combat_shield/Topic(href, href_list)
diff --git a/code/game/mecha/equipment/tools/shield_omni.dm b/code/game/mecha/equipment/tools/shield_omni.dm
index 1d230c4deb..aae68ef4cd 100644
--- a/code/game/mecha/equipment/tools/shield_omni.dm
+++ b/code/game/mecha/equipment/tools/shield_omni.dm
@@ -9,6 +9,8 @@
energy_drain = OMNI_SHIELD_DRAIN
range = 0
+ step_delay = 1
+
var/obj/item/shield_projector/shields = null
var/shield_type = /obj/item/shield_projector/rectangle/mecha
@@ -42,9 +44,11 @@
shields.set_on(!shields.active)
if(shields.active)
set_ready_state(0)
+ step_delay = 4
log_message("Activated.")
else
set_ready_state(1)
+ step_delay = 1
log_message("Deactivated.")
/obj/item/mecha_parts/mecha_equipment/omni_shield/Topic(href, href_list)
diff --git a/code/game/mecha/equipment/tools/speedboost.dm b/code/game/mecha/equipment/tools/speedboost.dm
index 6e7ad06f69..7ffbeaee38 100644
--- a/code/game/mecha/equipment/tools/speedboost.dm
+++ b/code/game/mecha/equipment/tools/speedboost.dm
@@ -7,6 +7,9 @@
equip_type = EQUIP_HULL
+ var/slowdown_multiplier = 0.75 // How much does the exosuit multiply its slowdown by if it's the proper type?
+
+/*
/obj/item/mecha_parts/mecha_equipment/speedboost/attach(obj/mecha/M as obj)
..()
if(enable_special)
@@ -14,6 +17,13 @@
else
chassis.step_in = 6 // Improper parts slow the mech down
return
+*/
+
+/obj/item/mecha_parts/mecha_equipment/speedboost/get_step_delay()
+ if(enable_special)
+ return -1
+ else
+ return 3
/obj/item/mecha_parts/mecha_equipment/speedboost/detach()
chassis.step_in = initial(chassis.step_in)
diff --git a/code/game/mecha/equipment/weapons/ballistic/mortar.dm b/code/game/mecha/equipment/weapons/ballistic/mortar.dm
index 86928c9da5..c192d0fc9b 100644
--- a/code/game/mecha/equipment/weapons/ballistic/mortar.dm
+++ b/code/game/mecha/equipment/weapons/ballistic/mortar.dm
@@ -11,6 +11,8 @@
projectile = /obj/item/projectile/arc/fragmentation/mortar
projectile_energy_cost = 600
+ step_delay = 2
+
origin_tech = list(TECH_MATERIAL = 4, TECH_COMBAT = 5, TECH_ILLEGAL = 3)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/mortar/action_checks(atom/target)
diff --git a/code/game/mecha/equipment/weapons/ballistic/shotgun.dm b/code/game/mecha/equipment/weapons/ballistic/shotgun.dm
index d2232d0004..e6b12d8ebd 100644
--- a/code/game/mecha/equipment/weapons/ballistic/shotgun.dm
+++ b/code/game/mecha/equipment/weapons/ballistic/shotgun.dm
@@ -11,6 +11,8 @@
deviation = 0.7
projectile_energy_cost = 25
+ step_delay = 2
+
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 4)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged
diff --git a/code/game/mecha/equipment/weapons/energy/laser.dm b/code/game/mecha/equipment/weapons/energy/laser.dm
index 8bdcbcf71f..0dfcbd1328 100644
--- a/code/game/mecha/equipment/weapons/energy/laser.dm
+++ b/code/game/mecha/equipment/weapons/energy/laser.dm
@@ -52,6 +52,8 @@
projectile = /obj/item/projectile/beam/heavylaser
fire_sound = 'sound/weapons/lasercannonfire.ogg'
+ step_delay = 2
+
origin_tech = list(TECH_MATERIAL = 3, TECH_COMBAT = 4, TECH_MAGNET = 4)
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/rigged
diff --git a/code/game/mecha/equipment/weapons/explosive/missile.dm b/code/game/mecha/equipment/weapons/explosive/missile.dm
index 1c14a8c1dd..df8cf0c3bb 100644
--- a/code/game/mecha/equipment/weapons/explosive/missile.dm
+++ b/code/game/mecha/equipment/weapons/explosive/missile.dm
@@ -2,6 +2,8 @@
var/missile_speed = 2
var/missile_range = 30
+ step_delay = 2
+
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/Fire(atom/movable/AM, atom/target, turf/aimloc)
AM.throw_at(target,missile_range, missile_speed, chassis)
@@ -19,6 +21,8 @@
missile_range = 15
required_type = /obj/mecha //Why restrict it to just mining or combat mechs?
+ step_delay = 0
+
equip_type = EQUIP_UTILITY
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flare/Fire(atom/movable/AM, atom/target, turf/aimloc)
diff --git a/code/game/mecha/equipment/weapons/fire/flamethrower.dm b/code/game/mecha/equipment/weapons/fire/flamethrower.dm
index f97f598e24..532c35a6b4 100644
--- a/code/game/mecha/equipment/weapons/fire/flamethrower.dm
+++ b/code/game/mecha/equipment/weapons/fire/flamethrower.dm
@@ -7,6 +7,8 @@
energy_drain = 30
+ step_delay = 2
+
projectile = /obj/item/projectile/bullet/incendiary/flamethrower/large
fire_sound = 'sound/weapons/towelwipe.ogg'
diff --git a/code/game/mecha/equipment/weapons/fire/incendiary.dm b/code/game/mecha/equipment/weapons/fire/incendiary.dm
index 3d3c174839..ff49d42016 100644
--- a/code/game/mecha/equipment/weapons/fire/incendiary.dm
+++ b/code/game/mecha/equipment/weapons/fire/incendiary.dm
@@ -16,3 +16,5 @@
projectile_energy_cost = 40
fire_cooldown = 3
origin_tech = list(TECH_MATERIAL = 4, TECH_COMBAT = 5, TECH_PHORON = 2, TECH_ILLEGAL = 1)
+
+ step_delay = 1
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 355ce629ac..9dccf551c9 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -12,6 +12,8 @@
var/auto_rearm = 0 //Does the weapon reload itself after each shot?
required_type = list(/obj/mecha/combat, /obj/mecha/working/hoverpod/combatpod)
+ step_delay = 1
+
equip_type = EQUIP_WEAPON
/obj/item/mecha_parts/mecha_equipment/weapon/action_checks(atom/target)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index ca2bcab7b9..dec98745c8 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -7,6 +7,11 @@
#define MELEE 1
#define RANGED 2
+#define MECHA_OPERATING 0
+#define MECHA_BOLTS_SECURED 1
+#define MECHA_PANEL_LOOSE 2
+#define MECHA_CELL_OPEN 3
+#define MECHA_CELL_OUT 4
#define MECH_FACTION_NT "nano"
#define MECH_FACTION_SYNDI "syndi"
@@ -48,7 +53,7 @@
var/fail_penetration_value = 0.66 //By how much failing to penetrate reduces your shit. 66% by default.
var/obj/item/weapon/cell/cell
- var/state = 0
+ var/state = MECHA_OPERATING
var/list/log = new
var/last_message = 0
var/add_req_access = 1
@@ -108,6 +113,24 @@
var/max_universal_equip = 2
var/max_special_equip = 1
+ var/list/starting_equipment = null // List containing starting tools.
+
+// Mech Components, similar to Cyborg, but Bigger.
+ var/list/internal_components = list(
+ MECH_HULL = null,
+ MECH_ACTUATOR = null,
+ MECH_ARMOR = null,
+ MECH_GAS = null,
+ MECH_ELECTRIC = null
+ )
+ var/list/starting_components = list(
+ /obj/item/mecha_parts/component/hull,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
//Working exosuit vars
var/list/cargo = list()
var/cargo_capacity = 3
@@ -139,7 +162,7 @@
var/phasing_possible = 0 //This is to allow phasing.
var/can_phase = TRUE //This is an internal check during the relevant procs.
var/phasing_energy_drain = 200
-
+
var/switch_dmg_type_possible = 0 //Can you switch damage type? It is mostly for the Phazon and its children.
var/smoke_possible = 0
@@ -148,6 +171,8 @@
var/smoke_cooldown = 100 //How long you have between uses.
var/datum/effect/effect/system/smoke_spread/smoke_system = new
+ var/cloak_possible = FALSE // Can this exosuit innately cloak?
+
////All of those are for the HUD buttons in the top left. See Grant and Remove procs in mecha_actions.
var/datum/action/innate/mecha/mech_eject/eject_action = new
@@ -164,10 +189,20 @@
var/datum/action/innate/mecha/mech_cycle_equip/cycle_action = new
var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new
var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new
+ var/datum/action/innate/mecha/mech_toggle_cloaking/cloak_action = new
var/weapons_only_cycle = FALSE //So combat mechs don't switch to their equipment at times.
+/obj/mecha/Initialize()
+ ..()
+ for(var/path in starting_components)
+ var/obj/item/mecha_parts/component/C = new path(src)
+ C.attach(src)
+ if(starting_equipment && LAZYLEN(starting_equipment))
+ for(var/path in starting_equipment)
+ var/obj/item/mecha_parts/mecha_equipment/ME = new path(src)
+ ME.attach(src)
/obj/mecha/drain_power(var/drain_check)
@@ -245,6 +280,15 @@
else
E.forceMove(loc)
E.destroy()
+
+ for(var/slot in internal_components)
+ var/obj/item/mecha_parts/component/C = internal_components[slot]
+ if(istype(C))
+ C.damage_part(rand(10, 20))
+ C.detach()
+ WR.crowbar_salvage += C
+ C.forceMove(WR)
+
if(cell)
WR.crowbar_salvage += cell
cell.forceMove(WR)
@@ -256,6 +300,11 @@
for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
E.detach(loc)
E.destroy()
+ for(var/slot in internal_components)
+ var/obj/item/mecha_parts/component/C = internal_components[slot]
+ if(istype(C))
+ C.detach()
+ qdel(C)
if(cell)
qdel(cell)
if(internal_tank)
@@ -351,6 +400,26 @@
/obj/mecha/examine(mob/user)
. = ..()
+
+ var/obj/item/mecha_parts/component/armor/AC = internal_components[MECH_ARMOR]
+
+ var/obj/item/mecha_parts/component/hull/HC = internal_components[MECH_HULL]
+
+ if(AC)
+ . += "It has [AC] attached. [AC.get_efficiency()<0.5?"It is severely damaged.":""]"
+ else
+ . += "It has no armor plating."
+
+ if(HC)
+ if(!AC || AC.get_efficiency() < 0.7)
+ . += "It has [HC] attached. [HC.get_efficiency()<0.5?"It is severely damaged.":""]"
+ else
+ . += "You cannot tell what type of hull it has."
+
+ else
+ . += "It does not seem to have a completed hull."
+
+
var/integrity = health/initial(health)*100
switch(integrity)
if(85 to 100)
@@ -536,6 +605,12 @@
user.forceMove(get_turf(src))
to_chat(user, "You climb out from [src]")
return 0
+
+ var/obj/item/mecha_parts/component/hull/HC = internal_components[MECH_HULL]
+ if(!HC)
+ occupant_message("You can't operate an exosuit that doesn't have a hull! ")
+ return
+
if(connected_port)
if(world.time - last_message > 20)
src.occupant_message("Unable to move while connected to the air system port ")
@@ -562,6 +637,44 @@
return call((proc_res["dyndomove"]||src), "dyndomove")(direction)
+/obj/mecha/proc/get_step_delay()
+ var/tally = 0
+
+ if(overload)
+ tally = min(1, round(step_in/2))
+
+ for(var/slot in internal_components)
+ var/obj/item/mecha_parts/component/C = internal_components[slot]
+ if(C && C.get_step_delay())
+ tally += C.get_step_delay()
+
+ for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
+ if(ME.get_step_delay())
+ tally += ME.get_step_delay()
+
+ var/obj/item/mecha_parts/component/actuator/actuator = internal_components[MECH_ACTUATOR]
+
+ if(!actuator) // Relying purely on hydraulic pumps. You're going nowhere fast.
+ tally = 2 SECONDS
+
+ return tally
+
+ tally += 0.5 SECONDS * (1 - actuator.get_efficiency()) // Damaged actuators run slower, slowing as damage increases beyond its threshold.
+
+ if(strafing)
+ tally = round(tally * actuator.strafing_multiplier)
+
+ for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
+ if(istype(ME, /obj/item/mecha_parts/mecha_equipment/speedboost))
+ var/obj/item/mecha_parts/mecha_equipment/speedboost/SB = ME
+ for(var/path in ME.required_type)
+ if(istype(src, path))
+ tally = round(tally * SB.slowdown_multiplier)
+ break
+ break
+
+ return max(1, round(tally))
+
/obj/mecha/proc/dyndomove(direction)
if(!can_move)
return 0
@@ -600,7 +713,6 @@
health--
if(health < initial(health) - initial(health)/3)
overload = 0
- step_in = initial(step_in)
step_energy_drain = initial(step_energy_drain)
src.occupant_message("Leg actuators damage threshold exceded. Disabling overload. ")
@@ -656,7 +768,7 @@
if(!src.check_for_support())
src.pr_inertial_movement.start(list(src,direction))
src.log_message("Movement control lost. Inertial movement started. ")
- if(do_after(step_in))
+ if(do_after(get_step_delay()))
can_move = 1
return 1
return 0
@@ -708,7 +820,7 @@
flick("[initial_icon]-phase", src)
src.loc = get_step(src,src.dir)
src.use_power(phasing_energy_drain)
- sleep(step_in*3)
+ sleep(get_step_delay() * 3)
can_phase = TRUE
occupant_message("Phazed.")
. = ..(obstacle)
@@ -785,16 +897,57 @@
update_damage_alerts()
if(amount)
var/damage = absorbDamage(amount,type)
+
+ damage = components_handle_damage(damage,type)
+
health -= damage
+
update_health()
log_append_to_last("Took [damage] points of damage. Damage type: \"[type]\".",1)
return
+/obj/mecha/proc/components_handle_damage(var/damage, var/type = BRUTE)
+ var/obj/item/mecha_parts/component/armor/AC = internal_components[MECH_ARMOR]
+
+ if(AC)
+ var/armor_efficiency = AC.get_efficiency()
+ var/damage_change = armor_efficiency * (damage * 0.5) * AC.damage_absorption[type]
+ AC.damage_part(damage_change, type)
+ damage -= damage_change
+
+ var/obj/item/mecha_parts/component/hull/HC = internal_components[MECH_HULL]
+
+ if(HC)
+ if(HC.integrity)
+ var/hull_absorb = round(rand(5, 10) / 10, 0.1) * damage
+ HC.damage_part(hull_absorb, type)
+ damage -= hull_absorb
+
+ for(var/obj/item/mecha_parts/component/C in (internal_components - list(MECH_HULL, MECH_ARMOR)))
+ if(prob(C.relative_size))
+ var/damage_part_amt = round(damage / 4, 0.1)
+ C.damage_part(damage_part_amt)
+ damage -= damage_part_amt
+
+ return damage
+
+/obj/mecha/proc/get_damage_absorption()
+ var/obj/item/mecha_parts/component/armor/AC = internal_components[MECH_ARMOR]
+
+ if(!istype(AC))
+ return
+
+ else
+ if(AC.get_efficiency() > 0.25)
+ return AC.damage_absorption
+
+ return
+
/obj/mecha/proc/absorbDamage(damage,damage_type)
return call((proc_res["dynabsorbdamage"]||src), "dynabsorbdamage")(damage,damage_type)
/obj/mecha/proc/dynabsorbdamage(damage,damage_type)
- return damage*(listgetindex(damage_absorption,damage_type) || 1)
+ return damage*(listgetindex(get_damage_absorption(),damage_type) || 1)
/obj/mecha/airlock_crush(var/crush_damage)
..()
@@ -814,14 +967,24 @@
if(user == occupant)
show_radial_occupant(user)
return
-
+
user.setClickCooldown(user.get_attack_speed())
src.log_message("Attack by hand/paw. Attacker - [user].",1)
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+
+ if(!ArmC)
+ temp_deflect_chance = 1
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+
if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user
if(H.species.can_shred(user))
- if(!prob(src.deflect_chance))
+ if(!prob(temp_deflect_chance))
src.take_damage(15) //The take_damage() proc handles armor values
if(prob(25)) //Why would they get free internal damage. At least make it a bit RNG.
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
@@ -838,7 +1001,7 @@
user.visible_message("\The [user] hits \the [src]. Nothing happens. ","You hit \the [src] with no visible effect. ")
src.log_append_to_last("Armor saved.")
return
- else if ((HULK in user.mutations) && !prob(src.deflect_chance))
+ else if ((HULK in user.mutations) && !prob(temp_deflect_chance))
src.take_damage(15) //The take_damage() proc handles armor values
if(prob(25)) //Hulks punch hard but lets not give them consistent internal damage.
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
@@ -856,11 +1019,30 @@
//I think this is relative to throws.
/obj/mecha/proc/dynhitby(atom/movable/A)
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+ var/temp_damage_minimum = damage_minimum
+ var/temp_minimum_penetration = minimum_penetration
+ var/temp_fail_penetration_value = fail_penetration_value
+
+ if(!ArmC)
+ temp_deflect_chance = 0
+ temp_damage_minimum = 0
+ temp_minimum_penetration = 0
+ temp_fail_penetration_value = 1
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+ temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
+ temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
+ temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
+
if(istype(A, /obj/item/mecha_parts/mecha_tracking))
A.forceMove(src)
src.visible_message("The [A] fastens firmly to [src].")
return
- if(prob(src.deflect_chance) || istype(A, /mob))
+ if(prob(temp_deflect_chance) || istype(A, /mob))
src.occupant_message("\The [A] bounces off the armor. ")
src.visible_message("\The [A] bounces off \the [src] armor")
src.log_append_to_last("Armor saved.")
@@ -873,18 +1055,18 @@
var/pass_damage = O.throwforce
var/pass_damage_reduc_mod
- if(pass_damage <= damage_minimum)//Too little to go through.
+ if(pass_damage <= temp_damage_minimum)//Too little to go through.
src.occupant_message("\The [A] bounces off the armor. ")
src.visible_message("\The [A] bounces off \the [src] armor")
return
- else if(O.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
+ else if(O.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
src.occupant_message("\The [A] struggles to bypass \the [src] armor. ")
src.visible_message("\The [A] struggles to bypass \the [src] armor")
- pass_damage_reduc_mod = fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
+ pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
else
- src.occupant_message("\The [A] manages to pierces \the [src] armor. ")
- src.visible_message("\The [A] manages to pierces \the [src] armor")
+ src.occupant_message("\The [A] manages to pierce \the [src] armor. ")
+// src.visible_message("\The [A] manages to pierce \the [src] armor")
pass_damage_reduc_mod = 1
@@ -911,7 +1093,26 @@
return
/obj/mecha/proc/dynbulletdamage(var/obj/item/projectile/Proj)
- if(prob(src.deflect_chance))
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+ var/temp_damage_minimum = damage_minimum
+ var/temp_minimum_penetration = minimum_penetration
+ var/temp_fail_penetration_value = fail_penetration_value
+
+ if(!ArmC)
+ temp_deflect_chance = 0
+ temp_damage_minimum = 0
+ temp_minimum_penetration = 0
+ temp_fail_penetration_value = 1
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+ temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
+ temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
+ temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
+
+ if(prob(temp_deflect_chance))
src.occupant_message("The armor deflects incoming projectile. ")
src.visible_message("The [src.name] armor deflects the projectile")
src.log_append_to_last("Armor saved.")
@@ -930,19 +1131,19 @@
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
pass_damage = ME.handle_projectile_contact(Proj, pass_damage)
- if(pass_damage < damage_minimum)//too pathetic to really damage you.
+ if(pass_damage < temp_damage_minimum)//too pathetic to really damage you.
src.occupant_message("The armor deflects incoming projectile. ")
src.visible_message("The [src.name] armor deflects\the [Proj]")
return
- else if(Proj.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
+ else if(Proj.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
src.occupant_message("\The [Proj] struggles to pierce \the [src] armor. ")
src.visible_message("\The [Proj] struggles to pierce \the [src] armor")
- pass_damage_reduc_mod = fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
+ pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
else //You go through completely because you use AP. Nice.
src.occupant_message("\The [Proj] manages to pierce \the [src] armor. ")
- src.visible_message("\The [Proj] manages to pierce \the [src] armor")
+// src.visible_message("\The [Proj] manages to pierce \the [src] armor")
pass_damage_reduc_mod = 1
pass_damage = (pass_damage_reduc_mod*pass_damage)//Apply damage reduction before usage.
@@ -961,7 +1162,7 @@
Proj.attack_mob(src.occupant, distance)
hit_occupant = 0
else
- if(pass_damage > internal_damage_minimum) //Only decently painful attacks trigger a chance of mech damage.
+ if(pass_damage > internal_damage_minimum) //Only decently painful attacks trigger a chance of mech damage.
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT), 1)
Proj.penetrating--
@@ -974,24 +1175,34 @@
//This refer to whenever you are caught in an explosion.
/obj/mecha/ex_act(severity)
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+
+ if(!ArmC)
+ temp_deflect_chance = 0
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+
src.log_message("Affected by explosion of severity: [severity].",1)
- if(prob(src.deflect_chance))
+ if(prob(temp_deflect_chance))
severity++
src.log_append_to_last("Armor saved, changing severity to [severity].")
switch(severity)
if(1.0)
- qdel(src)
+ src.take_damage(initial(src.health), "bomb")
if(2.0)
if (prob(30))
- qdel(src)
+ src.take_damage(initial(src.health), "bomb")
else
- src.take_damage(initial(src.health)/2) //The take_damage() proc handles armor values
+ src.take_damage(initial(src.health)/2, "bomb")
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
if(3.0)
if (prob(5))
qdel(src)
else
- src.take_damage(initial(src.health)/5) //The take_damage() proc handles armor values
+ src.take_damage(initial(src.health)/5, "bomb")
src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
return
@@ -1038,20 +1249,39 @@
src.log_message("Attacked by [W]. Attacker - [user]")
var/pass_damage_reduc_mod //Modifer for failing to bring AP.
- if(prob(src.deflect_chance)) //Does your attack get deflected outright.
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+ var/temp_damage_minimum = damage_minimum
+ var/temp_minimum_penetration = minimum_penetration
+ var/temp_fail_penetration_value = fail_penetration_value
+
+ if(!ArmC)
+ temp_deflect_chance = 0
+ temp_damage_minimum = 0
+ temp_minimum_penetration = 0
+ temp_fail_penetration_value = 1
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+ temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
+ temp_minimum_penetration = round(ArmC.get_efficiency() * ArmC.minimum_penetration)
+ temp_fail_penetration_value = round(ArmC.get_efficiency() * ArmC.fail_penetration_value)
+
+ if(prob(temp_deflect_chance)) //Does your attack get deflected outright.
src.occupant_message("\The [W] bounces off [src.name]. ")
to_chat(user, "\The [W] bounces off [src.name]. ")
src.log_append_to_last("Armor saved.")
- else if(W.force < damage_minimum) //Is your attack too PATHETIC to do anything. 3 damage to a person shouldn't do anything to a mech.
+ else if(W.force < temp_damage_minimum) //Is your attack too PATHETIC to do anything. 3 damage to a person shouldn't do anything to a mech.
src.occupant_message("\The [W] bounces off the armor. ")
src.visible_message("\The [W] bounces off \the [src] armor")
return
- else if(W.armor_penetration < minimum_penetration) //If you don't have enough pen, you won't do full damage
+ else if(W.armor_penetration < temp_minimum_penetration) //If you don't have enough pen, you won't do full damage
src.occupant_message("\The [W] struggles to bypass \the [src] armor. ")
src.visible_message("\The [W] struggles to bypass \the [src] armor")
- pass_damage_reduc_mod = fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
+ pass_damage_reduc_mod = temp_fail_penetration_value //This will apply to reduce damage to 2/3 or 66% by default
else
pass_damage_reduc_mod = 1 //Just making sure.
@@ -1080,6 +1310,11 @@
to_chat(user, "[src]-MMI interface initialization failed.")
return
+ if(istype(W, /obj/item/device/robotanalyzer))
+ var/obj/item/device/robotanalyzer/RA = W
+ RA.do_scan(src, user)
+ return
+
if(istype(W, /obj/item/mecha_parts/mecha_equipment))
var/obj/item/mecha_parts/mecha_equipment/E = W
spawn()
@@ -1090,6 +1325,20 @@
else
to_chat(user, "You were unable to attach [W] to [src]")
return
+
+ if(istype(W, /obj/item/mecha_parts/component) && state == MECHA_CELL_OUT)
+ var/obj/item/mecha_parts/component/MC = W
+ spawn()
+ if(MC.attach(src))
+ user.drop_item()
+ MC.forceMove(src)
+ user.visible_message("[user] installs \the [W] in \the [src]", "You install \the [W] in \the [src].")
+ return
+
+ if(istype(W, /obj/item/weapon/card/robot))
+ var/obj/item/weapon/card/robot/RoC = W
+ return attackby(RoC.dummy_card, user)
+
if(istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if(add_req_access || maint_access)
if(internals_access_allowed(usr))
@@ -1106,23 +1355,39 @@
else
to_chat(user, "Maintenance protocols disabled by operator. ")
else if(W.is_wrench())
- if(state==1)
- state = 2
+ if(state==MECHA_BOLTS_SECURED)
+ state = MECHA_PANEL_LOOSE
to_chat(user, "You undo the securing bolts.")
- else if(state==2)
- state = 1
+ else if(state==MECHA_PANEL_LOOSE)
+ state = MECHA_BOLTS_SECURED
to_chat(user, "You tighten the securing bolts.")
return
else if(W.is_crowbar())
- if(state==2)
- state = 3
+ if(state==MECHA_PANEL_LOOSE)
+ state = MECHA_CELL_OPEN
to_chat(user, "You open the hatch to the power unit")
- else if(state==3)
- state=2
+ else if(state==MECHA_CELL_OPEN)
+ state=MECHA_PANEL_LOOSE
to_chat(user, "You close the hatch to the power unit")
+ else if(state==MECHA_CELL_OUT)
+ var/list/removable_components = list()
+ for(var/slot in internal_components)
+ var/obj/item/mecha_parts/component/MC = internal_components[slot]
+ if(istype(MC))
+ removable_components[MC.name] = MC
+ else
+ to_chat(user, "\The [src] appears to be missing \the [slot]. ")
+
+ var/remove = input(user, "Which component do you want to pry out?", "Remove Component") as null|anything in removable_components
+ if(!remove)
+ return
+
+ var/obj/item/mecha_parts/component/RmC = removable_components[remove]
+ RmC.detach()
+
return
else if(istype(W, /obj/item/stack/cable_coil))
- if(state == 3 && hasInternalDamage(MECHA_INT_SHORT_CIRCUIT))
+ if(state >= MECHA_CELL_OPEN && hasInternalDamage(MECHA_INT_SHORT_CIRCUIT))
var/obj/item/stack/cable_coil/CC = W
if(CC.use(2))
clearInternalDamage(MECHA_INT_SHORT_CIRCUIT)
@@ -1134,19 +1399,19 @@
if(hasInternalDamage(MECHA_INT_TEMP_CONTROL))
clearInternalDamage(MECHA_INT_TEMP_CONTROL)
to_chat(user, "You repair the damaged temperature controller.")
- else if(state==3 && src.cell)
+ else if(state==MECHA_CELL_OPEN && src.cell)
src.cell.forceMove(src.loc)
src.cell = null
- state = 4
+ state = MECHA_CELL_OUT
to_chat(user, "You unscrew and pry out the powercell.")
src.log_message("Powercell removed")
- else if(state==4 && src.cell)
- state=3
+ else if(state==MECHA_CELL_OUT && src.cell)
+ state=MECHA_CELL_OPEN
to_chat(user, "You screw the cell in place")
return
else if(istype(W, /obj/item/device/multitool))
- if(state>=3 && src.occupant)
+ if(state>=MECHA_CELL_OPEN && src.occupant)
to_chat(user, "You attempt to eject the pilot using the maintenance controls.")
if(src.occupant.stat)
src.go_out()
@@ -1158,7 +1423,7 @@
return
else if(istype(W, /obj/item/weapon/cell))
- if(state==4)
+ if(state==MECHA_CELL_OUT)
if(!src.cell)
to_chat(user, "You install the powercell")
user.drop_item()
@@ -1191,6 +1456,28 @@
user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src]")
return
+ else if(istype(W,/obj/item/stack/nanopaste))
+ if(state >= MECHA_PANEL_LOOSE)
+ var/obj/item/stack/nanopaste/NP = W
+
+ for(var/slot in internal_components)
+ var/obj/item/mecha_parts/component/C = internal_components[slot]
+
+ if(C)
+
+ if(C.integrity < C.max_integrity)
+ while(C.integrity < C.max_integrity && NP && do_after(user, 1 SECOND, src))
+ if(NP.use(1))
+ C.adjust_integrity(10)
+
+ to_chat(user, "You repair damage to \the [C]. ")
+
+ return
+
+ else
+ to_chat(user, "You can't reach \the [src]'s internal components. ")
+ return
+
else
call((proc_res["dynattackby"]||src), "dynattackby")(W,user)
/*
@@ -1299,7 +1586,8 @@
return
/obj/mecha/remove_air(amount)
- if(use_internal_tank)
+ var/obj/item/mecha_parts/component/gas/GC = internal_components[MECH_GAS]
+ if(use_internal_tank && (GC && prob(GC.get_efficiency() * 100)))
return cabin_air.remove(amount)
else
var/turf/T = get_turf(src)
@@ -1314,7 +1602,8 @@
/obj/mecha/proc/return_pressure()
. = 0
- if(use_internal_tank)
+ var/obj/item/mecha_parts/component/gas/GC = internal_components[MECH_GAS]
+ if(use_internal_tank && (GC && prob(GC.get_efficiency() * 100)))
. = cabin_air.return_pressure()
else
var/datum/gas_mixture/t_air = get_turf_air()
@@ -1325,7 +1614,8 @@
//skytodo: //No idea what you want me to do here, mate.
/obj/mecha/proc/return_temperature()
. = 0
- if(use_internal_tank)
+ var/obj/item/mecha_parts/component/gas/GC = internal_components[MECH_GAS]
+ if(use_internal_tank && (GC && prob(GC.get_efficiency() * 100)))
. = cabin_air.temperature
else
var/datum/gas_mixture/t_air = get_turf_air()
@@ -1380,13 +1670,17 @@
set category = "Exosuit Interface"
set src = usr.loc
set popup_menu = 0
-
+
if(!occupant)
return
-
+
if(usr != occupant)
return
-
+
+ var/obj/item/mecha_parts/component/gas/GC = internal_components[MECH_GAS]
+ if(!GC)
+ return
+
for(var/turf/T in locs)
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector) in T
if(possible_port)
@@ -1407,13 +1701,13 @@
set category = "Exosuit Interface"
set src = usr.loc
set popup_menu = 0
-
+
if(!occupant)
return
-
+
if(usr != occupant)
return
-
+
if(disconnect())
occupant_message("[name] disconnects from the port. ")
verbs -= /obj/mecha/verb/disconnect_from_port
@@ -1449,6 +1743,16 @@
/obj/mecha/proc/internal_tank()
if(usr!=src.occupant)
return
+
+ var/obj/item/mecha_parts/component/gas/GC = internal_components[MECH_GAS]
+ if(!GC)
+ to_chat(occupant, "The life support systems don't seem to respond. ")
+ return
+
+ if(!prob(GC.get_efficiency() * 100))
+ to_chat(occupant, "\The [GC] shudders and barks, before returning to how it was before. ")
+ return
+
use_internal_tank = !use_internal_tank
src.occupant_message("Now taking air from [use_internal_tank?"internal airtank":"environment"].")
src.log_message("Now taking air from [use_internal_tank?"internal airtank":"environment"].")
@@ -1579,6 +1883,8 @@
verbs -= /obj/mecha/verb/toggle_phasing
if(!switch_dmg_type_possible)
verbs -= /obj/mecha/verb/switch_damtype
+ if(!cloak_possible)
+ verbs -= /obj/mecha/verb/toggle_cloak
occupant.in_enclosed_vehicle = 1 //Useful for when you need to know if someone is in a mecho.
update_cell_alerts()
@@ -1697,8 +2003,13 @@
/obj/mecha/proc/internals_access_allowed(mob/living/carbon/human/H)
- for(var/atom/ID in list(H.get_active_hand(), H.wear_id, H.belt))
- if(src.check_access(ID,src.internals_req_access))
+ if(istype(H))
+ for(var/atom/ID in list(H.get_active_hand(), H.wear_id, H.belt))
+ if(src.check_access(ID,src.internals_req_access))
+ return 1
+ else if(istype(H, /mob/living/silicon/robot))
+ var/mob/living/silicon/robot/R = H
+ if(src.check_access(R.idcard,src.internals_req_access))
return 1
return 0
@@ -1799,9 +2110,15 @@
var/tank_pressure = internal_tank ? round(internal_tank.return_pressure(),0.01) : "None"
var/tank_temperature = internal_tank ? internal_tank.return_temperature() : "Unknown"
var/cabin_pressure = round(return_pressure(),0.01)
+
+ var/obj/item/mecha_parts/component/hull/HC = internal_components[MECH_HULL]
+ var/obj/item/mecha_parts/component/armor/AC = internal_components[MECH_ARMOR]
+
var/output = {"[report_internal_damage()]
+ Armor Integrity: [AC?"[round(AC.integrity / AC.max_integrity * 100, 0.1)]%":"ARMOR MISSING "]
+ Hull Integrity: [HC?"[round(HC.integrity / HC.max_integrity * 100, 0.1)]%":"HULL MISSING "]
[integrity<30?"DAMAGE LEVEL CRITICAL ":null]
- Integrity: [integrity]%
+ Chassis Integrity: [integrity]%
Powercell charge: [isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]
Air source: [use_internal_tank?"Internal Airtank":"Environment"]
Airtank pressure: [tank_pressure]kPa
@@ -1892,15 +2209,15 @@
output += "Micro Utility Module: [W.name] Detach "
for(var/obj/item/mecha_parts/mecha_equipment/W in micro_weapon_equipment)
output += "Micro Weapon Module: [W.name] Detach "
- output += {"Available hull slots: [max_hull_equip-hull_equipment.len]
- Available weapon slots: [max_weapon_equip-weapon_equipment.len]
- Available micro weapon slots: [max_micro_weapon_equip-micro_weapon_equipment.len]
- Available utility slots: [max_utility_equip-utility_equipment.len]
- Available micro utility slots: [max_micro_utility_equip-micro_utility_equipment.len]
- Available universal slots: [max_universal_equip-universal_equipment.len]
- Available special slots: [max_special_equip-special_equipment.len]
-
- "}
+ output += {"Available hull slots: [max_hull_equip-hull_equipment.len]
+ Available weapon slots: [max_weapon_equip-weapon_equipment.len]
+ Available micro weapon slots: [max_micro_weapon_equip-micro_weapon_equipment.len]
+ Available utility slots: [max_utility_equip-utility_equipment.len]
+ Available micro utility slots: [max_micro_utility_equip-micro_utility_equipment.len]
+ Available universal slots: [max_universal_equip-universal_equipment.len]
+ Available special slots: [max_special_equip-special_equipment.len]
+
+ "}
return output
/obj/mecha/proc/get_equipment_list() //outputs mecha equipment list in html
@@ -2109,15 +2426,15 @@
if(!in_range(src, usr)) return
var/mob/user = top_filter.getMob("user")
if(user)
- if(state==0)
- state = 1
+ if(state==MECHA_OPERATING)
+ state = MECHA_BOLTS_SECURED
to_chat(user, "The securing bolts are now exposed.")
- else if(state==1)
- state = 0
+ else if(state==MECHA_BOLTS_SECURED)
+ state = MECHA_OPERATING
to_chat(user, "The securing bolts are now hidden.")
output_maintenance_dialog(top_filter.getObj("id_card"),user)
return
- if(href_list["set_internal_tank_valve"] && state >=1)
+ if(href_list["set_internal_tank_valve"] && state >=MECHA_BOLTS_SECURED)
if(!in_range(src, usr)) return
var/mob/user = top_filter.getMob("user")
if(user)
@@ -2125,7 +2442,7 @@
if(new_pressure)
internal_tank_valve = new_pressure
to_chat(user, "The internal pressure valve has been set to [internal_tank_valve]kPa.")
- if(href_list["remove_passenger"] && state >= 1)
+ if(href_list["remove_passenger"] && state >= MECHA_BOLTS_SECURED)
var/mob/user = top_filter.getMob("user")
var/list/passengers = list()
for (var/obj/item/mecha_parts/mecha_equipment/tool/passenger/P in contents)
@@ -2284,6 +2601,13 @@
/obj/mecha/proc/dynusepower(amount)
update_cell_alerts()
+ var/obj/item/mecha_parts/component/electrical/EC = internal_components[MECH_ELECTRIC]
+
+ if(EC)
+ amount = amount * (2 - EC.get_efficiency()) * EC.charge_cost_mod
+ else
+ amount *= 5
+
if(get_charge())
cell.use(amount)
return 1
@@ -2291,6 +2615,13 @@
/obj/mecha/proc/give_power(amount)
update_cell_alerts()
+ var/obj/item/mecha_parts/component/electrical/EC = internal_components[MECH_ELECTRIC]
+
+ if(!EC)
+ amount /= 4
+ else
+ amount *= EC.get_efficiency()
+
if(!isnull(get_charge()))
cell.give(amount)
return 1
@@ -2306,6 +2637,19 @@
//This is for mobs mostly.
/obj/mecha/attack_generic(var/mob/user, var/damage, var/attack_message)
+ var/obj/item/mecha_parts/component/armor/ArmC = internal_components[MECH_ARMOR]
+
+ var/temp_deflect_chance = deflect_chance
+ var/temp_damage_minimum = damage_minimum
+
+ if(!ArmC)
+ temp_deflect_chance = 1
+ temp_damage_minimum = 0
+
+ else
+ temp_deflect_chance = round(ArmC.get_efficiency() * ArmC.deflect_chance + (defence_mode ? 25 : 0))
+ temp_damage_minimum = round(ArmC.get_efficiency() * ArmC.damage_minimum)
+
user.setClickCooldown(user.get_attack_speed())
if(!damage)
return 0
@@ -2313,14 +2657,14 @@
src.log_message("Attacked. Attacker - [user].",1)
user.do_attack_animation(src)
- if(prob(src.deflect_chance))//Deflected
+ if(prob(temp_deflect_chance))//Deflected
src.log_append_to_last("Armor saved.")
src.occupant_message("\The [user]'s attack is stopped by the armor. ")
visible_message("\The [user] rebounds off [src.name]'s armor! ")
user.attack_log += text("\[[time_stamp()]\] attacked [src.name] ")
playsound(src, 'sound/weapons/slash.ogg', 50, 1, -1)
- else if(damage < damage_minimum)//Pathetic damage levels just don't harm MECH.
+ else if(damage < temp_damage_minimum)//Pathetic damage levels just don't harm MECH.
src.occupant_message("\The [user]'s doesn't dent \the [src] paint. ")
src.visible_message("\The [user]'s attack doesn't dent \the [src] armor")
src.log_append_to_last("Armor saved.")
diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm
index 33307c77d3..c70c3b9b83 100644
--- a/code/game/mecha/mecha_actions.dm
+++ b/code/game/mecha/mecha_actions.dm
@@ -3,7 +3,7 @@
//THIS FILE CONTAINS THE CODE TO ADD THE HUD BUTTONS AND THE MECH ACTIONS THEMSELVES.
//
//
-// I better get some free food for this..
+// I better get some free food for this..
@@ -35,7 +35,9 @@
phasing_action.Grant(user, src)
if(switch_dmg_type_possible)
switch_damtype_action.Grant(user, src)
-
+ if(cloak_possible)
+ cloak_action.Grant(user, src)
+
/obj/mecha/proc/RemoveActions(mob/living/user, human_occupant = 0)
if(human_occupant)
eject_action.Remove(user, src)
@@ -51,8 +53,8 @@
thrusters_action.Remove(user, src)
phasing_action.Remove(user, src)
switch_damtype_action.Remove(user, src)
- overload_action.Remove(user, src)
-
+ overload_action.Remove(user, src)
+ cloak_action.Remove(user, src)
//
@@ -242,6 +244,15 @@
+/datum/action/innate/mecha/mech_toggle_cloaking
+ name = "Toggle Mech phasing"
+ button_icon_state = "mech_phasing_off"
+
+/datum/action/innate/mecha/mech_toggle_cloaking/Activate()
+ button_icon_state = "mech_phasing_[chassis.cloaked ? "off" : "on"]"
+ button.UpdateIcon()
+ chassis.toggle_cloaking()
+
/////
@@ -293,12 +304,10 @@
return
if(overload)
overload = 0
- step_in = initial(step_in)
step_energy_drain = initial(step_energy_drain)
src.occupant_message("You disable leg actuators overload. ")
else
overload = 1
- step_in = min(1, round(step_in/2))
step_energy_drain = step_energy_drain*overload_coeff
src.occupant_message("You enable leg actuators overload. ")
src.log_message("Toggled leg actuators overload.")
@@ -324,7 +333,7 @@
if(smoke_ready)
smoke_reserve-- //Remove ammo
src.occupant_message("Smoke fired. [smoke_reserve] usages left. ")
-
+
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.attach(src)
smoke.set_up(10, 0, usr.loc)
@@ -422,6 +431,25 @@
return
+/obj/mecha/verb/toggle_cloak()
+ set category = "Exosuit Interface"
+ set name = "Toggle cloaking"
+ set src = usr.loc
+ set popup_menu = 0
+ toggle_cloaking()
+
+/obj/mecha/proc/toggle_cloaking()
+ if(usr!=src.occupant)
+ return
+
+ if(cloaked)
+ uncloak()
+ else
+ cloak()
+
+ src.occupant_message("En":"#f00\">Dis"]abled cloaking. ")
+ return
+
/obj/mecha/verb/toggle_weapons_only_cycle()
set category = "Exosuit Interface"
set name = "Toggle weapons only cycling"
@@ -435,4 +463,3 @@
weapons_only_cycle = !weapons_only_cycle
src.occupant_message("En":"#f00\">Dis"]abled weapons only cycling. ")
return
-
diff --git a/code/game/mecha/medical/medical.dm b/code/game/mecha/medical/medical.dm
index 6e9dee5047..973ddec3fc 100644
--- a/code/game/mecha/medical/medical.dm
+++ b/code/game/mecha/medical/medical.dm
@@ -9,6 +9,14 @@
cargo_capacity = 1
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/lightweight,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
/obj/mecha/medical/Initialize()
. = ..()
var/turf/T = get_turf(src)
diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm
index 00be6d3c3f..dbba0cd251 100644
--- a/code/game/mecha/medical/odysseus.dm
+++ b/code/game/mecha/medical/odysseus.dm
@@ -1,4 +1,4 @@
-/obj/mecha/medical/odysseus/
+/obj/mecha/medical/odysseus
desc = "These exosuits are developed and produced by Vey-Med. (© All rights reserved)."
name = "Odysseus"
catalogue_data = list(
@@ -9,8 +9,8 @@
initial_icon = "odysseus"
step_in = 2
max_temperature = 15000
- health = 120
- maxhealth = 120
+ health = 70
+ maxhealth = 70
wreckage = /obj/effect/decal/mecha_wreckage/odysseus
internal_damage_threshold = 35
deflect_chance = 15
@@ -139,5 +139,5 @@
/obj/mecha/medical/odysseus/old/New()
..()
health = 25
- maxhealth = 100 //Just slightly worse.
+ maxhealth = 50 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/micro/micro.dm b/code/game/mecha/micro/micro.dm
index 0b1e340487..97f86f7472 100644
--- a/code/game/mecha/micro/micro.dm
+++ b/code/game/mecha/micro/micro.dm
@@ -28,7 +28,8 @@
//operation_req_access = list(access_hos)
damage_absorption = list("brute"=1,"fire"=1,"bullet"=1,"laser"=1,"energy"=1,"bomb"=1)
var/am = "d3c2fbcadca903a41161ccc9df9cf948"
-
+ damage_minimum = 0 //Incoming damage lower than this won't actually deal damage. Scrapes shouldn't be a real thing.
+ minimum_penetration = 0 //Incoming damage won't be fully applied if you don't have at least 20. Almost all AP clears this.
/obj/mecha/micro/melee_action(target as obj|mob|turf)
if(internal_damage&MECHA_INT_CONTROL_LOST)
diff --git a/code/game/mecha/micro/security.dm b/code/game/mecha/micro/security.dm
index 57bc57eed3..d6d054a4f5 100644
--- a/code/game/mecha/micro/security.dm
+++ b/code/game/mecha/micro/security.dm
@@ -30,6 +30,7 @@
max_equip = 3
max_micro_utility_equip = 0
max_micro_weapon_equip = 3
+ damage_minimum = 5 //A teeny bit of armor
/obj/effect/decal/mecha_wreckage/micro/sec/polecat
name = "Polecat wreckage"
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index 5bfe3b4395..86405b6934 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -14,6 +14,14 @@
minimum_penetration = 10
+ starting_components = list(
+ /obj/item/mecha_parts/component/hull/durable,
+ /obj/item/mecha_parts/component/actuator,
+ /obj/item/mecha_parts/component/armor/mining,
+ /obj/item/mecha_parts/component/gas,
+ /obj/item/mecha_parts/component/electrical
+ )
+
/obj/mecha/working/ripley/Destroy()
for(var/atom/movable/A in src.cargo)
A.loc = loc
diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm
index 0ad5ac13f8..934068f25b 100644
--- a/code/game/objects/effects/decals/Cleanable/tracks.dm
+++ b/code/game/objects/effects/decals/Cleanable/tracks.dm
@@ -46,6 +46,8 @@ var/global/list/image/fluidtrack_cache=list()
var/coming_state="blood1"
var/going_state="blood2"
var/updatedtracks=0
+ persistent = TRUE
+ generic_filth = FALSE
// dir = id in stack
var/list/setdirs=list(
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 179b996df9..2ef6582553 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -1,3 +1,10 @@
+/*
+USAGE NOTE
+For decals, the var Persistent = 'has already been saved', and is primarily used to prevent duplicate savings of generic filth (filth.dm).
+This also means 'TRUE' can be used to define a decal as "Do not save at all, even as a generic replacement." if a dirt decal is considered 'too common' to save.
+generic_filth = TRUE means when the decal is saved, it will be switched out for a generic green 'filth' decal.
+*/
+
/obj/effect/decal/cleanable
plane = DIRTY_PLANE
var/persistent = FALSE
diff --git a/code/game/objects/effects/map_effects/perma_light.dm b/code/game/objects/effects/map_effects/perma_light.dm
index 281c128fe6..a48e768fc7 100644
--- a/code/game/objects/effects/map_effects/perma_light.dm
+++ b/code/game/objects/effects/map_effects/perma_light.dm
@@ -14,4 +14,15 @@
light_range = 5
light_power = 3
- light_color = "#FFFFFF"
\ No newline at end of file
+ light_color = "#FFFFFF"
+
+/obj/effect/map_effect/perma_light/concentrated
+ name = "permanent light (concentrated)"
+
+ light_range = 2
+ light_power = 5
+
+/obj/effect/map_effect/perma_light/concentrated/incandescent
+ name = "permanent light (concentrated incandescent)"
+
+ light_color = LIGHT_COLOR_INCANDESCENT_TUBE
\ No newline at end of file
diff --git a/code/game/objects/effects/map_effects/portal.dm b/code/game/objects/effects/map_effects/portal.dm
new file mode 100644
index 0000000000..93cbd0c53f
--- /dev/null
+++ b/code/game/objects/effects/map_effects/portal.dm
@@ -0,0 +1,344 @@
+GLOBAL_LIST_EMPTY(all_portal_masters)
+
+/*
+
+Portal map effects allow a mapper to join two distant places together, while looking somewhat seamlessly connected.
+This can allow for very strange PoIs that twist and turn in what appear to be physically impossible ways.
+
+Portals do have some specific requirements when mapping them in;
+ - There must by one, and only one `/obj/effect/map_effect/portal/master` for each side of a portal.
+ - Both sides need to have matching `portal_id`s in order to link to each other.
+ - Each side must face opposite directions, e.g. if side A faces SOUTH, side B must face NORTH.
+ - Each side must have the same orientation, e.g. horizontal on both sides, or vertical on both sides.
+ - Portals can be made to be longer than 1x1 with `/obj/effect/map_effect/portal/line`s,
+ but both sides must have the same length.
+ - If portal lines are added, they must form a straight line and be next to a portal master or another portal line.
+ - If portal lines are used, both portal masters should be in the same relative position among the lines.
+ E.g. both being on the left most side on a horizontal row.
+
+Portals also have some limitations to be aware of when mapping. Some of these are not an issue if you're trying to make an 'obvious' portal;
+ - The objects seen through portals are purely visual, which has many implications,
+ such as simple_mob AIs being blind to mobs on the other side of portals.
+ - Objects on the other side of a portal can be interacted with if the interaction has no range limitation,
+ or the distance between the two portal sides happens to be less than the interaction max range. Examine will probably work,
+ while picking up an item that appears to be next to you will fail.
+ - Sounds currently are not carried across portals.
+ - Mismatched lighting between each portal end can make the portal look obvious.
+ - Portals look weird when observing as a ghost, or otherwise when able to see through walls. Meson vision will also spoil the illusion.
+ - Walls that change icons based on neightboring walls can give away that a portal is nearby if both sides don't have a similar transition.
+ - Projectiles that pass through portals will generally work as intended, however aiming and firing upon someone on the other side of a portal
+ will likely be weird due to the click targeting the real position of the thing clicked instead of the apparent position.
+ Thrown objects suffer a similar fate.
+ - The tiles that are visually shown across a portal are determined based on visibility at the time of portal initialization,
+ and currently don't update, meaning that opacity changes are not reflected, e.g. a wall is deconstructed, or an airlock is opened.
+ - There is currently a small but somewhat noticable pause in mob movement when moving across a portal,
+ as a result of the mob's glide animation being inturrupted by a teleport.
+ - Gas is not transferred through portals, and ZAS is oblivious to them.
+
+A lot of those limitations can potentially be solved with some more work. Otherwise, portals work best in static environments like Points of Interest,
+when portals are shortly lived, or when portals are made to be obvious with special effects.
+*/
+
+/obj/effect/map_effect/portal
+ name = "portal subtype"
+ invisibility = 0
+ opacity = TRUE
+ plane = TURF_PLANE
+ layer = ABOVE_TURF_LAYER
+ appearance_flags = PIXEL_SCALE|KEEP_TOGETHER // Removed TILE_BOUND so things not visible on the other side stay hidden from the viewer.
+
+ var/obj/effect/map_effect/portal/counterpart = null // The portal line or master that this is connected to, on the 'other side'.
+
+ // Information used to apply `pixel_[x|y]` offsets so that the visuals line up.
+ // Set automatically by `calculate_dimensions()`.
+ var/total_height = 0 // Measured in tiles.
+ var/total_width = 0
+
+ var/portal_distance_x = 0 // How far the portal is from the left edge, in tiles.
+ var/portal_distance_y = 0 // How far the portal is from the top edge.
+
+/obj/effect/map_effect/portal/Destroy()
+ vis_contents = null
+ if(counterpart)
+ counterpart.counterpart = null // Disconnect our counterpart from us
+ counterpart = null // Now disconnect us from them.
+ return ..()
+
+// Called when something touches the portal, and usually teleports them to the other side.
+/obj/effect/map_effect/portal/Crossed(atom/movable/AM)
+ if(AM.is_incorporeal())
+ return
+ ..()
+ if(!AM)
+ return
+ if(!counterpart)
+ return
+
+ go_through_portal(AM)
+
+
+/obj/effect/map_effect/portal/proc/go_through_portal(atom/movable/AM)
+ // TODO: Find a way to fake the glide or something.
+ if(isliving(AM))
+ var/mob/living/L = AM
+ if(L.pulling)
+ var/atom/movable/pulled = L.pulling
+ L.stop_pulling()
+ // For some reason, trying to put the pulled object behind the person makes the drag stop and it doesn't even move to the other side.
+ // pulled.forceMove(get_turf(counterpart))
+ pulled.forceMove(counterpart.get_focused_turf())
+ L.forceMove(counterpart.get_focused_turf())
+ L.start_pulling(pulled)
+ else
+ L.forceMove(counterpart.get_focused_turf())
+ else
+ AM.forceMove(counterpart.get_focused_turf())
+
+// 'Focused turf' is the turf directly in front of a portal,
+// and it is used both as the destination when crossing, as well as the PoV for visuals.
+/obj/effect/map_effect/portal/proc/get_focused_turf()
+ return get_step(get_turf(src), dir)
+
+// Determines the size of the block of turfs inside `vis_contents`, and where the portal is in relation to that.
+/obj/effect/map_effect/portal/proc/calculate_dimensions()
+ var/highest_x = 0
+ var/lowest_x = 0
+
+ var/highest_y = 0
+ var/lowest_y = 0
+
+ // First pass is for finding the top right corner.
+ for(var/thing in vis_contents)
+ var/turf/T = thing
+ if(T.x > highest_x)
+ highest_x = T.x
+ if(T.y > highest_y)
+ highest_y = T.y
+
+ lowest_x = highest_x
+ lowest_y = highest_y
+
+ // Second one is for the bottom left corner.
+ for(var/thing in vis_contents)
+ var/turf/T = thing
+ if(T.x < lowest_x)
+ lowest_x = T.x
+ if(T.y < lowest_y)
+ lowest_y = T.y
+
+ // Now calculate the dimensions.
+ total_width = (highest_x - lowest_x) + 1
+ total_height = (highest_y - lowest_y) + 1
+
+ // Find how far the portal is from the edges.
+ var/turf/focused_T = counterpart.get_focused_turf()
+ portal_distance_x = lowest_x - focused_T.x
+ portal_distance_y = lowest_y - focused_T.y
+
+
+// Portal masters manage everything else involving portals.
+// This is the base type. Use `/side_a` or `/side_b` with matching IDs for actual portals.
+/obj/effect/map_effect/portal/master
+ name = "portal master"
+ show_messages = TRUE // So portals can hear and see, and relay to the other side.
+ var/portal_id = "test" // For a portal to be made, both the A and B sides need to share the same ID value.
+ var/list/portal_lines = list()
+
+/obj/effect/map_effect/portal/master/Initialize()
+ GLOB.all_portal_masters += src
+ find_lines()
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/effect/map_effect/portal/master/LateInitialize()
+ find_counterparts()
+ make_visuals()
+ apply_offset()
+
+/obj/effect/map_effect/portal/master/Destroy()
+ GLOB.all_portal_masters -= src
+ for(var/thing in portal_lines)
+ qdel(thing)
+ return ..()
+
+/obj/effect/map_effect/portal/master/proc/find_lines()
+ var/list/dirs_to_search = list( turn(dir, 90), turn(dir, -90) )
+
+ for(var/dir_to_search in dirs_to_search)
+ var/turf/current_T = get_turf(src)
+ while(current_T)
+ current_T = get_step(current_T, dir_to_search)
+ var/obj/effect/map_effect/portal/line/line = locate() in current_T
+ if(line)
+ portal_lines += line
+ line.my_master = src
+ else
+ break
+
+// Connects both sides of a portal together.
+/obj/effect/map_effect/portal/master/proc/find_counterparts()
+ for(var/thing in GLOB.all_portal_masters)
+ var/obj/effect/map_effect/portal/master/M = thing
+ if(M == src)
+ continue
+ if(M.counterpart)
+ continue
+
+ if(M.portal_id == src.portal_id)
+ counterpart = M
+ M.counterpart = src
+ if(portal_lines.len)
+ for(var/i = 1 to portal_lines.len)
+ var/obj/effect/map_effect/portal/line/our_line = portal_lines[i]
+ var/obj/effect/map_effect/portal/line/their_line = M.portal_lines[i]
+ our_line.counterpart = their_line
+ their_line.counterpart = our_line
+ break
+
+ if(!counterpart)
+ crash_with("Portal master [type] ([x],[y],[z]) could not find another portal master with a matching portal_id ([portal_id]).")
+
+/obj/effect/map_effect/portal/master/proc/make_visuals()
+ var/list/observed_turfs = list()
+ for(var/thing in portal_lines + src)
+ var/obj/effect/map_effect/portal/P = thing
+ P.name = null
+ P.icon_state = null
+
+ if(!P.counterpart)
+ return
+
+ var/turf/T = P.counterpart.get_focused_turf()
+ P.vis_contents += T
+
+ var/list/things = dview(world.view, T)
+ for(var/turf/turf in things)
+ if(get_dir(turf, T) & P.dir)
+ if(turf in observed_turfs) // Avoid showing the same turf twice or more for improved performance.
+ continue
+
+ P.vis_contents += turf
+ observed_turfs += turf
+
+ P.calculate_dimensions()
+
+// Shifts the portal's pixels in order to line up properly, as BYOND offsets the sprite when it holds multiple turfs inside `vis_contents`.
+// This undos the shift that BYOND did.
+/obj/effect/map_effect/portal/master/proc/apply_offset()
+ for(var/thing in portal_lines + src)
+ var/obj/effect/map_effect/portal/P = thing
+
+ P.pixel_x = WORLD_ICON_SIZE * P.portal_distance_x
+ P.pixel_y = WORLD_ICON_SIZE * P.portal_distance_y
+
+// Allows portals to transfer emotes.
+// Only portal masters do this to avoid flooding the other side with duplicate messages.
+/obj/effect/map_effect/portal/master/see_emote(mob/M, text)
+ if(!counterpart)
+ return
+ var/turf/T = counterpart.get_focused_turf()
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/thing in mobs_to_relay)
+ var/mob/mob = thing
+ var/rendered = "[text] "
+ mob.show_message(rendered)
+
+ ..()
+
+// Allows portals to transfer visible messages.
+/obj/effect/map_effect/portal/master/show_message(msg, type, alt, alt_type)
+ if(!counterpart)
+ return
+ var/rendered = "[msg] "
+ var/turf/T = counterpart.get_focused_turf()
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/thing in mobs_to_relay)
+ var/mob/mob = thing
+ mob.show_message(rendered)
+
+ ..()
+
+// Allows portals to transfer speech.
+/obj/effect/map_effect/portal/master/hear_talk(mob/M, list/message_pieces, verb)
+ if(!counterpart)
+ return
+ var/turf/T = counterpart.get_focused_turf()
+ var/list/in_range = get_mobs_and_objs_in_view_fast(T, world.view, 0)
+ var/list/mobs_to_relay = in_range["mobs"]
+
+ for(var/thing in mobs_to_relay)
+ var/mob/mob = thing
+ var/message = mob.combine_message(message_pieces, verb, M)
+ var/name_used = M.GetVoice()
+ var/rendered = null
+ rendered = "[name_used] [message] "
+ mob.show_message(rendered, 2)
+
+ ..()
+
+// Returns the position that an atom that's hopefully on the other side of the portal would be if it were really there.
+// Z levels not taken into account.
+/obj/effect/map_effect/portal/master/proc/get_apparent_position(atom/A)
+ if(!counterpart)
+ return null
+
+ var/turf/true_turf = get_turf(A)
+ var/obj/effect/map_effect/portal/master/other_master = counterpart
+
+ var/in_vis_contents = FALSE
+ for(var/thing in other_master.portal_lines + other_master)
+ var/obj/effect/map_effect/portal/P = thing
+ if(P in true_turf.vis_locs)
+ in_vis_contents = TRUE
+ break
+
+ if(!in_vis_contents)
+ return null // Not in vision of the other portal.
+
+ var/turf/their_focus = counterpart.get_focused_turf()
+ var/turf/our_focus = get_focused_turf()
+
+ var/relative_x = (true_turf.x - our_focus.x)
+ relative_x += SIGN(relative_x)
+ var/relative_y = (true_turf.y - our_focus.y)
+ relative_y += SIGN(relative_y)
+
+ return new /datum/position(their_focus.x + relative_x, their_focus.y + relative_y, our_focus.z)
+
+
+/obj/effect/map_effect/portal/master/side_a
+ name = "portal master A"
+ icon_state = "portal_side_a"
+// color = "#00FF00"
+
+/obj/effect/map_effect/portal/master/side_b
+ name = "portal master B"
+ icon_state = "portal_side_b"
+// color = "#FF0000"
+
+
+
+// Portal lines extend out from the sides of portal masters,
+// They let portals be longer than 1x1.
+// Both sides MUST be the same length, meaning if side A is 1x3, side B must also be 1x3.
+/obj/effect/map_effect/portal/line
+ name = "portal line"
+ var/obj/effect/map_effect/portal/master/my_master = null
+
+/obj/effect/map_effect/portal/line/Destroy()
+ if(my_master)
+ my_master.portal_lines -= src
+ my_master = null
+ return ..()
+
+/obj/effect/map_effect/portal/line/side_a
+ name = "portal line A"
+ icon_state = "portal_line_side_a"
+
+/obj/effect/map_effect/portal/line/side_b
+ name = "portal line B"
+ icon_state = "portal_line_side_b"
\ No newline at end of file
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 5ff1f46cde..c949884c6f 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -136,10 +136,10 @@ HALOGEN COUNTER - Radcount on mobs
for(var/A in C.reagents.reagent_list)
var/datum/reagent/R = A
if(R.scannable)
- reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name] "
+ reagentdata["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose " : ""] "
else
unknown++
- unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name] "
+ unknownreagents["[R.id]"] = "\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose " : ""] "
if(reagentdata.len)
dat += "Beneficial reagents detected in subject's blood: "
for(var/d in reagentdata)
@@ -156,14 +156,14 @@ HALOGEN COUNTER - Radcount on mobs
var/stomachreagentdata[0]
var/stomachunknownreagents[0]
for(var/B in C.ingested.reagent_list)
- var/datum/reagent/T = B
- if(T.scannable)
- stomachreagentdata["[T.id]"] = "\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name] "
+ var/datum/reagent/R = B
+ if(R.scannable)
+ stomachreagentdata["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose " : ""] "
if (advscan == 0 || showadvscan == 0)
- dat += "[T.name] found in subject's stomach. "
+ dat += "[R.name] found in subject's stomach. "
else
++unknown
- stomachunknownreagents["[T.id]"] = "\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name] "
+ stomachunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - Overdose " : ""] "
if(advscan >= 1 && showadvscan == 1)
dat += "Beneficial reagents detected in subject's stomach: "
for(var/d in stomachreagentdata)
@@ -180,14 +180,14 @@ HALOGEN COUNTER - Radcount on mobs
var/touchreagentdata[0]
var/touchunknownreagents[0]
for(var/B in C.touching.reagent_list)
- var/datum/reagent/T = B
- if(T.scannable)
- touchreagentdata["[T.id]"] = "\t[round(C.touching.get_reagent_amount(T.id), 1)]u [T.name] "
+ var/datum/reagent/R = B
+ if(R.scannable)
+ touchreagentdata["[R.id]"] = "\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose " : ""] "
if (advscan == 0 || showadvscan == 0)
- dat += "[T.name] found in subject's dermis. "
+ dat += "[R.name] found in subject's dermis. "
else
++unknown
- touchunknownreagents["[T.id]"] = "\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name] "
+ touchunknownreagents["[R.id]"] = "\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - Overdose " : ""] "
if(advscan >= 1 && showadvscan == 1)
dat += "Beneficial reagents detected in subject's dermis: "
for(var/d in touchreagentdata)
diff --git a/code/game/objects/items/devices/translocator_vr.dm b/code/game/objects/items/devices/translocator_vr.dm
index aeda340ac0..7400b14ddb 100644
--- a/code/game/objects/items/devices/translocator_vr.dm
+++ b/code/game/objects/items/devices/translocator_vr.dm
@@ -289,6 +289,16 @@
if(!teleport_checks(target,user))
return //The checks proc can send them a message if it wants.
+ if(istype(target, /mob/living))
+ var/mob/living/L = target
+ if(!L.stat)
+ if(L != user)
+ if(L.a_intent != I_HELP || L.has_AI())
+ to_chat(user, "[L] is resisting your attempt to teleport them with \the [src]. ")
+ to_chat(L, " [user] is trying to teleport you with \the [src]! ")
+ if(!do_after(user, 30, L))
+ return
+
//Bzzt.
ready = 0
power_source.use(charge_cost)
diff --git a/code/game/objects/items/robot/robot_upgrades_vr.dm b/code/game/objects/items/robot/robot_upgrades_vr.dm
index 2bc402b355..ad2556f810 100644
--- a/code/game/objects/items/robot/robot_upgrades_vr.dm
+++ b/code/game/objects/items/robot/robot_upgrades_vr.dm
@@ -28,4 +28,40 @@
return 0
R.verbs += /mob/living/proc/set_size
- return 1
\ No newline at end of file
+ return 1
+
+/obj/item/borg/upgrade/bellysizeupgrade
+ name = "robotic Hound process capacity upgrade Module"
+ desc = "Used to upgrade a hound belly capacity. This only affects total volume and such, you won't be able to support more than one patient. Usable once."
+ icon_state = "cyborg_upgrade2"
+ item_state = "cyborg_upgrade"
+ require_module = 1
+
+/obj/item/borg/upgrade/bellysizeupgrade/action(var/mob/living/silicon/robot/R)
+ if(..()) return 0
+
+ if(!R.module || R.dogborg == FALSE)//can work
+ to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
+ to_chat(usr, "There's no mounting point for the module! Try upgrading another model.")
+ return 0
+
+ var/obj/item/device/dogborg/sleeper/T = locate() in R.module
+ if(!T)
+ T = locate() in R.module.contents
+ if(!T)
+ T = locate() in R.module.modules
+ if(!T)
+ to_chat(usr, "This robot has had its processor removed! ")
+ return 0
+
+ if(T.upgraded_capacity)// == TRUE
+ to_chat(R, "Maximum capacity achieved for this hardpoint!")
+ to_chat(usr, "There's no room for another capacity upgrade!")
+ return 0
+ else
+ var/X = T.max_item_count*2
+ T.max_item_count = X //I couldn't do T = maxitem*2 for some reason.
+ to_chat(R, "Internal capacity doubled.")
+ to_chat(usr, "Internal capacity doubled.")
+ T.upgraded_capacity = TRUE
+ return 1
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index cf0e777e5f..7c3661e3d7 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -425,6 +425,15 @@
return
..()
+/obj/random/mech_toy
+ name = "Random Mech Toy"
+ desc = "This is a random mech toy."
+ icon = 'icons/obj/toy.dmi'
+ icon_state = "ripleytoy"
+
+/obj/random/mech_toy/item_to_spawn()
+ return pick(typesof(/obj/item/toy/prize))
+
/obj/item/toy/prize/ripley
name = "toy ripley"
desc = "Mini-Mecha action figure! Collect them all! 1/11."
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index aafc0d5e98..61e67a4bb4 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -199,6 +199,16 @@
/obj/item/weapon/storage/box/empshells/large
starts_with = list(/obj/item/ammo_casing/a12g/emp = 16)
+/obj/item/weapon/storage/box/flechetteshells
+ name = "box of shotgun flechettes"
+ desc = "It has a picture of a gun and several warning symbols on the front. WARNING: Live ammunition. Misuse may result in serious injury or death."
+ icon_state = "lethalslug_box"
+ item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit")
+ starts_with = list(/obj/item/ammo_casing/a12g/flechette = 8)
+
+/obj/item/weapon/storage/box/flechetteshells/large
+ starts_with = list(/obj/item/ammo_casing/a12g/flechette = 16)
+
/obj/item/weapon/storage/box/sniperammo
name = "box of 14.5mm shells"
desc = "It has a picture of a gun and several warning symbols on the front. WARNING: Live ammunition. Misuse may result in serious injury or death."
diff --git a/code/game/objects/mob_spawner_vr.dm b/code/game/objects/mob_spawner_vr.dm
index 23ec38c907..a3f01c5371 100644
--- a/code/game/objects/mob_spawner_vr.dm
+++ b/code/game/objects/mob_spawner_vr.dm
@@ -30,7 +30,7 @@
/obj/structure/mob_spawner/Destroy()
STOP_PROCESSING(SSobj, src)
for(var/mob/living/L in spawned_mobs)
- L.source_spawner = null
+ L.nest = null
spawned_mobs.Cut()
return ..()
@@ -57,7 +57,7 @@
if(!ispath(mob_path))
return 0
var/mob/living/L = new mob_path(get_turf(src))
- L.source_spawner = src
+ L.nest = src
spawned_mobs.Add(L)
last_spawn = world.time
if(total_spawns > 0)
diff --git a/code/game/objects/random/mob.dm b/code/game/objects/random/mob.dm
index ac89272f52..bd720faed4 100644
--- a/code/game/objects/random/mob.dm
+++ b/code/game/objects/random/mob.dm
@@ -33,7 +33,9 @@
prob(10);/mob/living/simple_mob/animal/passive/mouse,
prob(10);/mob/living/simple_mob/animal/passive/yithian,
prob(10);/mob/living/simple_mob/animal/passive/tindalos,
+ prob(10);/mob/living/simple_mob/animal/passive/pillbug,
prob(10);/mob/living/simple_mob/animal/passive/dog/tamaskan,
+ prob(10);/mob/living/simple_mob/animal/passive/dog/brittany,
prob(3);/mob/living/simple_mob/animal/passive/bird/parrot,
prob(1);/mob/living/simple_mob/animal/passive/crab)
@@ -69,10 +71,12 @@
/obj/random/mob/sif/item_to_spawn()
return pick(prob(30);/mob/living/simple_mob/animal/sif/diyaab,
+ prob(20);/mob/living/simple_mob/animal/passive/hare,
prob(15);/mob/living/simple_mob/animal/passive/crab,
prob(15);/mob/living/simple_mob/animal/passive/penguin,
prob(15);/mob/living/simple_mob/animal/passive/mouse,
prob(15);/mob/living/simple_mob/animal/passive/dog/tamaskan,
+ prob(10);/mob/living/simple_mob/animal/sif/siffet,
prob(2);/mob/living/simple_mob/animal/giant_spider/frost,
prob(1);/mob/living/simple_mob/animal/space/goose,
prob(20);/mob/living/simple_mob/animal/passive/crab)
@@ -88,6 +92,7 @@
/obj/random/mob/sif/peaceful/item_to_spawn()
return pick(prob(30);/mob/living/simple_mob/animal/sif/diyaab,
+ prob(20);/mob/living/simple_mob/animal/passive/hare,
prob(15);/mob/living/simple_mob/animal/passive/crab,
prob(15);/mob/living/simple_mob/animal/passive/penguin,
prob(15);/mob/living/simple_mob/animal/passive/mouse,
@@ -102,6 +107,8 @@
/obj/random/mob/sif/hostile/item_to_spawn()
return pick(prob(22);/mob/living/simple_mob/animal/sif/savik,
prob(33);/mob/living/simple_mob/animal/giant_spider/frost,
+ prob(20);/mob/living/simple_mob/animal/sif/frostfly,
+ prob(10);/mob/living/simple_mob/animal/sif/tymisian,
prob(45);/mob/living/simple_mob/animal/sif/shantak)
/obj/random/mob/sif/kururak
@@ -329,6 +336,12 @@
/mob/living/simple_mob/animal/sif/duck,
/mob/living/simple_mob/animal/sif/duck
),
+ prob(15);list(
+ /mob/living/simple_mob/animal/passive/hare,
+ /mob/living/simple_mob/animal/passive/hare,
+ /mob/living/simple_mob/animal/passive/hare,
+ /mob/living/simple_mob/animal/passive/hare
+ ),
prob(10);list(
/mob/living/simple_mob/animal/sif/shantak/retaliate,
/mob/living/simple_mob/animal/sif/shantak/retaliate,
diff --git a/code/modules/ai/ai_holder_targeting.dm b/code/modules/ai/ai_holder_targeting.dm
index cacfcf56de..240d782926 100644
--- a/code/modules/ai/ai_holder_targeting.dm
+++ b/code/modules/ai/ai_holder_targeting.dm
@@ -12,7 +12,7 @@
var/vision_range = 7 // How far the targeting system will look for things to kill. Note that values higher than 7 are 'offscreen' and might be unsporting.
var/respect_alpha = TRUE // If true, mobs with a sufficently low alpha will be treated as invisible.
- var/alpha_vision_threshold = 127 // Targets with an alpha less or equal to this will be considered invisible. Requires above var to be true.
+ var/alpha_vision_threshold = FAKE_INVIS_ALPHA_THRESHOLD // Targets with an alpha less or equal to this will be considered invisible. Requires above var to be true.
var/lose_target_time = 0 // world.time when a target was lost.
var/lose_target_timeout = 5 SECONDS // How long until a mob 'times out' and stops trying to find the mob that disappeared.
diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
index 21ebb11403..f8bffbbd90 100644
--- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm
@@ -183,12 +183,6 @@
ckeywhitelist = list("cockatricexl")
character_name = list("James Holder")
-/datum/gear/fluff/jasmine_implant
- path = /obj/item/weapon/implanter/reagent_generator/jasmine
- display_name = "Jasmine's Implant"
- ckeywhitelist = list("cameron653")
- character_name = list("Jasmine Lizden")
-
/datum/gear/fluff/diana_robe
path = /obj/item/clothing/suit/fluff/purp_robes
display_name = "Diana's Robes"
@@ -310,11 +304,6 @@
allowed_roles = list("Explorer")
// G CKEYS
-/datum/gear/fluff/eldi_implant
- path = /obj/item/weapon/implanter/reagent_generator/eldi
- display_name = "Eldi's Implant"
- ckeywhitelist = list("gowst")
- character_name = list("Eldi Moljir")
// H CKEYS
/datum/gear/fluff/lauren_medal
@@ -335,12 +324,6 @@
ckeywhitelist = list("hottokeeki")
character_name = list("Belle Day")
-/datum/gear/fluff/belle_implant
- path = /obj/item/weapon/implanter/reagent_generator/belle
- display_name = "Belle's Implant"
- ckeywhitelist = list("hottokeeki")
- character_name = list("Belle Day")
-
// I CKEYS
/datum/gear/fluff/ruda_badge
path = /obj/item/clothing/accessory/badge/holo/detective/ruda
@@ -553,12 +536,6 @@
ckeywhitelist = list("kiwidaninja")
character_name = list("Chakat Taiga")
-/datum/gear/fluff/rischi_implant
- path = /obj/item/weapon/implanter/reagent_generator/rischi
- display_name = "Rischi's Implant"
- ckeywhitelist = list("konabird")
- character_name = list("Rischi")
-
/datum/gear/fluff/ashley_medal
path = /obj/item/clothing/accessory/medal/nobel_science/fluff/ashley
display_name = "Ashley's Medal"
@@ -580,12 +557,6 @@
ckeywhitelist = list("luminescentring")
character_name = list("Briana Moore")
-/datum/gear/fluff/savannah_implant
- path = /obj/item/weapon/implanter/reagent_generator/savannah
- display_name = "Savannah's Implant"
- ckeywhitelist = list("lycanthorph")
- character_name = list("Savannah Dixon")
-
// M CKEYS
/datum/gear/fluff/phi_box
path = /obj/item/weapon/storage/box/fluff/phi
@@ -842,12 +813,6 @@
ckeywhitelist = list("silvertalismen")
character_name = list("Tasy Ruffles")
-/datum/gear/fluff/evian_implant
- path = /obj/item/weapon/implanter/reagent_generator/evian
- display_name = "Evian's Implant"
- ckeywhitelist = list("silvertalismen")
- character_name = list("Evian")
-
/datum/gear/fluff/fortune_backpack
path = /obj/item/weapon/storage/backpack/satchel/fluff/swat43bag
display_name = "Fortune's Backpack"
@@ -861,12 +826,6 @@
ckeywhitelist = list("stobarico")
character_name = list("Alexis Bloise")
-/datum/gear/fluff/roiz_implant
- path = /obj/item/weapon/implanter/reagent_generator/roiz
- display_name = "Roiz's Implant"
- ckeywhitelist = list("spoopylizz")
- character_name = list("Roiz Lizden")
-
/datum/gear/fluff/roiz_coat
path = /obj/item/clothing/suit/storage/hooded/wintercoat/roiz
display_name = "Roiz's Coat"
@@ -1020,12 +979,6 @@
ckeywhitelist = list("vorrarkul")
character_name = list("Theodora Lindt")
-/datum/gear/fluff/theodora_implant
- path = /obj/item/weapon/implanter/reagent_generator/vorrarkul
- display_name = "Theodora's Implant"
- ckeywhitelist = list("vorrarkul")
- character_name = list("Theodora Lindt")
-
/datum/gear/fluff/kaitlyn_plush
path = /obj/item/toy/plushie/mouse/fluff
display_name = "Kaitlyn's Mouse Plush"
@@ -1102,12 +1055,6 @@
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venosare")
-/datum/gear/fluff/tempest_implant
- path = /obj/item/weapon/implanter/reagent_generator/tempest
- display_name = "Tempest's Implant"
- ckeywhitelist = list("wickedtemp")
- character_name = list("Chakat Tempest Venosare")
-
// X CKEYS
/datum/gear/fluff/penelope_box
path = /obj/item/weapon/storage/box/fluff/penelope
diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm
index 61666aacff..d8c4e761ca 100644
--- a/code/modules/food/kitchen/cooking_machines/_appliance.dm
+++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm
@@ -583,6 +583,7 @@
var/obj/item/thing
var/delete = 1
var/status = CI.container.check_contents()
+
if (status == 1)//If theres only one object in a container then we extract that
thing = locate(/obj/item) in CI.container
delete = 0
@@ -596,6 +597,7 @@
qdel(CI)
else
CI.reset()//reset instead of deleting if the container is left inside
+ user.visible_message("\The [user] remove \the [thing] from \the [src]. ")
/obj/machinery/appliance/proc/cook_mob(var/mob/living/victim, var/mob/user)
return
diff --git a/code/modules/food/kitchen/cooking_machines/container.dm b/code/modules/food/kitchen/cooking_machines/container.dm
index 2ebb2ed7f0..d650a2266e 100644
--- a/code/modules/food/kitchen/cooking_machines/container.dm
+++ b/code/modules/food/kitchen/cooking_machines/container.dm
@@ -145,7 +145,7 @@
/obj/item/weapon/reagent_containers/cooking_container/oven
name = "oven dish"
shortname = "shelf"
- desc = "Put ingredients in this; designed for use with an oven. Warranty void if used incorrectly."
+ desc = "Put ingredients in this; designed for use with an oven. Warranty void if used incorrectly. Alt click to remove contents."
icon_state = "ovendish"
max_space = 30
max_reagents = 120
@@ -162,11 +162,11 @@
/obj/item/weapon/reagent_containers/cooking_container/fryer
name = "fryer basket"
shortname = "basket"
- desc = "Put ingredients in this; designed for use with a deep fryer. Warranty void if used incorrectly."
+ desc = "Put ingredients in this; designed for use with a deep fryer. Warranty void if used incorrectly. Alt click to remove contents."
icon_state = "basket"
/obj/item/weapon/reagent_containers/cooking_container/grill
name = "grill rack"
shortname = "rack"
- desc = "Put ingredients 'in'/on this; designed for use with a grill. Warranty void if used incorrectly."
+ desc = "Put ingredients 'in'/on this; designed for use with a grill. Warranty void if used incorrectly. Alt click to remove contents."
icon_state = "grillrack"
\ No newline at end of file
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index 941c7d6b64..6c2e0d9b71 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -12,7 +12,7 @@
circuit = /obj/item/weapon/circuitboard/fryer
appliancetype = FRYER
active_power_usage = 12 KILOWATTS
- heating_power = 12000
+ heating_power = 12 KILOWATTS
light_y = 15
@@ -24,7 +24,7 @@
// Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value.
- resistance = 60000 // Approx. 10 minutes to heat up.
+ resistance = 10 KILOWATTS // Approx. 10 minutes to heat up.
max_contents = 2
container_type = /obj/item/weapon/reagent_containers/cooking_container/fryer
diff --git a/code/modules/food/kitchen/cooking_machines/oven.dm b/code/modules/food/kitchen/cooking_machines/oven.dm
index df9394f599..3203ecdc51 100644
--- a/code/modules/food/kitchen/cooking_machines/oven.dm
+++ b/code/modules/food/kitchen/cooking_machines/oven.dm
@@ -9,10 +9,10 @@
can_burn_food = TRUE
circuit = /obj/item/weapon/circuitboard/oven
active_power_usage = 6 KILOWATTS
- heating_power = 6000
+ heating_power = 6 KILOWATTS
//Based on a double deck electric convection oven
- resistance = 30000 // Approx. 12 minutes to heat up.
+ resistance = 12 KILOWATTS // Approx. 12 minutes to heat up.
idle_power_usage = 2 KILOWATTS
//uses ~30% power to stay warm
optimal_power = 0.8 // Oven cooks .2 faster than the default speed.
@@ -86,6 +86,7 @@
cooking = FALSE
playsound(src, 'sound/machines/hatch_open.ogg', 20, 1)
+ to_chat(user, "You [open? "close":"open"] the oven door ")
update_icon()
/obj/machinery/appliance/cooker/oven/proc/manip(var/obj/item/I)
diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm
index aba09d186c..8a4d88fc2a 100644
--- a/code/modules/food/recipes_microwave_vr.dm
+++ b/code/modules/food/recipes_microwave_vr.dm
@@ -20,27 +20,6 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/sushi
-/datum/recipe/chocroizegg
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
- /obj/item/weapon/reagent_containers/food/snacks/egg/roiz
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/chocolateegg/roiz
-
-/datum/recipe/friedroizegg
- reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg/roiz
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/friedegg/roiz
-
-/datum/recipe/boiledroizegg
- reagents = list("water" = 5)
- items = list(
- /obj/item/weapon/reagent_containers/food/snacks/egg/roiz
- )
- result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
-
/datum/recipe/lobster
fruit = list("lemon" = 1, "cabbage" = 1)
items = list(
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index e30a6f049c..5ba939fd8d 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -325,7 +325,7 @@
for(var/mob/living/M in mobs_in_area(linkedholodeck))
if(M.mind)
- linkedholodeck.play_ambience(M)
+ linkedholodeck.play_ambience(M, initial = TRUE)
linkedholodeck.sound_env = A.sound_env
diff --git a/code/modules/mob/_modifiers/modifiers.dm b/code/modules/mob/_modifiers/modifiers.dm
index 66afd732a2..56422efdf6 100644
--- a/code/modules/mob/_modifiers/modifiers.dm
+++ b/code/modules/mob/_modifiers/modifiers.dm
@@ -55,6 +55,14 @@
var/emp_modifier // Added to the EMP strength, which is an inverse scale from 1 to 4, with 1 being the strongest EMP. 5 is a nullification.
var/explosion_modifier // Added to the bomb strength, which is an inverse scale from 1 to 3, with 1 being gibstrength. 4 is a nullification.
+ // Note that these are combined with the mob's real armor values additatively. You can also omit specific armor types.
+ var/list/armor_percent = null // List of armor values to add to the holder when doing armor calculations. This is for percentage based armor. E.g. 50 = half damage.
+ var/list/armor_flat = null // Same as above but only for flat armor calculations. E.g. 5 = 5 less damage (this comes after percentage).
+ // Unlike armor, this is multiplicative. Two 50% protection modifiers will be combined into 75% protection (assuming no base protection on the mob).
+ var/heat_protection = null // Modifies how 'heat' protection is calculated, like wearing a firesuit. 1 = full protection.
+ var/cold_protection = null // Ditto, but for cold, like wearing a winter coat.
+ var/siemens_coefficient = null // Similar to above two vars but 0 = full protection, to be consistant with siemens numbers everywhere else.
+
var/vision_flags // Vision flags to add to the mob. SEE_MOB, SEE_OBJ, etc.
/datum/modifier/New(var/new_holder, var/new_origin)
@@ -186,10 +194,14 @@
// Checks if the mob has a modifier type.
/mob/living/proc/has_modifier_of_type(var/modifier_type)
+ return get_modifier_of_type(modifier_type) ? TRUE : FALSE
+
+// Gets the first instance of a specific modifier type or subtype.
+/mob/living/proc/get_modifier_of_type(var/modifier_type)
for(var/datum/modifier/M in modifiers)
if(istype(M, modifier_type))
- return TRUE
- return FALSE
+ return M
+ return null
// This displays the actual 'numbers' that a modifier is doing. Should only be shown in OOC contexts.
// When adding new effects, be sure to update this as well.
diff --git a/code/modules/mob/_modifiers/modifiers_misc.dm b/code/modules/mob/_modifiers/modifiers_misc.dm
index 2efa5c0ef9..3b9663d855 100644
--- a/code/modules/mob/_modifiers/modifiers_misc.dm
+++ b/code/modules/mob/_modifiers/modifiers_misc.dm
@@ -397,4 +397,33 @@ the artifact triggers the rage.
/datum/modifier/outline_test/tick()
animate(filter_instance, size = 3, time = 0.25 SECONDS)
- animate(size = 1, 0.25 SECONDS)
\ No newline at end of file
+ animate(size = 1, 0.25 SECONDS)
+
+
+// Acts as a psuedo-godmode, yet probably is more reliable than the actual var for it nowdays.
+// Can't protect from instantly killing things like singulos.
+/datum/modifier/invulnerable
+ name = "invulnerable"
+ desc = "You are almost immune to harm, for a little while at least."
+ stacks = MODIFIER_STACK_EXTEND
+
+ disable_duration_percent = 0
+ incoming_damage_percent = 0
+// bleeding_rate_percent = 0
+ pain_immunity = TRUE
+ armor_percent = list("melee" = 2000, "bullet" = 2000, "laser" = 2000, "bomb" = 2000, "energy" = 2000, "bio" = 2000, "rad" = 2000)
+ heat_protection = 1.0
+ cold_protection = 1.0
+ siemens_coefficient = 0.0
+
+// Reduces resistance to "elements".
+// Note that most things that do give resistance gives 100% protection,
+// and due to multiplicitive stacking, this modifier won't do anything to change that.
+/datum/modifier/elemental_vulnerability
+ name = "elemental vulnerability"
+ desc = "You're more vulnerable to extreme temperatures and electricity."
+ stacks = MODIFIER_STACK_EXTEND
+
+ heat_protection = -0.5
+ cold_protection = -0.5
+ siemens_coefficient = 1.5
\ No newline at end of file
diff --git a/code/modules/mob/_modifiers/traits_phobias.dm b/code/modules/mob/_modifiers/traits_phobias.dm
index bd30891fbe..87f8ecc446 100644
--- a/code/modules/mob/_modifiers/traits_phobias.dm
+++ b/code/modules/mob/_modifiers/traits_phobias.dm
@@ -120,27 +120,32 @@
// People covered in blood is also bad.
// Feel free to trim down if its too expensive CPU wise.
- if(istype(thing, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = thing
- var/self_multiplier = H == holder ? 2 : 1
- var/human_blood_fear_amount = 0
- if(!H.gloves && H.bloody_hands && H.hand_blood_color != SYNTH_BLOOD_COLOUR)
- human_blood_fear_amount += 1
- if(!H.shoes && H.feet_blood_color && H.feet_blood_color != SYNTH_BLOOD_COLOUR)
- human_blood_fear_amount += 1
+ if(isliving(thing))
+ var/mob/living/L = thing
+ if(L.alpha <= FAKE_INVIS_ALPHA_THRESHOLD) // Can't fear something you can't (easily) see.
+ continue
- // List of slots. Some slots like pockets are omitted due to not being visible, if H isn't the holder.
- var/list/clothing_slots = list(H.back, H.wear_mask, H.l_hand, H.r_hand, H.wear_id, H.glasses, H.gloves, H.head, H.shoes, H.belt, H.wear_suit, H.w_uniform, H.s_store, H.l_ear, H.r_ear)
- if(H == holder)
- clothing_slots += list(H.l_store, H.r_store)
-
- for(var/obj/item/clothing/C in clothing_slots)
- if(C.blood_DNA && C.blood_color && C.blood_color != SYNTH_BLOOD_COLOUR)
+ if(istype(thing, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = thing
+ var/self_multiplier = H == holder ? 2 : 1
+ var/human_blood_fear_amount = 0
+ if(!H.gloves && H.bloody_hands && H.hand_blood_color != SYNTH_BLOOD_COLOUR)
+ human_blood_fear_amount += 1
+ if(!H.shoes && H.feet_blood_color && H.feet_blood_color != SYNTH_BLOOD_COLOUR)
human_blood_fear_amount += 1
- // This is divided, since humans can wear so many items at once.
- human_blood_fear_amount = round( (human_blood_fear_amount * self_multiplier) / 3, 1)
- fear_amount += human_blood_fear_amount
+ // List of slots. Some slots like pockets are omitted due to not being visible, if H isn't the holder.
+ var/list/clothing_slots = list(H.back, H.wear_mask, H.l_hand, H.r_hand, H.wear_id, H.glasses, H.gloves, H.head, H.shoes, H.belt, H.wear_suit, H.w_uniform, H.s_store, H.l_ear, H.r_ear)
+ if(H == holder)
+ clothing_slots += list(H.l_store, H.r_store)
+
+ for(var/obj/item/clothing/C in clothing_slots)
+ if(C.blood_DNA && C.blood_color && C.blood_color != SYNTH_BLOOD_COLOUR)
+ human_blood_fear_amount += 1
+
+ // This is divided, since humans can wear so many items at once.
+ human_blood_fear_amount = round( (human_blood_fear_amount * self_multiplier) / 3, 1)
+ fear_amount += human_blood_fear_amount
// Bloody objects are also bad.
if(istype(thing, /obj))
@@ -207,12 +212,18 @@
if(istype(thing, /obj/structure/snowman/spider)) //Snow spiders are also spooky so people can be assholes with those too.
fear_amount += 1
- if(istype(thing, /mob/living/simple_mob/animal/giant_spider)) // Actual giant spiders are the scariest of them all.
- var/mob/living/simple_mob/animal/giant_spider/S = thing
- if(S.stat == DEAD) // Dead giant spiders are less scary than alive ones.
- fear_amount += 4
- else
- fear_amount += 8
+ if(isliving(thing))
+ var/mob/living/L = thing
+ if(L.alpha <= FAKE_INVIS_ALPHA_THRESHOLD) // Can't fear something you can't (easily) see.
+ continue
+
+ if(istype(L, /mob/living/simple_mob/animal/giant_spider)) // Actual giant spiders are the scariest of them all.
+ var/mob/living/simple_mob/animal/giant_spider/S = L
+
+ if(S.stat == DEAD) // Dead giant spiders are less scary than alive ones.
+ fear_amount += 4
+ else
+ fear_amount += 8
return fear_amount
@@ -425,25 +436,29 @@
if(istype(thing, /obj/item/clothing/head/collectable/slime)) // Some hats are spooky so people can be assholes with them.
fear_amount += 1
- if(istype(thing, /mob/living/simple_mob/slime)) // An actual predatory specimen!
- var/mob/living/simple_mob/slime/S = thing
- if(S.stat == DEAD) // Dead slimes are somewhat less spook.
- fear_amount += 4
- if(istype(S, /mob/living/simple_mob/slime/xenobio))
- var/mob/living/simple_mob/slime/xenobio/X = S
- if(X.is_adult == TRUE) //big boy
- fear_amount += 8
+ if(isliving(thing))
+ var/mob/living/L = thing
+ if(L.alpha <= FAKE_INVIS_ALPHA_THRESHOLD) // Can't fear something you can't (easily) see.
+ continue
+ if(istype(L, /mob/living/simple_mob/slime)) // An actual predatory specimen!
+ var/mob/living/simple_mob/slime/S = L
+ if(S.stat == DEAD) // Dead slimes are somewhat less spook.
+ fear_amount += 4
+ if(istype(S, /mob/living/simple_mob/slime/xenobio))
+ var/mob/living/simple_mob/slime/xenobio/X = S
+ if(X.is_adult == TRUE) //big boy
+ fear_amount += 8
+ else
+ fear_amount += 6
else
- fear_amount += 6
- else
- fear_amount += 10 // It's huge and feral.
+ fear_amount += 10 // It's huge and feral.
- if(istype(thing, /mob/living/carbon/human))
- var/mob/living/carbon/human/S = thing
- if(istype(S.species, /datum/species/skrell)) //Skrell ARE slimey.
- fear_amount += 1
- if(istype(S.species, /datum/species/shapeshifter/promethean))
- fear_amount += 4
+ if(istype(L, /mob/living/carbon/human))
+ var/mob/living/carbon/human/S = L
+ if(istype(S.species, /datum/species/skrell)) //Skrell ARE slimey.
+ fear_amount += 1
+ if(istype(S.species, /datum/species/shapeshifter/promethean))
+ fear_amount += 4
return fear_amount
@@ -525,13 +540,17 @@
if(istype(thing, /obj/item/weapon/gun/launcher/syringe))
fear_amount += 6
- if(istype(thing, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = thing
- if(H.l_hand && istype(H.l_hand, /obj/item/weapon/reagent_containers/syringe) || H.r_hand && istype(H.r_hand, /obj/item/weapon/reagent_containers/syringe))
- fear_amount += 10
+ if(isliving(thing))
+ var/mob/living/L = thing
+ if(L.alpha <= FAKE_INVIS_ALPHA_THRESHOLD) // Can't fear something you can't (easily) see.
+ continue
+ if(istype(L, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = L
+ if(H.l_hand && istype(H.l_hand, /obj/item/weapon/reagent_containers/syringe) || H.r_hand && istype(H.r_hand, /obj/item/weapon/reagent_containers/syringe))
+ fear_amount += 10
- if(H.l_ear && istype(H.l_ear, /obj/item/weapon/reagent_containers/syringe) || H.r_ear && istype(H.r_ear, /obj/item/weapon/reagent_containers/syringe))
- fear_amount +=10
+ if(H.l_ear && istype(H.l_ear, /obj/item/weapon/reagent_containers/syringe) || H.r_ear && istype(H.r_ear, /obj/item/weapon/reagent_containers/syringe))
+ fear_amount +=10
return fear_amount
diff --git a/code/modules/mob/living/bot/mulebot.dm b/code/modules/mob/living/bot/mulebot.dm
index 9bef4c0cbc..67fc8fd051 100644
--- a/code/modules/mob/living/bot/mulebot.dm
+++ b/code/modules/mob/living/bot/mulebot.dm
@@ -241,20 +241,20 @@
M.Weaken(5)
..()
-/mob/living/bot/mulebot/proc/runOver(var/mob/living/carbon/human/H)
- if(istype(H)) // No safety checks - WILL run over lying humans. Stop ERPing in the maint!
- visible_message("[src] drives over [H]! ")
+/mob/living/bot/mulebot/proc/runOver(var/mob/living/M)
+ if(istype(M)) // At this point, MULEBot has somehow crossed over onto your tile with you still on it. CRRRNCH.
+ visible_message("[src] drives over [M]! ")
playsound(src, 'sound/effects/splat.ogg', 50, 1)
var/damage = rand(5, 7)
- H.apply_damage(2 * damage, BRUTE, BP_HEAD)
- H.apply_damage(2 * damage, BRUTE, BP_TORSO)
- H.apply_damage(0.5 * damage, BRUTE, BP_L_LEG)
- H.apply_damage(0.5 * damage, BRUTE, BP_R_LEG)
- H.apply_damage(0.5 * damage, BRUTE, BP_L_ARM)
- H.apply_damage(0.5 * damage, BRUTE, BP_R_ARM)
+ M.apply_damage(2 * damage, BRUTE, BP_HEAD)
+ M.apply_damage(2 * damage, BRUTE, BP_TORSO)
+ M.apply_damage(0.5 * damage, BRUTE, BP_L_LEG)
+ M.apply_damage(0.5 * damage, BRUTE, BP_R_LEG)
+ M.apply_damage(0.5 * damage, BRUTE, BP_L_ARM)
+ M.apply_damage(0.5 * damage, BRUTE, BP_R_ARM)
- blood_splatter(src, H, 1)
+ blood_splatter(src, M, 1)
..()
/mob/living/bot/mulebot/relaymove(var/mob/user, var/direction)
diff --git a/code/modules/mob/living/bot/mulebot_vr.dm b/code/modules/mob/living/bot/mulebot_vr.dm
new file mode 100644
index 0000000000..aec8f30983
--- /dev/null
+++ b/code/modules/mob/living/bot/mulebot_vr.dm
@@ -0,0 +1,5 @@
+/mob/living/bot/mulebot/handle_micro_bump_helping() // Can't drive over micros or macros regardless of intent.
+ return 0
+
+/mob/living/bot/mulebot/handle_micro_bump_other() // Can't drive over micros or macros regardless of intent.
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 17c2e87969..1dbfcca9c8 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -253,20 +253,14 @@
return
// called when something steps onto a human
-// this handles mulebots and vehicles
-// and now mobs on fire
+// this handles mobs on fire - mulebot and vehicle code has been relocated to /mob/living/Crossed()
/mob/living/carbon/human/Crossed(var/atom/movable/AM)
if(AM.is_incorporeal())
return
- if(istype(AM, /mob/living/bot/mulebot))
- var/mob/living/bot/mulebot/MB = AM
- MB.runOver(src)
-
- if(istype(AM, /obj/vehicle))
- var/obj/vehicle/V = AM
- V.RunOver(src)
spread_fire(AM)
+
+ ..() // call parent because we moved behavior to parent
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job")
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 8e351372c9..0199d387ae 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -133,6 +133,12 @@ emp_act
if(istype(C) && (C.body_parts_covered & def_zone.body_part)) // Is that body part being targeted covered?
siemens_coefficient *= C.siemens_coefficient
+ // Modifiers.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.siemens_coefficient))
+ siemens_coefficient *= M.siemens_coefficient
+
return siemens_coefficient
// Similar to above but is for the mob's overall protection, being the average of all slots.
@@ -150,11 +156,11 @@ emp_act
if(fire_stacks < 0) // Water makes you more conductive.
siemens_value *= 1.5
- return (siemens_value/max(total, 1))
+ return (siemens_value / max(total, 1))
// Returns a number between 0 to 1, with 1 being total protection.
/mob/living/carbon/human/get_shock_protection()
- return between(0, 1-get_siemens_coefficient_average(), 1)
+ return min(1 - get_siemens_coefficient_average(), 1) // Don't go above 1, but negatives are fine.
// Returns a list of clothing that is currently covering def_zone.
/mob/living/carbon/human/proc/get_clothing_list_organ(var/obj/item/organ/external/def_zone, var/type)
@@ -173,6 +179,13 @@ emp_act
var/list/protective_gear = def_zone.get_covering_clothing()
for(var/obj/item/clothing/gear in protective_gear)
protection += gear.armor[type]
+
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ var/modifier_armor = LAZYACCESS(M.armor_percent, type)
+ if(modifier_armor)
+ protection += modifier_armor
+
return protection
/mob/living/carbon/human/proc/getsoak_organ(var/obj/item/organ/external/def_zone, var/type)
@@ -182,6 +195,13 @@ emp_act
var/list/protective_gear = def_zone.get_covering_clothing()
for(var/obj/item/clothing/gear in protective_gear)
soaked += gear.armorsoak[type]
+
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ var/modifier_armor = LAZYACCESS(M.armor_flat, type)
+ if(modifier_armor)
+ soaked += modifier_armor
+
return soaked
// Checked in borer code
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index b29afe4da5..479874b185 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -717,7 +717,7 @@
cold_dam = COLD_DAMAGE_LEVEL_1
take_overall_damage(burn=cold_dam, used_weapon = "Low Body Temperature")
-
+
else clear_alert("temp")
// Account for massive pressure differences. Done by Polymorph
@@ -836,7 +836,19 @@
/mob/living/carbon/human/get_heat_protection(temperature) //Temperature is the temperature you're being exposed to.
var/thermal_protection_flags = get_heat_protection_flags(temperature)
- return get_thermal_protection(thermal_protection_flags)
+
+ . = get_thermal_protection(thermal_protection_flags)
+ . = 1 - . // Invert from 1 = immunity to 0 = immunity.
+
+ // Doing it this way makes multiplicative stacking not get out of hand, so two modifiers that give 0.5 protection will be combined to 0.75 in the end.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.heat_protection))
+ . *= 1 - M.heat_protection
+
+ // Code that calls this expects 1 = immunity so we need to invert again.
+ . = 1 - .
+ . = min(., 1.0)
/mob/living/carbon/human/get_cold_protection(temperature)
if(COLD_RESISTANCE in mutations)
@@ -844,7 +856,20 @@
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
var/thermal_protection_flags = get_cold_protection_flags(temperature)
- return get_thermal_protection(thermal_protection_flags)
+
+ . = get_thermal_protection(thermal_protection_flags)
+ . = 1 - . // Invert from 1 = immunity to 0 = immunity.
+
+ // Doing it this way makes multiplicative stacking not get out of hand, so two modifiers that give 0.5 protection will be combined to 0.75 in the end.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.cold_protection))
+ // Invert the modifier values so they align with the current working value.
+ . *= 1 - M.cold_protection
+
+ // Code that calls this expects 1 = immunity so we need to invert again.
+ . = 1 - .
+ . = min(., 1.0)
/mob/living/carbon/human/proc/get_thermal_protection(var/flags)
.=0
diff --git a/code/modules/mob/living/carbon/human/species/station/seromi.dm b/code/modules/mob/living/carbon/human/species/station/seromi.dm
index 8133cfbfbd..7e9e7c4efb 100644
--- a/code/modules/mob/living/carbon/human/species/station/seromi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/seromi.dm
@@ -89,8 +89,16 @@
heat_discomfort_strings = list(
"Your feathers prickle in the heat.",
"You feel uncomfortably warm.",
+ "Your hands and feet feel hot as your body tries to regulate heat",
)
cold_discomfort_level = 180
+ cold_discomfort_strings = list(
+ "You feel a bit chilly.",
+ "You fluff up your feathers against the cold.",
+ "You move your arms closer to your body to shield yourself from the cold.",
+ "You press your ears against your head to conserve heat",
+ "You start to feel the cold on your skin",
+ )
minimum_breath_pressure = 12 //Smaller, so needs less air
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm
index 7342c7c443..b495533e31 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm
@@ -146,6 +146,15 @@ YW change end */
H.verbs |= /mob/living/carbon/human/proc/succubus_drain_finalize
H.verbs |= /mob/living/carbon/human/proc/succubus_drain_lethal
+/datum/trait/feeder
+ name = "Feeder"
+ desc = "Allows you to feed your prey using your own body."
+ cost = 0
+
+/datum/trait/feeder/apply(var/datum/species/S,var/mob/living/carbon/human/H)
+ ..(S,H)
+ H.verbs |= /mob/living/carbon/human/proc/slime_feed
+
/datum/trait/hard_vore
name = "Brutal Predation"
desc = "Allows you to tear off limbs & tear out internal organs."
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index 809b82af54..b33a5d3945 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -10,6 +10,11 @@
if(istype(nest, /obj/structure/blob/factory))
var/obj/structure/blob/factory/F = nest
F.spores -= src
+ //VOREStation Edit Start
+ if(istype(nest, /obj/structure/mob_spawner))
+ var/obj/structure/mob_spawner/S = nest
+ S.get_death_report(src)
+ //VOREStation Edit End
nest = null
for(var/s in owned_soul_links)
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index bf3d898b6c..857075fee3 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -96,7 +96,7 @@
if(world.time >= (lastareachange + 30 SECONDS)) // Every 30 seconds, we're going to run a 35% chance to play ambience.
var/area/A = get_area(src)
if(A)
- A.play_ambience(src)
+ A.play_ambience(src, initial = FALSE)
/mob/living/proc/update_pulling()
if(pulling)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index e8e5fd3361..a472366b03 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -244,6 +244,19 @@ default behaviour is:
return TRUE
return ..()
+// Called when something steps onto us. This allows for mulebots and vehicles to run things over. <3
+/mob/living/Crossed(var/atom/movable/AM) // Transplanting this from /mob/living/carbon/human/Crossed()
+ if(AM == src || AM.is_incorporeal()) // We're not going to run over ourselves or ghosts
+ return
+
+ if(istype(AM, /mob/living/bot/mulebot))
+ var/mob/living/bot/mulebot/MB = AM
+ MB.runOver(src)
+
+ if(istype(AM, /obj/vehicle))
+ var/obj/vehicle/V = AM
+ V.RunOver(src)
+
/mob/living/verb/succumb()
set hidden = 1
if ((src.health < 0 && src.health > (5-src.getMaxHealth()))) // Health below Zero but above 5-away-from-death, as before, but variable
diff --git a/code/modules/mob/living/living_defines_vr.dm b/code/modules/mob/living/living_defines_vr.dm
index b8e8cf202d..966d354fec 100644
--- a/code/modules/mob/living/living_defines_vr.dm
+++ b/code/modules/mob/living/living_defines_vr.dm
@@ -3,7 +3,6 @@
/mob/living
var/ooc_notes = null
- var/obj/structure/mob_spawner/source_spawner = null
appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER
var/hunger_rate = DEFAULT_HUNGER_FACTOR
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 1278b59c76..3a995ba19d 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -40,6 +40,7 @@
"Fennec" = "pai-fen",
"Type Zero" = "pai-typezero",
"Raccoon" = "pai-raccoon",
+ "Raptor" = "pai-raptor",
"Rat" = "rat",
"Panther" = "panther"
//VOREStation Addition End
diff --git a/code/modules/mob/living/silicon/robot/analyzer.dm b/code/modules/mob/living/silicon/robot/analyzer.dm
index f1b2d76eec..e946c7999c 100644
--- a/code/modules/mob/living/silicon/robot/analyzer.dm
+++ b/code/modules/mob/living/silicon/robot/analyzer.dm
@@ -34,6 +34,8 @@
scan_type = "robot"
else if(istype(M, /mob/living/carbon/human))
scan_type = "prosthetics"
+ else if(istype(M, /obj/mecha))
+ scan_type = "mecha"
else
to_chat(user, "You can't analyze non-robotic things! ")
return
@@ -95,5 +97,37 @@
if(!organ_found)
to_chat(user, "No prosthetics located.")
+ if("mecha")
+
+ var/obj/mecha/Mecha = M
+
+ var/integrity = Mecha.health/initial(Mecha.health)*100
+ var/cell_charge = Mecha.get_charge()
+ var/tank_pressure = Mecha.internal_tank ? round(Mecha.internal_tank.return_pressure(),0.01) : "None"
+ var/tank_temperature = Mecha.internal_tank ? Mecha.internal_tank.return_temperature() : "Unknown"
+ var/cabin_pressure = round(Mecha.return_pressure(),0.01)
+
+ var/output = {"Analyzing Results for \the [Mecha]:
+ Chassis Integrity: [integrity]%
+ Powercell charge: [isnull(cell_charge)?"No powercell installed":"[Mecha.cell.percent()]%"]
+ Air source: [Mecha.use_internal_tank?"Internal Airtank":"Environment"]
+ Airtank pressure: [tank_pressure]kPa
+ Airtank temperature: [tank_temperature]K|[tank_temperature - T0C]°C
+ Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure] ": cabin_pressure]kPa
+ Cabin temperature: [Mecha.return_temperature()]K|[Mecha.return_temperature() - T0C]°C
+ DNA Lock: [Mecha.dna?"Mecha.dna":"Not Found"]
+ "}
+
+ to_chat(user, output)
+ to_chat(user, " ")
+ to_chat(user, "Internal Diagnostics: ")
+ for(var/slot in Mecha.internal_components)
+ var/obj/item/mecha_parts/component/MC = Mecha.internal_components[slot]
+ to_chat(user, "[MC?"[slot]: [MC] [round((MC.integrity / MC.max_integrity) * 100, 0.1)]% integrity. [MC.get_efficiency() * 100] Operational capacity.":"[slot]: Component Not Found "]")
+
+ to_chat(user, " ")
+ to_chat(user, "General Statistics: ")
+ to_chat(user, "Movement Weight: [Mecha.get_step_delay()] ")
+
src.add_fingerprint(user)
return
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 570e60bb51..3ce9a40447 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -30,6 +30,7 @@
var/synced = FALSE
var/startdrain = 500
var/max_item_count = 1
+ var/upgraded_capacity = FALSE
var/gulpsound = 'sound/vore/gulp.ogg'
var/datum/matter_synth/metal = null
var/datum/matter_synth/glass = null
diff --git a/code/modules/mob/living/simple_mob/defense.dm b/code/modules/mob/living/simple_mob/defense.dm
index d94d83c0a9..1a301b8bfd 100644
--- a/code/modules/mob/living/simple_mob/defense.dm
+++ b/code/modules/mob/living/simple_mob/defense.dm
@@ -140,7 +140,18 @@
// Cold stuff.
/mob/living/simple_mob/get_cold_protection()
- return cold_resist
+ . = cold_resist
+ . = 1 - . // Invert from 1 = immunity to 0 = immunity.
+
+ // Doing it this way makes multiplicative stacking not get out of hand, so two modifiers that give 0.5 protection will be combined to 0.75 in the end.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.cold_protection))
+ . *= 1 - M.cold_protection
+
+ // Code that calls this expects 1 = immunity so we need to invert again.
+ . = 1 - .
+ . = min(., 1.0)
// Fire stuff. Not really exciting at the moment.
@@ -154,7 +165,18 @@
return
/mob/living/simple_mob/get_heat_protection()
- return heat_resist
+ . = heat_resist
+ . = 1 - . // Invert from 1 = immunity to 0 = immunity.
+
+ // Doing it this way makes multiplicative stacking not get out of hand, so two modifiers that give 0.5 protection will be combined to 0.75 in the end.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.heat_protection))
+ . *= 1 - M.heat_protection
+
+ // Code that calls this expects 1 = immunity so we need to invert again.
+ . = 1 - .
+ . = min(., 1.0)
// Electricity
/mob/living/simple_mob/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null)
@@ -170,7 +192,18 @@
s.start()
/mob/living/simple_mob/get_shock_protection()
- return shock_resist
+ . = shock_resist
+ . = 1 - . // Invert from 1 = immunity to 0 = immunity.
+
+ // Doing it this way makes multiplicative stacking not get out of hand, so two modifiers that give 0.5 protection will be combined to 0.75 in the end.
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ if(!isnull(M.siemens_coefficient))
+ . *= M.siemens_coefficient
+
+ // Code that calls this expects 1 = immunity so we need to invert again.
+ . = 1 - .
+ . = min(., 1.0)
// Shot with taser/stunvolver
/mob/living/simple_mob/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon=null)
@@ -218,17 +251,29 @@
// Armor
/mob/living/simple_mob/getarmor(def_zone, attack_flag)
var/armorval = armor[attack_flag]
- if(!armorval)
- return 0
- else
- return armorval
+ if(isnull(armorval))
+ armorval = 0
+
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ var/modifier_armor = LAZYACCESS(M.armor_percent, attack_flag)
+ if(modifier_armor)
+ armorval += modifier_armor
+
+ return armorval
/mob/living/simple_mob/getsoak(def_zone, attack_flag)
var/armorval = armor_soak[attack_flag]
- if(!armorval)
- return 0
- else
- return armorval
+ if(isnull(armorval))
+ armorval = 0
+
+ for(var/thing in modifiers)
+ var/datum/modifier/M = thing
+ var/modifier_armor = LAZYACCESS(M.armor_flat, attack_flag)
+ if(modifier_armor)
+ armorval += modifier_armor
+
+ return armorval
// Lightning
/mob/living/simple_mob/lightning_act()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
index 87c05b317d..9fe548ee61 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/crab.dm
@@ -54,4 +54,4 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/crab
name = "meat"
desc = "A chunk of meat."
- icon_state = "crustacean-meat"
+ icon_state = "crustacean-meat"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
index 0918c1b8ae..dedac8e1e2 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm
@@ -10,6 +10,8 @@
maxHealth = 5
health = 5
+ melee_damage_lower = 1
+ melee_damage_upper = 3
movement_cooldown = 1.5
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
index 1084da4889..189216c32d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/pets/dog.dm
@@ -237,4 +237,14 @@
name = "Spice"
real_name = "Spice" //Intended to hold the name without altering it.
gender = FEMALE
- desc = "It's a tamaskan, the name Spice can be found on its collar."
\ No newline at end of file
+ desc = "It's a tamaskan, the name Spice can be found on its collar."
+
+// Brittany Spaniel
+
+/mob/living/simple_mob/animal/passive/dog/brittany
+ name = "brittany"
+ real_name = "brittany"
+ desc = "It's a brittany spaniel."
+ icon_state = "brittany"
+ icon_living = "brittany"
+ icon_dead = "brittany_dead"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
index 5f7aaa479b..1010ab6eab 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/frostfly.dm
@@ -169,3 +169,4 @@
holder.face_atom(A)
F.energy = max(0, F.energy - 1) // The AI will eventually flee.
+
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm
new file mode 100644
index 0000000000..e796cd488b
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/hare.dm
@@ -0,0 +1,68 @@
+// Complete chumps but a little bit hardier than mice.
+
+/datum/category_item/catalogue/fauna/hare
+ name = "Sivian Fauna - Ice Hare"
+ desc = "Classification: S Lepus petropellis\
+ \
+ Hard-skinned, horned herbivores common on the glacial regions of Sif. \
+ The Ice Hare lives in colonies of up to thirty individuals dug beneath thick ice sheets for protection from many burrowing predators. \
+ Their diet consists of mostly moss and lichens, though this is supplemented with the consumption of hard mineral pebbles, which it swallows whole, \
+ which form the small, hard, 'ice-like' scales of the animal. \
+ The Ice Hare is almost completely harmless to sapients, with relatively blunt claws and a weak jaw. Its main forms of self-defense are its speed, \
+ and two sharp head spikes whose 'ear-like' appearance gave the species its common name."
+ value = CATALOGUER_REWARD_EASY
+
+/mob/living/simple_mob/animal/passive/hare
+ name = "ice hare"
+ real_name = "ice hare"
+ desc = "A small horned herbivore with a tough 'ice-like' hide."
+ tt_desc = "S Lepus petropellis" //Sivian hare rockskin
+ catalogue_data = list(/datum/category_item/catalogue/fauna/hare)
+
+ icon_state = "hare"
+ icon_living = "hare"
+ icon_dead = "hare_dead"
+ icon_rest = "hare_rest"
+
+ maxHealth = 20
+ health = 20
+
+ armor = list(
+ "melee" = 30,
+ "bullet" = 5,
+ "laser" = 5,
+ "energy" = 0,
+ "bomb" = 10,
+ "bio" = 0,
+ "rad" = 0
+ )
+
+ armor_soak = list(
+ "melee" = 5,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0
+ )
+
+ movement_cooldown = 2
+
+ mob_size = MOB_SMALL
+ pass_flags = PASSTABLE
+ layer = MOB_LAYER
+ density = 0
+
+ response_help = "pets"
+ response_disarm = "nudges"
+ response_harm = "kicks"
+
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
+
+ say_list_type = /datum/say_list/hare
+
+/datum/say_list/hare
+ speak = list("Snrf...","Crk!")
+ emote_hear = list("crackles","sniffles")
+ emote_see = list("stomps the ground", "sniffs the air", "chews on something")
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm
new file mode 100644
index 0000000000..d153540dd5
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/moth.dm
@@ -0,0 +1,143 @@
+//Very similar to frostflies, but with a non-lethal gas and less damaging, but less easy to protect from, projectiles.
+
+/datum/category_item/catalogue/fauna/tymisian
+ name = "Binman Fauna - Tymisian Moth"
+ desc = "Classification: B Carabidae glacios \
+ \
+ A meter-long fuzzy insect from the planet Binma. \
+ A native of the Binman contintents of Telarus and Dalomee, the Tymisian Moth usually lives in communal \
+ groups of upwards of thirty individuals, known as 'spuzzes', and typically breeds up to three times in its \
+ fifteen year natural lifespan. \
+ \
+ Though strictly herbivorous, the moth has an acute sense of smell which it uses to detect potential predators. \
+ Impressively, the moth secretes an oily substance which it uses to coat collected material stored in 'soft pockets' \
+ beneath each wing, which in turn attracts colonies of pungent bacteria. \
+ When threatened, the moth will release this dust, which has a disorienting effect on most Binman species, as well as all known sapients. \
+ \
+ The Tymisian Moth is considered an invasive species on Sif, and is believed to have been established from an illegally \
+ released pet collection. Though less dangerous than in its native environment, the moth has nonetheless established a \
+ similar symbiotic relationship with Sivian bacteria for its defense mechanism, and is still to be considered quite dangerous. \
+ \
+ As an invasive species, individuals encountering the Tymisian Moth on Sif are requested to report the sighting to local wildlife \
+ services, and remove or destroy the creature if it is safe to do so."
+ value = CATALOGUER_REWARD_MEDIUM
+
+/mob/living/simple_mob/animal/sif/tymisian
+ name = "Tymisian Moth"
+ desc = "A huge, fuzzy insect with a disorienting dust."
+ tt_desc = "B Lepidoptera cinereus"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/tymisian)
+
+ faction = "spiders" //Hostile to most mobs, not all.
+
+ icon_state = "moth"
+ icon_living = "moth"
+ icon_dead = "moth_dead"
+ icon_rest = "moth_dead"
+ icon = 'icons/mob/animal.dmi'
+
+ maxHealth = 80
+ health = 80
+
+ hovering = TRUE
+
+ movement_cooldown = 0.5
+
+ melee_damage_lower = 5
+ melee_damage_upper = 10
+ base_attack_cooldown = 1.5 SECONDS
+ attacktext = list("nipped", "bit", "pinched")
+
+ projectiletype = /obj/item/projectile/energy/blob
+
+ special_attack_cooldown = 10 SECONDS
+ special_attack_min_range = 0
+ special_attack_max_range = 6
+
+ var/energy = 100
+ var/max_energy = 100
+
+ var/datum/effect/effect/system/smoke_spread/mothspore/smoke_spore
+
+ say_list_type = /datum/say_list/tymisian
+ ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/frostfly //Uses frostfly AI, since so similar mechanically
+
+/datum/say_list/tymisian
+ speak = list("Zzzz.", "Rrr...", "Zzt?")
+ emote_see = list("grooms itself","sprinkles dust from its wings", "rubs its mandibles")
+ emote_hear = list("chitters", "clicks", "rattles")
+
+ say_understood = list("Ssst.")
+ say_cannot = list("Zzrt.")
+ say_maybe_target = list("Rr?")
+ say_got_target = list("Rrrrt!")
+ say_threaten = list("Kszsz.","Kszzt...","Kzzi!")
+ say_stand_down = list("Sss.","Zt.","! clicks.")
+ say_escalate = list("Rszt!")
+
+ threaten_sound = 'sound/effects/spray3.ogg'
+ stand_down_sound = 'sound/effects/squelch1.ogg'
+
+
+/obj/effect/effect/smoke/elemental/mothspore
+ name = "spore cloud"
+ desc = "A dust cloud filled with disorienting bacterial spores."
+ color = "#80AB82"
+
+/obj/effect/effect/smoke/elemental/mothspore/affect(mob/living/L) //Similar to a very weak flash, but depends on breathing instead of eye protection.
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ if(C.stat != DEAD)
+ if(C.needs_to_breathe())
+ var/spore_strength = 5
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ H.Confuse(spore_strength)
+ H.eye_blurry = max(H.eye_blurry, spore_strength)
+ H.adjustHalLoss(10 * (spore_strength / 5))
+
+/datum/effect/effect/system/smoke_spread/mothspore
+ smoke_type = /obj/effect/effect/smoke/elemental/mothspore
+
+/mob/living/simple_mob/animal/sif/tymisian/do_special_attack(atom/A)
+ . = TRUE
+ switch(a_intent)
+ if(I_DISARM)
+ if(energy < 20)
+ return FALSE
+
+ energy -= 20
+
+ if(smoke_spore)
+ smoke_spore.set_up(7,0,src)
+ smoke_spore.start()
+ return TRUE
+
+ return FALSE
+
+/mob/living/simple_mob/animal/sif/tymisian/Initialize()
+ ..()
+ smoke_spore = new
+ verbs += /mob/living/proc/ventcrawl
+ verbs += /mob/living/proc/hide
+
+/mob/living/simple_mob/animal/sif/tymisian/handle_special()
+ ..()
+
+ if(energy < max_energy)
+ energy++
+
+/mob/living/simple_mob/animal/sif/tymisian/Stat()
+ ..()
+ if(client.statpanel == "Status")
+ statpanel("Status")
+ if(emergency_shuttle)
+ var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(eta_status)
+ stat(null, eta_status)
+ stat("Energy", energy)
+
+/mob/living/simple_mob/animal/sif/tymisian/should_special_attack(atom/A)
+ if(energy >= 20)
+ return TRUE
+ return FALSE
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/pillbug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/pillbug.dm
new file mode 100644
index 0000000000..f70ea218c3
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/pillbug.dm
@@ -0,0 +1,51 @@
+/datum/category_item/catalogue/fauna/pillbug
+ name = "Sivian Fauna - Fire Bug"
+ desc = "Classification: S Armadillidiidae calidi \
+ \
+ A 10 inch long, hard-shelled insect with a natural adaption to living around terrestrial lava vents. \
+ The fire bug's hard shell offers extremely effective protection against most threats, \
+ though the species is almost completely docile, and will prefer to continue grazing on its diet of volcanic micro-flora \
+ rather than defend itself in most situations.\
+ \
+ The fire bug is a curiosity to most on the frontier, offering little in the way of meaningful food or resources, \
+ though at least one Sivian fashion designer has used their iridescent red shells to create striking, hand-made garments."
+ value = CATALOGUER_REWARD_EASY
+
+/mob/living/simple_mob/animal/passive/pillbug
+ name = "fire bug"
+ desc = "A tiny plated bug found in Sif's volcanic regions."
+ tt_desc = "S Armadillidiidae calidi"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/pillbug)
+
+ icon_state = "pillbug"
+ icon_living = "pillbug"
+ icon_dead = "pillbug_dead"
+
+ health = 15
+ maxHealth = 15
+ mob_size = MOB_MINISCULE
+
+ response_help = "gently touches"
+ response_disarm = "rolls over"
+ response_harm = "stomps on"
+
+ armor = list(
+ "melee" = 30,
+ "bullet" = 10,
+ "laser" = 50,
+ "energy" = 50,
+ "bomb" = 30,
+ "bio" = 100,
+ "rad" = 100
+ )
+
+ // The frostfly's body is incredibly cold at all times, natural resistance to things trying to burn it.
+ armor_soak = list(
+ "melee" = 10,
+ "bullet" = 0,
+ "laser" = 10,
+ "energy" = 10,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0
+ )
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm b/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm
new file mode 100644
index 0000000000..40ae65d3bc
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/sif/siffet.dm
@@ -0,0 +1,61 @@
+// Somewhere between a fox and a weasel. Doesn't mess with stuff significantly bigger than it, but you don't want to get on its bad side.
+
+/datum/category_item/catalogue/fauna/siffet
+ name = "Sivian Fauna - Siffet"
+ desc = "Classification: S Pruinaeictis velocis\
+ \
+ The Siffet, or Sivian Frost Weasel is a small, solitary predator known for its striking ability to take down prey up to twice their size. \
+ The majority of the Siffet's adult life is spent in isolation, prowling large territories in Sif's tundra regions, \
+ only seeking out other individuals during the summer mating season, when deadly battles for dominance are common. \
+ Though mostly docile towards adult humans and other large sapients, the Siffet has been known to target children and smaller species as prey, \
+ and a provoked Siffet can be a danger to even the most experienced handler due to its quick movement and surprisingly powerful jaws. \
+ The Siffet is sometimes hunted for its remarkably soft pelt, though most is obtained through fur farming."
+ value = CATALOGUER_REWARD_MEDIUM
+
+/mob/living/simple_mob/animal/sif/siffet
+ name = "siffet"
+ desc = "A small, solitary predator with silky fur. Despite its size, the Siffet is ferocious when provoked."
+ tt_desc = "S Pruinaeictis velocis" //Sivian frost weasel, fast
+ catalogue_data = list(/datum/category_item/catalogue/fauna/siffet)
+
+ faction = "siffet"
+
+ mob_size = MOB_SMALL
+
+ icon_state = "siffet"
+ icon_living = "siffet"
+ icon_dead = "siffet_dead"
+ icon = 'icons/mob/animal.dmi'
+
+ maxHealth = 60
+ health = 60
+
+ movement_cooldown = 0
+
+ melee_damage_lower = 10
+ melee_damage_upper = 15
+ base_attack_cooldown = 1 SECOND
+ attack_sharp = 1
+ attacktext = list("sliced", "snapped", "gnawed")
+
+ say_list_type = /datum/say_list/siffet
+ ai_holder_type = /datum/ai_holder/simple_mob/siffet
+
+/datum/say_list/siffet
+ speak = list("Yap!", "Heh!", "Huff.")
+ emote_see = list("sniffs its surroundings","flicks its ears", "scratches the ground")
+ emote_hear = list("chatters", "huffs")
+
+/datum/ai_holder/simple_mob/siffet
+ hostile = TRUE
+ retaliate = TRUE
+
+/datum/ai_holder/simple_mob/siffet/post_melee_attack(atom/A) //Evasive
+ if(holder.Adjacent(A))
+ holder.IMove(get_step(holder, pick(alldirs)))
+ holder.face_atom(A)
+
+/mob/living/simple_mob/animal/sif/siffet/IIsAlly(mob/living/L)
+ . = ..()
+ if(!. && L.mob_size > 10) //Attacks things it considers small enough to take on, otherwise only attacks if attacked.
+ return TRUE
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
index 8c9f08a471..1245278421 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm
@@ -1,5 +1,5 @@
/mob/living/simple_mob/vore/horse
- name = "horse"
+ name = "small horse"
desc = "Don't look it in the mouth."
tt_desc = "Equus ferus caballus"
@@ -12,7 +12,7 @@
maxHealth = 60
health = 60
- movement_cooldown = 4 //horses are fast mkay.
+ movement_cooldown = 1.5 //horses are fast mkay.
see_in_dark = 6
response_help = "pets"
@@ -35,18 +35,44 @@
say_list_type = /datum/say_list/horse
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
+/mob/living/simple_mob/vore/horse/big
+ name = "horse"
+ icon_state = "horse"
+ icon_living = "horse"
+ icon_dead = "horse-dead"
+ icon = 'icons/mob/vore64x64.dmi'
+
+ maxHealth = 120
+ health = 120
+
+ melee_damage_lower = 5
+ melee_damage_upper = 15
+ attacktext = list("kicked")
+
+ meat_amount = 6
+
+ old_x = -16
+ old_y = 0
+ default_pixel_x = -16
+ pixel_x = -16
+ pixel_y = 0
+ mount_offset_y = 22
+
// Activate Noms!
/mob/living/simple_mob/vore/horse
vore_active = 1
vore_icons = SA_ICON_LIVING
+/mob/living/simple_mob/vore/horse/big
+ vore_capacity = 2
+
/mob/living/simple_mob/vore/horse/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins
- movement_cooldown = 3
+ movement_cooldown = 1.5
/mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user)
return
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 2bf54878b2..a875b8a574 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -1126,23 +1126,23 @@
//Skrell 'hairstyles'
skr_tentacle_veryshort
- name = "Skrell Very Short Tentacles"
- icon_state = "skrell_hair_veryshort"
+ name = "Skrell Short Tentacles"
+ icon_state = "skrell_hair_short"
species_allowed = list(SPECIES_SKRELL)
gender = MALE
skr_tentacle_short
- name = "Skrell Short Tentacles"
- icon_state = "skrell_hair_short"
- species_allowed = list(SPECIES_SKRELL)
-
- skr_tentacle_average
name = "Skrell Average Tentacles"
icon_state = "skrell_hair_average"
species_allowed = list(SPECIES_SKRELL)
- skr_tentacle_verylong
+ skr_tentacle_average
name = "Skrell Long Tentacles"
+ icon_state = "skrell_hair_long"
+ species_allowed = list(SPECIES_SKRELL)
+
+ skr_tentacle_verylong
+ name = "Skrell Very Long Tentacles"
icon_state = "skrell_hair_verylong"
species_allowed = list(SPECIES_SKRELL)
gender = FEMALE
diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm
index 7a63d49576..9e011f442d 100644
--- a/code/modules/modular_computers/file_system/program.dm
+++ b/code/modules/modular_computers/file_system/program.dm
@@ -42,6 +42,9 @@
/datum/computer_file/program/nano_host()
return computer.nano_host()
+/datum/computer_file/program/tgui_host()
+ return computer.tgui_host()
+
/datum/computer_file/program/clone()
var/datum/computer_file/program/temp = ..()
temp.required_access = required_access
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index cc66674b87..49f9d5b6a4 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -360,7 +360,7 @@ proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large)
drop.drips |= drips
// If there's no data to copy, call it quits here.
- if(!source)
+ if(!istype(source))
return B
// Update appearance.
diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm
index 094d3eb32a..0412ab1470 100644
--- a/code/modules/organs/internal/brain.dm
+++ b/code/modules/organs/internal/brain.dm
@@ -98,6 +98,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
brainmob.real_name = H.real_name
brainmob.dna = H.dna.Clone()
brainmob.timeofhostdeath = H.timeofdeath
+ brainmob.ooc_notes = H.ooc_notes //VOREStation Edit
// Copy modifiers.
for(var/datum/modifier/M in H.modifiers)
@@ -178,6 +179,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
parent_organ = BP_TORSO
clone_source = TRUE
flags = OPENCONTAINER
+ var/list/owner_flavor_text = list()
/obj/item/organ/internal/brain/slime/is_open_container()
return 1
@@ -191,6 +193,11 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
H = owner
color = rgb(min(H.r_skin + 40, 255), min(H.g_skin + 40, 255), min(H.b_skin + 40, 255))
+/obj/item/organ/internal/brain/slime/removed(var/mob/living/user)
+ if(istype(owner))
+ owner_flavor_text = owner.flavor_texts.Copy()
+ ..()
+
/obj/item/organ/internal/brain/slime/proc/reviveBody()
var/datum/dna2/record/R = new /datum/dna2/record()
R.dna = brainmob.dna
@@ -200,6 +207,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
R.types = DNA2_BUF_UI|DNA2_BUF_UE|DNA2_BUF_SE
R.languages = brainmob.languages
R.flavor = list()
+ if(islist(owner_flavor_text))
+ R.flavor = owner_flavor_text.Copy()
for(var/datum/modifier/mod in brainmob.modifiers)
if(mod.flags & MODIFIER_GENETIC)
R.genetic_modifiers.Add(mod.type)
@@ -238,6 +247,7 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
if(!R.dna.real_name) //to prevent null names
R.dna.real_name = "promethean ([rand(0,999)])"
H.real_name = R.dna.real_name
+ H.ooc_notes = brainmob.ooc_notes // VOREStation Edit
H.nutrition = 260 //Enough to try to regenerate ONCE.
H.adjustBruteLoss(40)
diff --git a/code/modules/paperwork/paper_sticky.dm b/code/modules/paperwork/paper_sticky.dm
index e2904aba37..5c1efb2a28 100644
--- a/code/modules/paperwork/paper_sticky.dm
+++ b/code/modules/paperwork/paper_sticky.dm
@@ -1,6 +1,7 @@
/obj/item/sticky_pad
name = "sticky note pad"
desc = "A pad of densely packed sticky notes."
+ description_info = "Click to remove a sticky note from the pile. Click-drag to yourself to pick up the stack. Sticky notes stuck to surfaces/objects will persist for 50 rounds."
color = COLOR_YELLOW
icon = 'icons/obj/stickynotes.dmi'
icon_state = "pad_full"
@@ -50,24 +51,38 @@
. = ..()
if(.)
to_chat(user, SPAN_NOTICE("It has [papers] sticky note\s left."))
- to_chat(user, SPAN_NOTICE("You can click it on grab intent to pick it up."))
/obj/item/sticky_pad/attack_hand(var/mob/user)
- if(user.a_intent == I_GRAB)
- ..()
+ var/obj/item/weapon/paper/paper = new paper_type(get_turf(src))
+ paper.set_content(written_text, "sticky note")
+ paper.last_modified_ckey = written_by
+ paper.color = color
+ written_text = null
+ user.put_in_hands(paper)
+ to_chat(user, SPAN_NOTICE("You pull \the [paper] off \the [src]."))
+ papers--
+ if(papers <= 0)
+ qdel(src)
else
- var/obj/item/weapon/paper/paper = new paper_type(get_turf(src))
- paper.set_content(written_text, "sticky note")
- paper.last_modified_ckey = written_by
- paper.color = color
- written_text = null
- user.put_in_hands(paper)
- to_chat(user, SPAN_NOTICE("You pull \the [paper] off \the [src]."))
- papers--
- if(papers <= 0)
- qdel(src)
- else
- update_icon()
+ update_icon()
+
+/obj/item/sticky_pad/MouseDrop(mob/user as mob)
+ if(user == usr && !(usr.restrained() || usr.stat) && (usr.contents.Find(src) || in_range(src, usr)))
+ if(!istype(usr, /mob/living/simple_mob))
+ if( !usr.get_active_hand() ) //if active hand is empty
+ var/mob/living/carbon/human/H = user
+ var/obj/item/organ/external/temp = H.organs_by_name["r_hand"]
+
+ if (H.hand)
+ temp = H.organs_by_name["l_hand"]
+ if(temp && !temp.is_usable())
+ to_chat(user, "You try to move your [temp.name], but cannot! ")
+ return
+
+ to_chat(user, "You pick up the [src]. ")
+ user.put_in_hands(src)
+
+ return
/obj/item/sticky_pad/random/Initialize()
. = ..()
diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index f7a726d60d..69c14fe8b9 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -19,7 +19,7 @@
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
- if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
+ if(user == usr && !(usr.restrained() || usr.stat) && (usr.contents.Find(src) || in_range(src, usr)))
if(!istype(usr, /mob/living/simple_mob))
if( !usr.get_active_hand() ) //if active hand is empty
var/mob/living/carbon/human/H = user
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 65ec739d62..8c7e9a440b 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -29,8 +29,8 @@
set_dir(pick(cardinal)) //spin spent casings
update_icon()
-/obj/item/ammo_casing/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(W.is_screwdriver())
+/obj/item/ammo_casing/attackby(obj/item/I as obj, mob/user as mob)
+ if(I.is_screwdriver())
if(!BB)
to_chat(user, "There is no bullet in the casing to inscribe anything into. ")
return
@@ -45,6 +45,39 @@
else
to_chat(user, "You inscribe \"[label_text]\" into \the [initial(BB.name)]. ")
BB.name = "[initial(BB.name)] (\"[label_text]\")"
+ else if(istype(I, /obj/item/ammo_magazine) && isturf(loc)) // Mass magazine reloading.
+ var/obj/item/ammo_magazine/box = I
+ if (!box.can_remove_ammo || box.reloading)
+ return ..()
+
+ box.reloading = TRUE
+ var/boolets = 0
+ var/turf/floor = loc
+ for(var/obj/item/ammo_casing/bullet in floor)
+ if(box.stored_ammo.len >= box.max_ammo)
+ break
+ if(box.caliber == bullet.caliber && bullet.BB)
+ if (boolets < 1)
+ to_chat(user, "You start collecting shells. ") // Say it here so it doesn't get said if we don't find anything useful.
+ if(do_after(user,5,box))
+ if(box.stored_ammo.len >= box.max_ammo) // Double check because these can change during the wait.
+ break
+ if(bullet.loc != floor)
+ continue
+ bullet.forceMove(box)
+ box.stored_ammo.Add(bullet)
+ box.update_icon()
+ boolets++
+ else
+ break
+
+ if(boolets > 0)
+ to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s. ")
+ else
+ to_chat(user, "You fail to collect anything! ")
+ box.reloading = FALSE
+ else
+ return ..()
/obj/item/ammo_casing/update_icon()
if(!BB)
@@ -84,6 +117,7 @@
var/initial_ammo = null
var/can_remove_ammo = TRUE // Can this thing have bullets removed one-by-one? As of first implementation, only affects smart magazines
+ var/reloading = FALSE // Is this magazine being reloaded, currently? - Currently only useful for automatic pickups, ignored by manual reloading.
var/multiple_sprites = 0
//because BYOND doesn't support numbers as keys in associative lists
@@ -115,7 +149,7 @@
to_chat(user, "[src] is full! ")
return
user.remove_from_mob(C)
- C.loc = src
+ C.forceMove(src)
stored_ammo.Add(C)
update_icon()
if(istype(W, /obj/item/ammo_magazine/clip))
@@ -131,7 +165,7 @@
return
var/obj/item/ammo_casing/AC = L.stored_ammo[1] //select the next casing.
L.stored_ammo -= AC //Remove this casing from loaded list of the clip.
- AC.loc = src
+ AC.forceMove(src)
stored_ammo.Insert(1, AC) //add it to the head of our magazine's list
L.update_icon()
playsound(src, 'sound/weapons/flipblade.ogg', 50, 1)
diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm
index 7ccdbfc9ba..1d08811bae 100644
--- a/code/modules/projectiles/ammunition/magazines.dm
+++ b/code/modules/projectiles/ammunition/magazines.dm
@@ -88,6 +88,10 @@
name = "magazine (.45 AP)"
ammo_type = /obj/item/ammo_casing/a45/ap
+/obj/item/ammo_magazine/m45/hp
+ name = "magazine (.45 HP)"
+ ammo_type = /obj/item/ammo_casing/a45/hp
+
/obj/item/ammo_magazine/box/emp/b45
name = "ammunition box (.45 haywire)"
ammo_type = /obj/item/ammo_casing/a45/emp
@@ -293,6 +297,11 @@
name = "top mounted magazine (9mm practice)"
ammo_type = /obj/item/ammo_casing/a9mm/practice
+/obj/item/ammo_magazine/m9mmt/ap
+ name = "top mounted magazine (9mm armor piercing)"
+ ammo_type = /obj/item/ammo_casing/a9mm/ap
+ matter = list(DEFAULT_WALL_MATERIAL = 1000, MAT_PLASTEEL = 2000)
+
/obj/item/ammo_magazine/m9mmp90
name = "large capacity top mounted magazine (9mm armor-piercing)"
icon_state = "p90"
diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm
index b83d7ad235..fa6c5d21aa 100644
--- a/code/modules/projectiles/ammunition/rounds.dm
+++ b/code/modules/projectiles/ammunition/rounds.dm
@@ -131,6 +131,7 @@
desc = "A .45 Armor-Piercing bullet casing."
icon_state = "r-casing"
projectile_type = /obj/item/projectile/bullet/pistol/medium/ap
+ matter = list(DEFAULT_WALL_MATERIAL = 50, MAT_PLASTEEL = 25)
/obj/item/ammo_casing/a45/practice
desc = "A .45 practice bullet casing."
@@ -160,6 +161,7 @@
/obj/item/ammo_casing/a45/hp
desc = "A .45 hollow-point bullet casing."
projectile_type = /obj/item/projectile/bullet/pistol/medium/hp
+ matter = list(DEFAULT_WALL_MATERIAL = 60, MAT_PLASTIC = 15)
/*
* 10mm
@@ -246,6 +248,14 @@
// projectile_type = /obj/item/projectile/bullet/shotgun/ion
matter = list(DEFAULT_WALL_MATERIAL = 360, "uranium" = 240)
+/obj/item/ammo_casing/a12g/flechette
+ name = "shotgun flechette"
+ desc = "A 12 gauge flechette cartidge, also known as nailshot."
+ icon_state = "slshell"
+ caliber = "12g"
+ projectile_type = /obj/item/projectile/scatter/flechette
+ matter = list(DEFAULT_WALL_MATERIAL = 360, MAT_PLASTEEL = 100)
+
/*
* 7.62mm
*/
diff --git a/code/modules/projectiles/projectile/scatter.dm b/code/modules/projectiles/projectile/scatter.dm
index 4b0511d0b4..b3900f8429 100644
--- a/code/modules/projectiles/projectile/scatter.dm
+++ b/code/modules/projectiles/projectile/scatter.dm
@@ -27,6 +27,10 @@
/obj/item/projectile/bullet/pellet/shotgun/flak = 3
)
+/*
+ * Energy
+ */
+
/obj/item/projectile/scatter/laser
damage = 40
@@ -61,6 +65,12 @@
/obj/item/projectile/bullet/shotgun/ion = 3
)
+
+/*
+ * Flame
+ */
+
+
/obj/item/projectile/scatter/flamethrower
damage = 5
submunition_spread_max = 100
@@ -70,3 +80,19 @@
submunitions = list(
/obj/item/projectile/bullet/incendiary/flamethrower/tiny = 7
)
+
+
+/*
+ * Ballistic
+ */
+
+
+/obj/item/projectile/scatter/flechette
+ damage = 60
+
+ submunition_spread_max = 40
+ submunition_spread_min = 10
+
+ submunitions = list(
+ /obj/item/projectile/bullet/magnetic/flechette/small = 4
+ )
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 517385757b..97c81cf7cb 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -379,7 +379,7 @@
/obj/machinery/chem_master/tgui_act(action, params, datum/tgui/ui, datum/tgui_state/state)
if(..())
- return
+ return TRUE
if(tgui_act_modal(action, params, ui, state))
return TRUE
@@ -667,6 +667,15 @@
if(length(holdingitems))
options["grind"] = radial_grind
+ if (usr.stat != 0)
+ return
+ if (!beaker)
+ return
+ beaker.loc = src.loc
+ beaker = null
+ visible_message("\The [usr] remove the container from \the [src]. ")
+ update_icon()
+
var/choice
if(length(options) < 1)
@@ -833,4 +842,4 @@
#undef MAX_MULTI_AMOUNT
#undef MAX_UNITS_PER_PILL
#undef MAX_UNITS_PER_PATCH
-#undef MAX_CUSTOM_NAME_LEN
\ No newline at end of file
+#undef MAX_CUSTOM_NAME_LEN
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 11986063a6..be747f821c 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -19,7 +19,7 @@
var/dose = 0
var/max_dose = 0
var/overdose = 0 //Amount at which overdose starts
- var/overdose_mod = 2 //Modifier to overdose damage
+ var/overdose_mod = 1 //Modifier to overdose damage
var/can_overdose_touch = FALSE // Can the chemical OD when processing on touch?
var/scannable = 0 // Shows up on health analyzers.
var/affects_dead = 0
@@ -146,7 +146,10 @@
if(ishuman(M))
var/mob/living/carbon/human/H = M
overdose_mod *= H.species.chemOD_mod
- M.adjustToxLoss(removed * overdose_mod)
+ // 6 damage per unit at minimum, scales with excessive reagents. Rounding should help keep damage consistent between ingest / inject, but isn't perfect.
+ // Hardcapped at 3.6 damage per tick, or 18 damage per unit at 0.2 metabolic rate so that you can't instakill people with overdoses by feeding them infinite periadaxon.
+ // Overall, max damage is slightly less effective than hydrophoron, and 1/5 as effective as cyanide.
+ M.adjustToxLoss(min(removed * overdose_mod * round(3 + 3 * volume / overdose), 3.6))
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
if(!isnull(newdata))
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
index aa641df405..2a60a7d506 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
@@ -180,7 +180,17 @@
L.ExtinguishMob()
L.water_act(amount / 25) // Div by 25, as water_act multiplies it by 5 in order to calculate firestack modification.
remove_self(needed)
- //YWedit start, readds promethean damage that was removed by vorestation.
+ // Put out cigarettes if splashed.
+ if(istype(L, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = L
+ if(H.wear_mask)
+ if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
+ var/obj/item/clothing/mask/smokable/S = H.wear_mask
+ if(S.lit)
+ S.quench()
+ H.visible_message("[H]\'s [S.name] is put out. ")
+
+//YWedit start, readds promethean damage that was removed by vorestation.
/datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_SLIME)
M.adjustToxLoss(6 * removed)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index e19ee6117b..425bf0d2b5 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -260,7 +260,7 @@
step(M, pick(cardinal))
if(prob(5))
M.emote(pick("twitch", "drool", "moan"))
- M.adjustBrainLoss(0.1)
+ M.adjustBrainLoss(0.5 * removed)
/datum/reagent/nitrogen
name = "Nitrogen"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index fab198a14e..fcc56678df 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -48,6 +48,7 @@
reagent_state = LIQUID
color = "#BF0000"
overdose = REAGENTS_OVERDOSE
+ overdose_mod = 0.25
scannable = 1
/datum/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -214,6 +215,8 @@
reagent_state = LIQUID
color = "#225722"
scannable = 1
+ overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 0 // Not used, but it shouldn't deal toxin damage anyways. Carth heals toxins!
/datum/reagent/carthatoline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -234,6 +237,11 @@
if(alien == IS_SLIME)
H.druggy = max(M.druggy, 5)
+/datum/reagent/carthatoline/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ M.adjustHalLoss(2)
+ var/mob/living/carbon/human/H = M
+ H.internal_organs_by_name[O_STOMACH].take_damage(removed * 2) // Causes stomach contractions, makes sense for an overdose to make it much worse.
+
/datum/reagent/dexalin
name = "Dexalin"
id = "dexalin"
@@ -267,6 +275,7 @@
reagent_state = LIQUID
color = "#0040FF"
overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 1.25
scannable = 1
/datum/reagent/dexalinp/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -441,7 +450,8 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#C8A5DC"
- overdose = 60
+ overdose = REAGENTS_OVERDOSE * 2
+ overdose_mod = 0.75
scannable = 1
metabolism = 0.02
mrate_static = TRUE
@@ -465,7 +475,8 @@
taste_description = "sourness"
reagent_state = LIQUID
color = "#CB68FC"
- overdose = 30
+ overdose = REAGENTS_OVERDOSE
+ overdose_mod = 0.75
scannable = 1
metabolism = 0.02
mrate_static = TRUE
@@ -489,6 +500,7 @@
reagent_state = LIQUID
color = "#800080"
overdose = 20
+ overdose_mod = 0.75
scannable = 1
metabolism = 0.02
mrate_static = TRUE
@@ -536,7 +548,7 @@
M.AdjustWeakened(-1)
holder.remove_reagent("mindbreaker", 5)
M.hallucination = max(0, M.hallucination - 10)
- M.adjustToxLoss(5 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
+ M.adjustToxLoss(10 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
M.add_chemical_effect(CE_PAINKILLER, 20 * chem_effective * M.species.chem_strength_pain)
/datum/reagent/hyperzine
@@ -547,6 +559,7 @@
reagent_state = LIQUID
color = "#FF3300"
overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 0.25
/datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_TAJARA)
@@ -560,6 +573,13 @@
M.emote(pick("twitch", "blink_r", "shiver"))
M.add_chemical_effect(CE_SPEEDBOOST, 1)
+/datum/reagent/hyperzine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ if(prob(5)) // 1 in 20
+ var/mob/living/carbon/human/H = M
+ H.internal_organs_by_name[O_HEART].take_damage(1)
+ to_chat(M, "Huh... Is this what a heart attack feels like? ")
+
/datum/reagent/alkysine
name = "Alkysine"
id = "alkysine"
@@ -616,6 +636,7 @@
reagent_state = LIQUID
color = "#561EC3"
overdose = 10
+ overdose_mod = 1.5
scannable = 1
/datum/reagent/peridaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -635,6 +656,11 @@
if(prob(33))
H.Confuse(10)
+/datum/reagent/peridaxon/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ M.adjustHalLoss(5)
+ M.hallucination = max(M.hallucination, 10)
+
/datum/reagent/osteodaxon
name = "Osteodaxon"
id = "osteodaxon"
@@ -643,6 +669,7 @@
color = "#C9BCE3"
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 1.5
scannable = 1
/datum/reagent/osteodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -665,6 +692,7 @@
color = "#4246C7"
metabolism = REM * 0.5
overdose = REAGENTS_OVERDOSE * 0.5
+ overdose_mod = 1.5
scannable = 1
var/repair_strength = 3
@@ -686,6 +714,23 @@
if(W.damage <= 0)
O.wounds -= W
+/datum/reagent/myelamine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
+ // Copypaste of affect_blood with slight adjustment. Heals slightly faster at the cost of high toxins
+ ..()
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/wound_heal = removed * repair_strength / 2
+ for(var/obj/item/organ/external/O in H.bad_external_organs)
+ for(var/datum/wound/W in O.wounds)
+ if(W.bleeding())
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+ if(W.internal)
+ W.damage = max(W.damage - wound_heal, 0)
+ if(W.damage <= 0)
+ O.wounds -= W
+
/datum/reagent/respirodaxon
name = "Respirodaxon"
id = "respirodaxon"
@@ -695,6 +740,7 @@
color = "#4444FF"
metabolism = REM * 1.5
overdose = 10
+ overdose_mod = 1.75
scannable = 1
/datum/reagent/respirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -726,6 +772,7 @@
color = "#8B4513"
metabolism = REM * 1.5
overdose = 10
+ overdose_mod = 1.75
scannable = 1
/datum/reagent/gastirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -757,6 +804,7 @@
color = "#D2691E"
metabolism = REM * 1.5
overdose = 10
+ overdose_mod = 1.75
scannable = 1
/datum/reagent/hepanephrodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -790,6 +838,7 @@
color = "#FF4444"
metabolism = REM * 1.5
overdose = 10
+ overdose_mod = 1.75
scannable = 1
/datum/reagent/cordradaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -817,6 +866,7 @@
reagent_state = SOLID
color = "#7B4D4F"
overdose = 20
+ overdose_mod = 1.5
scannable = 1
/datum/reagent/immunosuprizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -874,6 +924,7 @@
color = "#84B2B0"
metabolism = REM * 0.75
overdose = 20
+ overdose_mod = 1.5
scannable = 1
/datum/reagent/skrellimmuno/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -1032,6 +1083,7 @@
color = "#008000"
metabolism = REM * 0.25
overdose = REAGENTS_OVERDOSE
+ overdose_mod = 1.25
scannable = 1
/datum/reagent/arithrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -1080,6 +1132,7 @@
color = "#FFB0B0"
mrate_static = TRUE
overdose = 10
+ overdose_mod = 1.5
scannable = 1
data = 0
@@ -1261,6 +1314,7 @@
reagent_state = SOLID
color = "#669900"
overdose = REAGENTS_OVERDOSE
+ overdose_mod = 2
scannable = 1
/datum/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index 240397c0e0..99b09caff5 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -423,6 +423,16 @@
if(prob(5))
M.vomit()
+/datum/reagent/space_cleaner/touch_mob(var/mob/living/L, var/amount)
+ if(istype(L, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = L
+ if(H.wear_mask)
+ if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
+ var/obj/item/clothing/mask/smokable/S = H.wear_mask
+ if(S.lit)
+ S.quench() // No smoking in my medbay!
+ H.visible_message("[H]\'s [S.name] is put out. ")
+
/datum/reagent/lube // TODO: spraying on borgs speeds them up
name = "Space Lube"
id = "lube"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index b541d66b44..e18c2e56d9 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -46,6 +46,11 @@
color = "#792300"
strength = 10
+/datum/reagent/toxin/amatoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ // Trojan horse. Waits until most of the toxin has gone through the body before dealing the bulk of it in one big strike.
+ if(volume < max_dose * 0.2)
+ M.adjustToxLoss(max_dose * strength * removed / (max_dose * 0.2))
+
/datum/reagent/toxin/carpotoxin
name = "Carpotoxin"
id = "carpotoxin"
@@ -55,6 +60,10 @@
color = "#003333"
strength = 10
+/datum/reagent/toxin/carpotoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ ..()
+ M.adjustBrainLoss(strength / 4 * removed)
+
/datum/reagent/toxin/neurotoxic_protein
name = "toxic protein"
id = "neurotoxic_protein"
@@ -212,6 +221,7 @@
color = "#d0583a"
metabolism = REM * 3
overdose = 10
+ overdose_mod = 0.5
strength = 3
/datum/reagent/toxin/stimm/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -225,6 +235,13 @@
M.take_organ_damage(6 * removed, 0)
M.add_chemical_effect(CE_SPEEDBOOST, 1)
+/datum/reagent/toxin/stimm/overdose(var/mob/living/carbon/M, var/alient, var/removed)
+ ..()
+ if(prob(10)) // 1 in 10. This thing's made with welder fuel and fertilizer, what do you expect?
+ var/mob/living/carbon/human/H = M
+ H.internal_organs_by_name[O_HEART].take_damage(1)
+ to_chat(M, "Huh... Is this what a heart attack feels like? ")
+
/datum/reagent/toxin/potassium_chloride
name = "Potassium Chloride"
id = "potassium_chloride"
@@ -658,7 +675,7 @@
metabolism = REM * 0.5
ingest_met = REM * 1.5
overdose = REAGENTS_OVERDOSE * 0.5
- overdose_mod = 5 //For that good, lethal feeling
+ overdose_mod = 2 //For that good, lethal feeling // Reduced with overdose changes. Slightly stronger than before
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm
index 1fdf6a24af..7f2fb13f40 100644
--- a/code/modules/reagents/dispenser/dispenser2.dm
+++ b/code/modules/reagents/dispenser/dispenser2.dm
@@ -156,7 +156,7 @@
/obj/machinery/chemical_dispenser/tgui_act(action, params)
if(..())
- return
+ return TRUE
. = TRUE
switch(action)
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index fa19b46e1f..3437c8b582 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -260,18 +260,18 @@
/obj/machinery/disposal/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
if(..())
- return
+ return TRUE
if(usr.loc == src)
to_chat(usr, "You cannot reach the controls from inside. ")
- return
+ return TRUE
if(mode==-1 && action != "eject") // If the mode is -1, only allow ejection
to_chat(usr, "The disposal units power is disabled. ")
- return
+ return TRUE
if(stat & BROKEN)
- return
+ return TRUE
add_fingerprint(usr)
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index 468c7ff6bb..d0aaebb7d8 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -16,7 +16,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
var/mat_efficiency = 1
var/speed = 1
- materials = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0, MAT_PLASTEEL = 0, "plastic" = 0, MAT_GRAPHITE, "gold" = 0, "silver" = 0, "osmium" = 0, MAT_LEAD = 0, "phoron" = 0, "uranium" = 0, "diamond" = 0, MAT_DURASTEEL = 0, MAT_VERDANTIUM = 0, MAT_MORPHIUM = 0, MAT_METALHYDROGEN = 0, MAT_SUPERMATTER = 0)
+ materials = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0, MAT_PLASTEEL = 0, "plastic" = 0, MAT_GRAPHITE = 0, "gold" = 0, "silver" = 0, "osmium" = 0, MAT_LEAD = 0, "phoron" = 0, "uranium" = 0, "diamond" = 0, MAT_DURASTEEL = 0, MAT_VERDANTIUM = 0, MAT_MORPHIUM = 0, MAT_METALHYDROGEN = 0, MAT_SUPERMATTER = 0)
hidden_materials = list(MAT_PLASTEEL, MAT_DURASTEEL, MAT_GRAPHITE, MAT_VERDANTIUM, MAT_MORPHIUM, MAT_METALHYDROGEN, MAT_SUPERMATTER)
diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm
index e2479a8e1c..425223ffe7 100644
--- a/code/modules/research/designs/circuits/circuits.dm
+++ b/code/modules/research/designs/circuits/circuits.dm
@@ -493,6 +493,8 @@ CIRCUITS BELOW
name = "'Durand' central control"
id = "durand_main"
req_tech = list(TECH_DATA = 4)
+ materials = list("glass" = 2000, MAT_GRAPHITE = 1250)
+ chemicals = list("pacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/main
sort_string = "NAADA"
@@ -500,6 +502,8 @@ CIRCUITS BELOW
name = "'Durand' peripherals control"
id = "durand_peri"
req_tech = list(TECH_DATA = 4)
+ materials = list("glass" = 2000, MAT_GRAPHITE = 1250)
+ chemicals = list("pacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/peripherals
sort_string = "NAADB"
@@ -507,6 +511,8 @@ CIRCUITS BELOW
name = "'Durand' weapon control and targeting"
id = "durand_targ"
req_tech = list(TECH_DATA = 4, TECH_COMBAT = 2)
+ materials = list("glass" = 2000, MAT_GRAPHITE = 1250)
+ chemicals = list("pacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
sort_string = "NAADC"
diff --git a/code/modules/research/designs/weapons.dm b/code/modules/research/designs/weapons.dm
index e475d6752f..9ba1ce297f 100644
--- a/code/modules/research/designs/weapons.dm
+++ b/code/modules/research/designs/weapons.dm
@@ -100,15 +100,24 @@
sort_string = "MABBA"
/datum/design/item/weapon/ballistic/ammo/stunshell
- name = "stun shell"
+ name = "stun shells"
desc = "A stunning shell for a shotgun."
id = "stunshell"
req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
materials = list(DEFAULT_WALL_MATERIAL = 4000)
- build_path = /obj/item/ammo_casing/a12g/stunshell
+ build_path = /obj/item/weapon/storage/box/stunshells
sort_string = "MABBB"
autolathe_build = 1 //Ywedit
+/datum/design/item/weapon/ballistic/ammo/empshell
+ name = "emp shells"
+ desc = "An electromagnetic shell for a shotgun."
+ id = "empshell"
+ req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_URANIUM = 1000)
+ build_path = /obj/item/weapon/storage/box/empshells
+ sort_string = "MABBC"
+
// Phase weapons
/datum/design/item/weapon/phase/AssembleDesignName()
diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm
index 7316c42179..899b5fd9db 100644
--- a/code/modules/research/mechfab_designs.dm
+++ b/code/modules/research/mechfab_designs.dm
@@ -177,57 +177,57 @@
name = "Durand Chassis"
id = "durand_chassis"
build_path = /obj/item/mecha_parts/chassis/durand
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 18750)
+ time = 20
+ materials = list(DEFAULT_WALL_MATERIAL = 18750, MAT_PLASTEEL = 20000)
/datum/design/item/mechfab/durand/torso
name = "Durand Torso"
id = "durand_torso"
build_path = /obj/item/mecha_parts/part/durand_torso
- time = 30
- materials = list(DEFAULT_WALL_MATERIAL = 41250, "glass" = 15000, "silver" = 7500)
+ time = 60
+ materials = list(DEFAULT_WALL_MATERIAL = 41250, MAT_PLASTEEL = 15000, "silver" = 7500)
/datum/design/item/mechfab/durand/head
name = "Durand Head"
id = "durand_head"
build_path = /obj/item/mecha_parts/part/durand_head
- time = 20
+ time = 40
materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 7500, "silver" = 2250)
/datum/design/item/mechfab/durand/left_arm
name = "Durand Left Arm"
id = "durand_left_arm"
build_path = /obj/item/mecha_parts/part/durand_left_arm
- time = 20
+ time = 40
materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250)
/datum/design/item/mechfab/durand/right_arm
name = "Durand Right Arm"
id = "durand_right_arm"
build_path = /obj/item/mecha_parts/part/durand_right_arm
- time = 20
+ time = 40
materials = list(DEFAULT_WALL_MATERIAL = 26250, "silver" = 2250)
/datum/design/item/mechfab/durand/left_leg
name = "Durand Left Leg"
id = "durand_left_leg"
build_path = /obj/item/mecha_parts/part/durand_left_leg
- time = 20
+ time = 40
materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250)
/datum/design/item/mechfab/durand/right_leg
name = "Durand Right Leg"
id = "durand_right_leg"
build_path = /obj/item/mecha_parts/part/durand_right_leg
- time = 20
+ time = 40
materials = list(DEFAULT_WALL_MATERIAL = 30000, "silver" = 2250)
/datum/design/item/mechfab/durand/armour
name = "Durand Armour Plates"
id = "durand_armour"
build_path = /obj/item/mecha_parts/part/durand_armour
- time = 60
- materials = list(DEFAULT_WALL_MATERIAL = 37500, "uranium" = 7500)
+ time = 90
+ materials = list(DEFAULT_WALL_MATERIAL = 27500, MAT_PLASTEEL = 10000, "uranium" = 7500)
/datum/design/item/mechfab/janus
category = "Janus"
@@ -1038,4 +1038,151 @@
time = 20
req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 5, TECH_PHORON = 3, TECH_MAGNET = 4, TECH_POWER = 6)
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 6000, "silver" = 4000)
-
\ No newline at end of file
+
+// Exosuit Internals
+
+/datum/design/item/mechfab/exointernal
+ category = "Exosuit Internals"
+ time = 120
+ req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3)
+
+/datum/design/item/mechfab/exointernal/stan_armor
+ name = "Armor Plate (Standard)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_standard"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/mecha_parts/component/armor
+
+/datum/design/item/mechfab/exointernal/light_armor
+ name = "Armor Plate (Lightweight)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_lightweight"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_PLASTIC = 3000)
+ build_path = /obj/item/mecha_parts/component/armor/lightweight
+
+/datum/design/item/mechfab/exointernal/reinf_armor
+ name = "Armor Plate (Reinforced)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_reinforced"
+ req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 20000, MAT_PLASTEEL = 10000)
+ build_path = /obj/item/mecha_parts/component/armor/reinforced
+
+/datum/design/item/mechfab/exointernal/mining_armor
+ name = "Armor Plate (Blast)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_blast"
+ req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 20000, MAT_PLASTEEL = 10000)
+ build_path = /obj/item/mecha_parts/component/armor/mining
+
+/datum/design/item/mechfab/exointernal/gygax_armor
+ name = "Armor Plate (Marshal)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_gygax"
+ req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_COMBAT = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 40000, MAT_DIAMOND = 8000)
+ build_path = /obj/item/mecha_parts/component/armor/marshal
+
+/datum/design/item/mechfab/exointernal/darkgygax_armor
+ name = "Armor Plate (Blackops)"
+ category = "Exosuit Internals"
+ id = "exo_int_armor_dgygax"
+ req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_COMBAT = 4, TECH_ILLEGAL = 2)
+ materials = list(MAT_PLASTEEL = 20000, MAT_DIAMOND = 10000, MAT_GRAPHITE = 20000)
+ build_path = /obj/item/mecha_parts/component/armor/marshal/reinforced
+
+/datum/design/item/mechfab/exointernal/durand_armour
+ name = "Armor Plate (Military)"
+ id = "exo_int_armor_durand"
+ req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_COMBAT = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 40000, MAT_PLASTEEL = 9525, "uranium" = 8000)
+ build_path = /obj/item/mecha_parts/component/armor/military
+
+/datum/design/item/mechfab/exointernal/marauder_armour
+ name = "Armor Plate (Cutting Edge)"
+ id = "exo_int_armor_marauder"
+ req_tech = list(TECH_MATERIAL = 8, TECH_ENGINEERING = 7, TECH_COMBAT = 6, TECH_ILLEGAL = 4)
+ materials = list(MAT_DURASTEEL = 40000, MAT_GRAPHITE = 8000, MAT_OSMIUM = 8000)
+ build_path = /obj/item/mecha_parts/component/armor/military/marauder
+
+/datum/design/item/mechfab/exointernal/phazon_armour
+ name = "Armor Plate (Janus)"
+ id = "exo_int_armor_phazon"
+ req_tech = list(TECH_MATERIAL = 6, TECH_ENGINEERING = 6, TECH_COMBAT = 6, TECH_ILLEGAL = 4)
+ materials = list(MAT_MORPHIUM = 40000, MAT_DURASTEEL = 8000, MAT_OSMIUM = 8000)
+ build_path = /obj/item/mecha_parts/component/armor/alien
+
+/datum/design/item/mechfab/exointernal/stan_hull
+ name = "Hull (Standard)"
+ category = "Exosuit Internals"
+ id = "exo_int_hull_standard"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/mecha_parts/component/hull
+
+/datum/design/item/mechfab/exointernal/durable_hull
+ name = "Hull (Durable)"
+ category = "Exosuit Internals"
+ id = "exo_int_hull_durable"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_PLASTEEL = 5000)
+ build_path = /obj/item/mecha_parts/component/hull/durable
+
+/datum/design/item/mechfab/exointernal/light_hull
+ name = "Hull (Lightweight)"
+ category = "Exosuit Internals"
+ id = "exo_int_hull_light"
+ req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_PLASTIC = 3000)
+ build_path = /obj/item/mecha_parts/component/hull/lightweight
+
+/datum/design/item/mechfab/exointernal/stan_gas
+ name = "Life-Support (Standard)"
+ category = "Exosuit Internals"
+ id = "exo_int_lifesup_standard"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/mecha_parts/component/gas
+
+/datum/design/item/mechfab/exointernal/reinf_gas
+ name = "Life-Support (Reinforced)"
+ category = "Exosuit Internals"
+ id = "exo_int_lifesup_reinforced"
+ req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 8000, MAT_PLASTEEL = 8000, MAT_GRAPHITE = 1000)
+ build_path = /obj/item/mecha_parts/component/gas/reinforced
+
+/datum/design/item/mechfab/exointernal/stan_electric
+ name = "Electrical Harness (Standard)"
+ category = "Exosuit Internals"
+ id = "exo_int_electric_standard"
+ req_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_PLASTIC = 1000)
+ build_path = /obj/item/mecha_parts/component/electrical
+
+/datum/design/item/mechfab/exointernal/efficient_electric
+ name = "Electrical Harness (High)"
+ category = "Exosuit Internals"
+ id = "exo_int_electric_efficient"
+ req_tech = list(TECH_POWER = 4, TECH_ENGINEERING = 4, TECH_DATA = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, MAT_PLASTIC = 3000, MAT_SILVER = 3000)
+ build_path = /obj/item/mecha_parts/component/electrical/high_current
+
+/datum/design/item/mechfab/exointernal/stan_actuator
+ name = "Actuator Lattice (Standard)"
+ category = "Exosuit Internals"
+ id = "exo_int_actuator_standard"
+ req_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/mecha_parts/component/actuator
+
+/datum/design/item/mechfab/exointernal/hispeed_actuator
+ name = "Actuator Lattice (Overclocked)"
+ category = "Exosuit Internals"
+ id = "exo_int_actuator_overclock"
+ req_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4, TECH_POWER = 4)
+ materials = list(MAT_PLASTEEL = 10000, MAT_OSMIUM = 3000, MAT_GOLD = 5000)
+ build_path = /obj/item/mecha_parts/component/actuator/hispeed
\ No newline at end of file
diff --git a/code/modules/research/prosfab_designs_vr.dm b/code/modules/research/prosfab_designs_vr.dm
index 02f39bd307..094d036c91 100644
--- a/code/modules/research/prosfab_designs_vr.dm
+++ b/code/modules/research/prosfab_designs_vr.dm
@@ -5,4 +5,11 @@
id = "borg_sizeshift_module"
req_tech = list(TECH_BLUESPACE = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
- build_path = /obj/item/borg/upgrade/sizeshift
\ No newline at end of file
+ build_path = /obj/item/borg/upgrade/sizeshift
+
+/datum/design/item/prosfab/robot_upgrade/bellysizeupgrade
+ name = "Size Alteration Module"
+ id = "borg_hound_capacity_module"
+ req_tech = list(TECH_BLUESPACE = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000, "glass" = 4000)
+ build_path = /obj/item/borg/upgrade/bellysizeupgrade
\ No newline at end of file
diff --git a/code/modules/resleeving/computers.dm b/code/modules/resleeving/computers.dm
index f6e11c5318..8a3d0867d9 100644
--- a/code/modules/resleeving/computers.dm
+++ b/code/modules/resleeving/computers.dm
@@ -97,6 +97,7 @@
active_br = new /datum/transhuman/body_record(brDisk.stored) // Loads a COPY!
to_chat(user, "\The [src] loads the body record from \the [W] before ejecting it. ")
attack_hand(user)
+ view_b_rec("view_b_rec", list("ref" = "\ref[active_br]"))
else
..()
return
@@ -195,7 +196,7 @@
/obj/machinery/computer/transhuman/resleeving/tgui_act(action, params)
if(..())
- return
+ return TRUE
. = TRUE
switch(tgui_modal_act(src, action, params))
@@ -216,42 +217,7 @@
switch(action)
if("view_b_rec")
- var/ref = params["ref"]
- if(!length(ref))
- return
- active_br = locate(ref)
- if(istype(active_br))
- if(isnull(active_br.ckey))
- qdel(active_br)
- set_temp("Error: Record corrupt.", "danger")
- else
- var/can_grow_active = 1
- if(!synthetic_capable && active_br.synthetic) //Disqualified due to being synthetic in an organic only.
- can_grow_active = 0
- set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of synthfabs.", "danger")
- else if(!organic_capable && !active_br.synthetic) //Disqualified for the opposite.
- can_grow_active = 0
- set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of cloners.", "danger")
- else if(!synthetic_capable && !organic_capable) //What have you done??
- can_grow_active = 0
- set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of synthfabs and cloners.", "danger")
- else if(active_br.toocomplex)
- can_grow_active = 0
- set_temp("Error: Cannot grow [active_br.mydna.name] due to species complexity.", "danger")
- var/list/payload = list(
- activerecord = "\ref[active_br]",
- realname = sanitize(active_br.mydna.name),
- species = active_br.speciesname ? active_br.speciesname : active_br.mydna.dna.species,
- sex = active_br.bodygender,
- mind_compat = active_br.locked ? "Low" : "High",
- synthetic = active_br.synthetic,
- oocnotes = active_br.body_oocnotes ? active_br.body_oocnotes : "None",
- can_grow_active = can_grow_active,
- )
- tgui_modal_message(src, action, "", null, payload)
- else
- active_br = null
- set_temp("Error: Record missing.", "danger")
+ view_b_rec(action, params)
if("view_m_rec")
var/ref = params["ref"]
if(!length(ref))
@@ -266,15 +232,12 @@
if(!LAZYLEN(sleevers))
can_sleeve_active = 0
set_temp("Error: Cannot sleeve due to no sleevers.", "danger")
- return
if(!selected_sleever)
can_sleeve_active = 0
set_temp("Error: Cannot sleeve due to no selected sleever.", "danger")
- return
if(selected_sleever && !selected_sleever.occupant)
can_sleeve_active = 0
set_temp("Error: Cannot sleeve due to lack of sleever occupant.", "danger")
- return
var/list/payload = list(
activerecord = "\ref[active_mr]",
realname = sanitize(active_mr.mindname),
@@ -520,6 +483,40 @@
if(update_now)
SStgui.update_uis(src)
+/obj/machinery/computer/transhuman/resleeving/proc/view_b_rec(action, params)
+ var/ref = params["ref"]
+ if(!length(ref))
+ return
+ active_br = locate(ref)
+ if(istype(active_br))
+ var/can_grow_active = 1
+ if(!synthetic_capable && active_br.synthetic) //Disqualified due to being synthetic in an organic only.
+ can_grow_active = 0
+ set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of synthfabs.", "danger")
+ else if(!organic_capable && !active_br.synthetic) //Disqualified for the opposite.
+ can_grow_active = 0
+ set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of cloners.", "danger")
+ else if(!synthetic_capable && !organic_capable) //What have you done??
+ can_grow_active = 0
+ set_temp("Error: Cannot grow [active_br.mydna.name] due to lack of synthfabs and cloners.", "danger")
+ else if(active_br.toocomplex)
+ can_grow_active = 0
+ set_temp("Error: Cannot grow [active_br.mydna.name] due to species complexity.", "danger")
+ var/list/payload = list(
+ activerecord = "\ref[active_br]",
+ realname = sanitize(active_br.mydna.name),
+ species = active_br.speciesname ? active_br.speciesname : active_br.mydna.dna.species,
+ sex = active_br.bodygender,
+ mind_compat = active_br.locked ? "Low" : "High",
+ synthetic = active_br.synthetic,
+ oocnotes = active_br.body_oocnotes ? active_br.body_oocnotes : "None",
+ can_grow_active = can_grow_active,
+ )
+ tgui_modal_message(src, action, "", null, payload)
+ else
+ active_br = null
+ set_temp("Error: Record missing.", "danger")
+
#undef MENU_MAIN
#undef MENU_BODY
#undef MENU_MIND
\ No newline at end of file
diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm
index 7e75f9343c..19f039869e 100644
--- a/code/modules/tgui/external.dm
+++ b/code/modules/tgui/external.dm
@@ -12,9 +12,10 @@
*
* required user mob The mob who opened/is using the UI.
* optional ui datum/tgui The UI to be updated, if it exists.
+ * optional parent_ui datum/tgui A parent UI that, when closed, closes this UI as well.
*/
-/datum/proc/tgui_interact(mob/user, datum/tgui/ui = null)
+/datum/proc/tgui_interact(mob/user, datum/tgui/ui = null, datum/tgui/parent_ui = null)
return FALSE // Not implemented.
/**
@@ -27,7 +28,7 @@
*
* return list Data to be sent to the UI.
*/
-/datum/proc/tgui_data(mob/user)
+/datum/proc/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
return list() // Not implemented.
/**
diff --git a/code/modules/tgui/modules/_base.dm b/code/modules/tgui/modules/_base.dm
index 23b12b8bd1..46dbc655ff 100644
--- a/code/modules/tgui/modules/_base.dm
+++ b/code/modules/tgui/modules/_base.dm
@@ -12,12 +12,15 @@ Code is pretty much ripped verbatim from nano modules, but with un-needed stuff
var/list/using_access
var/tgui_id
+ var/ntos = FALSE
/datum/tgui_module/New(var/host)
src.host = host
+ if(ntos)
+ tgui_id = "Ntos" + tgui_id
/datum/tgui_module/tgui_host()
- return host ? host : src
+ return host ? host.tgui_host() : src
/datum/tgui_module/tgui_close(mob/user)
if(host)
@@ -43,4 +46,34 @@ Code is pretty much ripped verbatim from nano modules, but with un-needed stuff
if(access in I.access)
return 1
- return 0
\ No newline at end of file
+ return 0
+
+/datum/tgui_module/tgui_static_data()
+ . = ..()
+
+ var/obj/item/modular_computer/host = tgui_host()
+ if(istype(host))
+ . += host.get_header_data()
+
+/datum/tgui_module/tgui_act(action, params)
+ if(..())
+ return TRUE
+
+ var/obj/item/modular_computer/host = tgui_host()
+ if(istype(host))
+ if(action == "PC_exit")
+ host.kill_program()
+ return TRUE
+ if(action == "PC_shutdown")
+ host.shutdown_computer()
+ return TRUE
+ if(action == "PC_minimize")
+ host.minimize_program(usr)
+ return TRUE
+
+// Just a nice little default interact in case the subtypes don't need any special behavior here
+/datum/tgui_module/tgui_interact(mob/user, datum/tgui/ui = null)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, tgui_id, name)
+ ui.open()
\ No newline at end of file
diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm
index b7305ca165..e1223fad74 100644
--- a/code/modules/tgui/modules/camera.dm
+++ b/code/modules/tgui/modules/camera.dm
@@ -144,7 +144,7 @@
return data
/datum/tgui_module/camera/tgui_static_data(mob/user)
- var/list/data = list()
+ var/list/data = ..()
data["mapRef"] = map_name
var/list/cameras = get_available_cameras(user)
data["cameras"] = list()
@@ -160,11 +160,11 @@
/datum/tgui_module/camera/tgui_act(action, params)
if(..())
- return
+ return TRUE
if(action && !issilicon(usr))
playsound(tgui_host(), "terminal_type", 50, 1)
-
+
if(action == "switch_camera")
var/c_tag = params["name"]
var/list/cameras = get_available_cameras(usr)
@@ -287,33 +287,7 @@
// If/when that is done, just move all the PC_ specific data and stuff to the modular computers themselves
// instead of copying this approach here.
/datum/tgui_module/camera/ntos
- tgui_id = "NtosCameraConsole"
-
-/datum/tgui_module/camera/ntos/tgui_state()
- return GLOB.tgui_ntos_state
-
-/datum/tgui_module/camera/ntos/tgui_static_data()
- . = ..()
-
- var/datum/computer_file/program/host = tgui_host()
- if(istype(host) && host.computer)
- . += host.computer.get_header_data()
-
-/datum/tgui_module/camera/ntos/tgui_act(action, params)
- if(..())
- return
-
- var/datum/computer_file/program/host = tgui_host()
- if(istype(host) && host.computer)
- if(action == "PC_exit")
- host.computer.kill_program()
- return TRUE
- if(action == "PC_shutdown")
- host.computer.shutdown_computer()
- return TRUE
- if(action == "PC_minimize")
- host.computer.minimize_program(usr)
- return TRUE
+ ntos = TRUE
// ERT Version provides some additional networks.
/datum/tgui_module/camera/ntos/ert
diff --git a/code/modules/tgui/modules/crew_monitor.dm b/code/modules/tgui/modules/crew_monitor.dm
index 247db8cb6c..86e039222c 100644
--- a/code/modules/tgui/modules/crew_monitor.dm
+++ b/code/modules/tgui/modules/crew_monitor.dm
@@ -24,7 +24,7 @@
return TRUE
if("setZLevel")
ui.set_map_z_level(params["mapZLevel"])
- SStgui.update_uis(src)
+ return TRUE
/datum/tgui_module/crew_monitor/tgui_interact(mob/user, datum/tgui/ui = null)
var/z = get_z(user)
@@ -43,7 +43,7 @@
ui.open()
-/datum/tgui_module/crew_monitor/tgui_data(mob/user, ui_key = "main", datum/tgui_state/state = GLOB.tgui_default_state)
+/datum/tgui_module/crew_monitor/tgui_data(mob/user)
var/data[0]
data["isAI"] = isAI(user)
@@ -59,33 +59,7 @@
return data
/datum/tgui_module/crew_monitor/ntos
- tgui_id = "NtosCrewMonitor"
-
-/datum/tgui_module/crew_monitor/ntos/tgui_state(mob/user)
- return GLOB.tgui_ntos_state
-
-/datum/tgui_module/crew_monitor/ntos/tgui_static_data()
- . = ..()
-
- var/datum/computer_file/program/host = tgui_host()
- if(istype(host) && host.computer)
- . += host.computer.get_header_data()
-
-/datum/tgui_module/crew_monitor/ntos/tgui_act(action, params)
- if(..())
- return
-
- var/datum/computer_file/program/host = tgui_host()
- if(istype(host) && host.computer)
- if(action == "PC_exit")
- host.computer.kill_program()
- return TRUE
- if(action == "PC_shutdown")
- host.computer.shutdown_computer()
- return TRUE
- if(action == "PC_minimize")
- host.computer.minimize_program(usr)
- return TRUE
+ ntos = TRUE
// Subtype for glasses_state
/datum/tgui_module/crew_monitor/glasses
diff --git a/code/modules/tgui/states/default.dm b/code/modules/tgui/states/default.dm
index 9ccc9c751e..ba8d132e0b 100644
--- a/code/modules/tgui/states/default.dm
+++ b/code/modules/tgui/states/default.dm
@@ -36,13 +36,29 @@ GLOBAL_DATUM_INIT(tgui_default_state, /datum/tgui_state/default, new)
return STATUS_DISABLED // Otherwise they can keep the UI open.
/mob/living/silicon/ai/default_can_use_tgui_topic(src_object)
- . = shared_tgui_interaction(src_object)
- if(. < STATUS_INTERACTIVE)
+ . = shared_tgui_interaction()
+ if(. != STATUS_INTERACTIVE)
return
- // The AI can interact with anything it can see nearby, or with cameras while wireless control is enabled.
- if(!control_disabled && can_see(src_object))
+ // Prevents the AI from using Topic on admin levels (by for example viewing through the court/thunderdome cameras)
+ // unless it's on the same level as the object it's interacting with.
+ var/turf/T = get_turf(src_object)
+ if(!T || !(z == T.z || (T.z in using_map.player_levels)))
+ return STATUS_CLOSE
+
+ // If an object is in view then we can interact with it
+ if(src_object in view(client.view, src))
return STATUS_INTERACTIVE
+
+ // If we're installed in a chassi, rather than transfered to an inteliCard or other container, then check if we have camera view
+ if(is_in_chassis())
+ //stop AIs from leaving windows open and using then after they lose vision
+ if(cameranet && !cameranet.checkTurfVis(get_turf(src_object)))
+ return STATUS_CLOSE
+ return STATUS_INTERACTIVE
+ else if(get_dist(src_object, src) <= client.view) // View does not return what one would expect while installed in an inteliCard
+ return STATUS_INTERACTIVE
+
return STATUS_CLOSE
/mob/living/simple_animal/default_can_use_tgui_topic(src_object)
diff --git a/code/modules/tgui/states/ntos.dm b/code/modules/tgui/states/ntos.dm
deleted file mode 100644
index d6a5533e1e..0000000000
--- a/code/modules/tgui/states/ntos.dm
+++ /dev/null
@@ -1,15 +0,0 @@
- /**
- * tgui state: ntos_state
- *
- * Checks a number of things -- mostly physical distance for humans and view for robots.
- * This is basically the same as default, except instead of src_object, it uses the computer
- * it's attached to.
- **/
-
-GLOBAL_DATUM_INIT(tgui_ntos_state, /datum/tgui_state/ntos, new)
-
-/datum/tgui_state/ntos/can_use_topic(src_object, mob/user)
- var/datum/computer_file/program/P = src_object
- if(!istype(P) || !P.computer)
- return FALSE
- return user.default_can_use_tgui_topic(P.computer) // Call the individual mob-overridden procs.
diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm
index 9af1296ab0..191078f675 100644
--- a/code/modules/tgui/tgui.dm
+++ b/code/modules/tgui/tgui.dm
@@ -34,8 +34,12 @@
var/status = STATUS_INTERACTIVE
/// Topic state used to determine status/interactability.
var/datum/tgui_state/state = null
- // The map z-level to display.
+ /// The map z-level to display.
var/map_z_level = 1
+ /// The Parent UI
+ var/datum/tgui/parent_ui
+ /// Children of this UI
+ var/list/children = list()
/**
* public
@@ -46,12 +50,13 @@
* required src_object datum The object or datum which owns the UI.
* required interface string The interface used to render the UI.
* optional title string The title of the UI.
+ * optional parent_ui datum/tgui The parent of this UI.
* optional ui_x int Deprecated: Window width.
* optional ui_y int Deprecated: Window height.
*
* return datum/tgui The requested UI.
*/
-/datum/tgui/New(mob/user, datum/src_object, interface, title, ui_x, ui_y)
+/datum/tgui/New(mob/user, datum/src_object, interface, title, datum/tgui/parent_ui, ui_x, ui_y)
src.user = user
src.src_object = src_object
src.window_key = "[REF(src_object)]-main"
@@ -59,6 +64,9 @@
if(title)
src.title = title
src.state = src_object.tgui_state()
+ src.parent_ui = parent_ui
+ if(parent_ui)
+ parent_ui.children += src
// Deprecated
if(ui_x && ui_y)
src.window_size = list(ui_x, ui_y)
@@ -100,10 +108,13 @@
*
* Close the UI, and all its children.
*/
-/datum/tgui/proc/close(can_be_suspended = TRUE)
+/datum/tgui/proc/close(can_be_suspended = TRUE, logout = FALSE)
if(closing)
return
closing = TRUE
+ for(var/datum/tgui/child in children)
+ child.close()
+ children.Cut()
// If we don't have window_id, open proc did not have the opportunity
// to finish, therefore it's safe to skip this whole block.
if(window)
@@ -111,10 +122,11 @@
// and we want to keep them around, to allow user to read
// the error message properly.
window.release_lock()
- window.close(can_be_suspended)
+ window.close(can_be_suspended, logout)
src_object.tgui_close(user)
SStgui.on_close(src)
state = null
+ parent_ui = null
qdel(src)
/**
@@ -209,7 +221,7 @@
"observer" = isobserver(user),
),
)
- var/data = custom_data || with_data && src_object.tgui_data(user)
+ var/data = custom_data || with_data && src_object.tgui_data(user, src, state)
if(data)
json_data["data"] = data
var/static_data = with_static_data && src_object.tgui_static_data(user)
@@ -244,7 +256,7 @@
return
// Update through a normal call to ui_interact
if(status != STATUS_DISABLED && (autoupdate || force))
- src_object.tgui_interact(user, src)
+ src_object.tgui_interact(user, src, parent_ui)
return
// Update status only
var/needs_update = process_status()
@@ -262,6 +274,8 @@
/datum/tgui/proc/process_status()
var/prev_status = status
status = src_object.tgui_status(user, state)
+ if(parent_ui)
+ status = min(status, parent_ui.status)
return prev_status != status
/datum/tgui/proc/log_message(message)
diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm
index 26533447d4..c78eda86d3 100644
--- a/code/modules/tgui/tgui_window.dm
+++ b/code/modules/tgui/tgui_window.dm
@@ -133,14 +133,19 @@
*
* optional can_be_suspended bool
*/
-/datum/tgui_window/proc/close(can_be_suspended = TRUE)
+/datum/tgui_window/proc/close(can_be_suspended = TRUE, logout = FALSE)
if(!client)
return
if(can_be_suspended && can_be_suspended())
log_tgui(client, "[id]/close: suspending")
status = TGUI_WINDOW_READY
send_message("suspend")
- winset(client, null, "mapwindow.map.focus=true")
+ // You would think that BYOND would null out client or make it stop passing istypes or, y'know, ANYTHING during
+ // logout, but nope! It appears to be perfectly valid to call winset by every means we can measure in Logout,
+ // and yet it causes a bad client runtime. To avoid that happening, we just have to know if we're in Logout or
+ // not.
+ if(!logout && client)
+ winset(client, null, "mapwindow.map.focus=true")
return
log_tgui(client, "[id]/close")
release_lock()
@@ -150,7 +155,8 @@
// to read the error message.
if(!fatally_errored)
client << browse(null, "window=[id]")
- winset(client, null, "mapwindow.map.focus=true")
+ if(!logout && client)
+ winset(client, null, "mapwindow.map.focus=true")
/**
* public
*
@@ -190,9 +196,9 @@
/datum/tgui_window/proc/send_asset(datum/asset/asset)
if(!client || !asset)
return
- // if(istype(asset, /datum/asset/spritesheet))
- // var/datum/asset/spritesheet/spritesheet = asset
- // send_message("asset/stylesheet", spritesheet.css_filename())
+ if(istype(asset, /datum/asset/spritesheet))
+ var/datum/asset/spritesheet/spritesheet = asset
+ send_message("asset/stylesheet", spritesheet.css_filename())
send_message("asset/mappings", asset.get_url_mappings())
sent_assets += list(asset)
asset.send(client)
diff --git a/code/modules/vehicles/Securitrain_vr.dm b/code/modules/vehicles/Securitrain_vr.dm
index 81afed4177..0320721038 100644
--- a/code/modules/vehicles/Securitrain_vr.dm
+++ b/code/modules/vehicles/Securitrain_vr.dm
@@ -166,28 +166,28 @@
else
verbs += /obj/vehicle/train/security/engine/verb/stop_engine
-/obj/vehicle/train/security/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/security/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
- H.apply_effects(5, 5)
+ M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
- H.apply_damage(rand(1,5), BRUTE, pick(parts))
+ M.apply_damage(rand(1,5), BRUTE, pick(parts))
-/obj/vehicle/train/security/trolley/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/security/trolley/RunOver(var/mob/living/M)
..()
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
-/obj/vehicle/train/security/engine/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/security/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
- to_chat(D, "You ran over \the [H]! ")
- visible_message("\The [src] ran over \the [H]! ")
- add_attack_logs(D,H,"Ran over with [src.name]")
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey]) ")
+ to_chat(D, "You ran over \the [M]! ")
+ visible_message("\The [src] ran over \the [M]! ")
+ add_attack_logs(D,M,"Ran over with [src.name]")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey]) ")
else
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
//-------------------------------------------
diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm
index 94437458cf..a118b1c258 100644
--- a/code/modules/vehicles/cargo_train.dm
+++ b/code/modules/vehicles/cargo_train.dm
@@ -152,28 +152,28 @@
else
verbs += /obj/vehicle/train/engine/verb/stop_engine
-/obj/vehicle/train/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
- H.apply_effects(5, 5)
+ M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
- H.apply_damage(rand(1,5), BRUTE, pick(parts))
+ M.apply_damage(rand(1,5), BRUTE, pick(parts))
-/obj/vehicle/train/trolley/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/trolley/RunOver(var/mob/living/M)
..()
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
-/obj/vehicle/train/engine/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
- to_chat(D, "You ran over [H]! ")
- visible_message("\The [src] ran over [H]! ")
- add_attack_logs(D,H,"Ran over with [src.name]")
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey]) ")
+ to_chat(D, "You ran over [M]! ")
+ visible_message("\The [src] ran over [M]! ")
+ add_attack_logs(D,M,"Ran over with [src.name]")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey]) ")
else
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
//-------------------------------------------
diff --git a/code/modules/vehicles/quad.dm b/code/modules/vehicles/quad.dm
index 657d4976f4..3524895ba2 100644
--- a/code/modules/vehicles/quad.dm
+++ b/code/modules/vehicles/quad.dm
@@ -142,15 +142,15 @@
add_attack_logs(D,M,"Ran over with [src.name]")
-/obj/vehicle/train/engine/quadbike/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/engine/quadbike/RunOver(var/mob/living/M)
..()
var/list/throw_dirs = list(1, 2, 4, 8, 5, 6, 9, 10)
if(!emagged)
throw_dirs -= dir
if(tow)
- throw_dirs -= get_dir(H, tow) //Don't throw it at the trailer either.
- var/turf/T = get_step(H, pick(throw_dirs))
- H.throw_at(T, 1, 1, src)
+ throw_dirs -= get_dir(M, tow) //Don't throw it at the trailer either.
+ var/turf/T = get_step(M, pick(throw_dirs))
+ M.throw_at(T, 1, 1, src)
/*
* Trailer bits and bobs.
diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm
index fa7e51ebd9..a3225eb4aa 100644
--- a/code/modules/vehicles/rover_vr.dm
+++ b/code/modules/vehicles/rover_vr.dm
@@ -164,28 +164,28 @@
else
verbs += /obj/vehicle/train/rover/engine/verb/stop_engine
-/obj/vehicle/train/rover/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/rover/RunOver(var/mob/living/M)
var/list/parts = list(BP_HEAD, BP_TORSO, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)
- H.apply_effects(5, 5)
+ M.apply_effects(5, 5)
for(var/i = 0, i < rand(1,3), i++)
- H.apply_damage(rand(1,5), BRUTE, pick(parts))
+ M.apply_damage(rand(1,5), BRUTE, pick(parts))
-/obj/vehicle/train/rover/trolley/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/rover/trolley/RunOver(var/mob/living/M)
..()
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
-/obj/vehicle/train/rover/engine/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/train/rover/engine/RunOver(var/mob/living/M)
..()
if(is_train_head() && istype(load, /mob/living/carbon/human))
var/mob/living/carbon/human/D = load
- to_chat(D, "You ran over \the [H]! ")
- visible_message("\The [src] ran over \the [H]! ")
- add_attack_logs(D,H,"Ran over with [src.name]")
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey]) ")
+ to_chat(D, "You ran over \the [M]! ")
+ visible_message("\The [src] ran over \the [M]! ")
+ add_attack_logs(D,M,"Ran over with [src.name]")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]), driven by [D.name] ([D.ckey]) ")
else
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]) ")
+ attack_log += text("\[[time_stamp()]\] ran over [M.name] ([M.ckey]) ")
//-------------------------------------------
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index e43228c4be..44be1f6bd3 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -292,7 +292,7 @@
cell = null
powercheck()
-/obj/vehicle/proc/RunOver(var/mob/living/carbon/human/H)
+/obj/vehicle/proc/RunOver(var/mob/living/M)
return //write specifics for different vehicles
//-------------------------------------------
diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm
index d62502084a..e163478b77 100644
--- a/code/modules/virus2/disease2.dm
+++ b/code/modules/virus2/disease2.dm
@@ -245,6 +245,25 @@ var/global/list/virusDB = list()
return r
+/datum/disease2/disease/proc/get_tgui_info()
+ . = list(
+ "name" = name(),
+ "spreadtype" = spreadtype,
+ "antigen" = antigens2string(antigen),
+ "rate" = stageprob * 10,
+ "resistance" = resistance,
+ "species" = jointext(affected_species, ", "),
+ "symptoms" = list(),
+ )
+
+ for(var/datum/disease2/effectholder/E in effects)
+ .["symptoms"].Add(list(list(
+ "stage" = E.stage,
+ "name" = E.effect.name,
+ "strength" = "[E.multiplier >= 3 ? "Severe" : E.multiplier > 1 ? "Above Average" : "Average"]",
+ "aggressiveness" = E.chance * 15,
+ )))
+
/datum/disease2/disease/proc/addToDB()
if ("[uniqueID]" in virusDB)
return 0
@@ -252,6 +271,7 @@ var/global/list/virusDB = list()
v.fields["id"] = uniqueID
v.fields["name"] = name()
v.fields["description"] = get_info()
+ v.fields["tgui_description"] = get_tgui_info()
v.fields["antigen"] = antigens2string(antigen)
v.fields["spread type"] = spreadtype
virusDB["[uniqueID]"] = v
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 76f11b8768..0570744028 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -43,7 +43,7 @@
M.verbs += /mob/living/proc/switch_scaling
if(M.no_vore) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach.
return TRUE
- M.vorePanel = new
+ M.vorePanel = new(M)
M.verbs += /mob/living/proc/insidePanel
//Tries to load prefs if a client is present otherwise gives freebie stomach
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index 709138c47e..de776e002b 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -17,1026 +17,804 @@
if(!vorePanel)
log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.")
- vorePanel = new
+ vorePanel = new(src)
- vorePanel.selected = vore_selected
- vorePanel.show(src)
+ vorePanel.tgui_interact(src)
/mob/living/proc/updateVRPanel() //Panel popup update call from belly events.
- if(!vorePanel)
- log_debug("[src] ([type], \ref[src]) didn't have a vorePanel and something tried to update it.")
- vorePanel = new
-
- if(vorePanel.open)
- vorePanel.selected = vore_selected
- vorePanel.show(src)
+ SStgui.update_uis(vorePanel)
//
// Callback Handler for the Inside form
//
/datum/vore_look
- var/datum/browser/popup
- var/obj/belly/selected
- var/show_interacts = 0
- var/open = FALSE
+ var/mob/living/host // Note, we do this in case we ever want to allow people to view others vore panels
+ var/unsaved_changes = FALSE
-/datum/vore_look/Destroy()
- selected = null
- QDEL_NULL(popup)
+/datum/vore_look/New(mob/living/new_host)
+ if(istype(new_host))
+ host = new_host
. = ..()
-/datum/vore_look/Topic(href,href_list[])
- if(vp_interact(href, href_list) && popup)
- popup.set_content(gen_ui(usr))
- usr << output(popup.get_content(), "insidePanel.browser")
+/datum/vore_look/Destroy()
+ host = null
+ . = ..()
-/datum/vore_look/proc/show(mob/living/user)
- if(popup)
- QDEL_NULL(popup)
- popup = new(user, "insidePanel", "Inside!", 450, 700, src)
- popup.set_content(gen_ui(user))
- popup.open()
- open = TRUE
+/datum/vore_look/tgui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "VorePanel", "Inside!")
+ ui.open()
-/datum/vore_look/proc/gen_ui(var/mob/living/user)
- var/list/dat = list()
+// This looks weird, but all tgui_host is used for is state checking
+// So this allows us to use the self_state just fine.
+/datum/vore_look/tgui_host(mob/user)
+ return host
- var/atom/userloc = user.loc
- if(isbelly(userloc))
- var/obj/belly/inside_belly = userloc
- var/mob/living/eater = inside_belly.owner
+// Note, in order to allow others to look at others vore panels, this state would need
+// to be changed to tgui_always_state, and a custom tgui_status() implemented for true "rights" management.
+/datum/vore_look/tgui_state(mob/user)
+ return GLOB.tgui_self_state
- dat += "You are currently [user.absorbed ? "absorbed into " : "inside "] [eater]'s [inside_belly.name] ! "
+/datum/vore_look/var/static/list/nom_icons
+/datum/vore_look/proc/cached_nom_icon(atom/target)
+ LAZYINITLIST(nom_icons)
- if(inside_belly.desc)
- dat += "[inside_belly.desc] " //Extra br
-
- if(inside_belly.contents.len > 1)
- dat += "You can see the following around you: "
- var/list/belly_contents = list()
- for (var/atom/movable/O in inside_belly)
- if(istype(O,/mob/living))
- var/mob/living/M = O
- //That's just you
- if(M == user)
- continue
-
- //That's an absorbed person you're checking
- if(M.absorbed)
- if(user.absorbed)
- belly_contents += "[O] "
- continue
- else
- continue
-
- //Anything else
- dat += "[O] "
-
- //Zero-width space, for wrapping
- dat += ""
-
- dat += jointext(belly_contents, null) //Add in belly contents to main running list
+ var/key = ""
+ if(isobj(target))
+ key = "[target.type]"
+ else if(ismob(target))
+ var/mob/M = target
+ key = "\ref[target][M.real_name]"
+ if(nom_icons[key])
+ . = nom_icons[key]
else
- dat += "You aren't inside anyone."
+ . = icon2base64(getFlatIcon(target,defdir=SOUTH,no_anim=TRUE))
+ nom_icons[key] = .
- var/list/belly_list = list("")
- for(var/belly in user.vore_organs)
- var/obj/belly/B = belly
- if(B == selected)
- belly_list += "[B.name] "
- else
- belly_list += "[B.name]"
- var/spanstyle
- switch(B.digest_mode)
- if(DM_HOLD)
- spanstyle = ""
- if(DM_DIGEST)
- spanstyle = "color:red;"
- if(DM_ABSORB)
- spanstyle = "color:purple;"
- if(DM_DRAIN)
- spanstyle = "color:purple;"
- if(DM_HEAL)
- spanstyle = "color:green;"
- if(DM_SHRINK)
- spanstyle = "color:purple;"
- if(DM_GROW)
- spanstyle = "color:purple;"
- if(DM_SIZE_STEAL)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_MALE)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_HAIR_AND_EYES)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_FEMALE)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_KEEP_GENDER)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_CHANGE_SPECIES_AND_TAUR_EGG)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_REPLICA)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_REPLICA_EGG)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_KEEP_GENDER_EGG)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_MALE_EGG)
- spanstyle = "color:purple;"
- if(DM_TRANSFORM_FEMALE_EGG)
- spanstyle = "color:purple;"
- if(DM_EGG)
- spanstyle = "color:purple;"
+/datum/vore_look/tgui_data(mob/user)
+ var/list/data = list()
- belly_list += " ([B.contents.len]) "
+ if(!host)
+ return data
- if(user.vore_organs.len < BELLIES_MAX)
- belly_list += "New+ "
- belly_list += " "
+ data["unsaved_changes"] = unsaved_changes
- dat += jointext(belly_list, null) //Add in belly list to main running list
+ data["inside"] = list()
+ var/atom/hostloc = host.loc
+ if(isbelly(hostloc))
+ var/obj/belly/inside_belly = hostloc
+ var/mob/living/pred = inside_belly.owner
- // Selected Belly (contents, configuration)
- if(!selected)
- dat += "No belly selected. Click one to select it."
- else
- var/list/belly_contents = list()
- if(selected.contents.len)
- belly_contents += "Contents: "
- for(var/O in selected)
-
- //Mobs can be absorbed, so treat them separately from everything else
- if(istype(O,/mob/living))
- var/mob/living/M = O
-
- //Absorbed gets special color OOoOOOOoooo
- if(M.absorbed)
- belly_contents += "[O] "
- continue
-
- //Anything else
- belly_contents += "[O] "
-
- //Zero-width space, for wrapping
- belly_contents += ""
-
- //If there's more than one thing, add an [All] button
- if(selected.contents.len > 1)
- belly_contents += "\[All\] "
-
- belly_contents += " "
-
- if(belly_contents.len)
- dat += jointext(belly_contents, null)
-
- //Belly Name Button
- dat += "Name: '[selected.name]'"
-
- //Belly Type button
- dat += "Is this belly fleshy: [selected.is_wet ? "Yes" : "No"]"
- if(selected.is_wet)
- dat += "Internal loop for prey?: [selected.wet_loop ? "Yes" : "No"]"
-
- //Digest Mode Button
- var/mode = selected.digest_mode
- dat += "Belly Mode: [mode]"
-
- //Mode addons button
- var/list/flag_list = list()
- for(var/flag_name in selected.mode_flag_list)
- if(selected.mode_flags & selected.mode_flag_list[flag_name])
- flag_list += flag_name
- if(flag_list.len)
- dat += "Mode Addons: [english_list(flag_list)]"
- else
- dat += "Mode Addons: None"
-
- //Item Digest Mode Button
- dat += "Item Mode: [selected.item_digest_mode]"
-
- //Will it contaminate contents?
- dat += "Contaminates: [selected.contaminates ? "Yes" : "No"]"
-
- if(selected.contaminates)
- //Contamination descriptors
- dat += "Contamination Flavor: [selected.contamination_flavor]"
- //Contamination color
- dat += "Contamination Color: [selected.contamination_color]"
-
- //Belly verb
- dat += "Vore Verb: '[selected.vore_verb]'"
-
- //Inside flavortext
- dat += "Flavor Text: '[selected.desc]'"
-
- //Belly Sound Fanciness
- dat += "Use Fancy Sounds: [selected.fancy_vore ? "Yes" : "No"]"
-
- //Belly sound
- dat += "Vore Sound: [selected.vore_sound] Test "
-
- //Release sound
- dat += "Release Sound: [selected.release_sound] Test "
-
- //Belly messages
- dat += "Belly Messages "
-
- //Can belly taste?
- dat += "Can Taste: [selected.can_taste ? "Yes" : "No"]"
-
- //Nutritional percentage
- dat += "Nutritional Gain: [selected.nutrition_percent]%"
-
- //How much brute damage
- dat += "Digest Brute Damage: [selected.digest_brute]"
-
- //How much burn damage
- dat += "Digest Burn Damage: [selected.digest_burn]"
-
- //Minimum size prey must be to show up.
- dat += "Required examine size: [selected.bulge_size*100]%"
-
- //Size that prey will be grown/shrunk to.
- dat += "Shrink/Grow size: [selected.shrink_grow_size*100]%"
-
- //Belly escapability
- dat += "Belly Interactions ([selected.escapable ? "On" : "Off"]) "
- if(selected.escapable)
- dat += "[show_interacts ? "Hide" : "Show"] "
-
- if(show_interacts && selected.escapable)
- var/list/interacts = list()
- interacts += " "
- interacts += "Interaction Settings ? "
- interacts += "Set Belly Escape Chance "
- interacts += " [selected.escapechance]%"
-
- interacts += "Set Belly Escape Time "
- interacts += " [selected.escapetime/10]s"
-
- //Special here to add a gap
- interacts += " "
- interacts += "Set Belly Transfer Chance "
- interacts += " [selected.transferchance]%"
-
- interacts += "Set Belly Transfer Location "
- interacts += " [selected.transferlocation ? selected.transferlocation : "Disabled"]"
-
- //Special here to add a gap
- interacts += " "
- interacts += "Set Belly Absorb Chance "
- interacts += " [selected.absorbchance]%"
-
- interacts += "Set Belly Digest Chance "
- interacts += " [selected.digestchance]%"
- interacts += " "
- dat += jointext(interacts, null)
-
- //Delete button
- dat += "Delete Belly "
-
- dat += " "
-
- var/list/nightmare_list = list()
- switch(user.digestable)
- if(TRUE)
- nightmare_list += "Toggle Digestable (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Digestable (Currently: OFF) "
- switch(user.devourable)
- if(TRUE)
- nightmare_list += "Toggle Devourable (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Devourable (Currently: OFF) "
- switch(user.feeding)
- if(TRUE)
- nightmare_list += "Toggle Feeding (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Feeding (Currently: OFF) "
- switch(user.absorbable)
- if(TRUE)
- nightmare_list += "Toggle Absorbtion Permission (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Absorbtion Permission (Currently: OFF) "
- switch(user.digest_leave_remains)
- if(TRUE)
- nightmare_list += "Toggle Leaving Remains (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Leaving Remains (Currently: OFF) "
- switch(user.allowmobvore)
- if(TRUE)
- nightmare_list += "Toggle Mob Vore (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Mob Vore (Currently: OFF) "
- switch(user.permit_healbelly)
- if(TRUE)
- nightmare_list += "Toggle Healbelly Permission (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Healbelly Permission (Currently: OFF) "
-
- switch(user.can_be_drop_prey)
- if(TRUE)
- nightmare_list += "Toggle Prey Spontaneous Vore (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Prey Spontaneous Vore (Currently: OFF) "
-
- switch(user.can_be_drop_pred)
- if(TRUE)
- nightmare_list += "Toggle Pred Spontaneous Vore (Currently: ON) "
- if(FALSE)
- nightmare_list += "Toggle Pred Spontaneous Vore (Currently: OFF) "
-
- dat += jointext(nightmare_list, null) //AAAA
-
- dat += "Set Your Taste "
- dat += "Set Your Smell "
- dat += "Toggle Hunger Noises "
-
- //Under the last HR, save and stuff.
- dat += "Save Prefs "
- dat += "Refresh "
- dat += "Reload Slot Prefs "
-
- //Returns the dat html to the vore_look
- return jointext(dat, null)
-
-/datum/vore_look/proc/vp_interact(href, href_list)
- var/mob/living/user = usr
- if(href_list["close"])
- open = FALSE
- QDEL_NULL(popup)
- return
-
- if(href_list["show_int"])
- show_interacts = !show_interacts
- return TRUE //Force update
-
- if(href_list["int_help"])
- alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \
- and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \
- These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \
- will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \
- only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help")
- return FALSE //Force update
-
- if(href_list["outsidepick"])
- var/atom/movable/tgt = locate(href_list["outsidepick"])
- var/obj/belly/OB = locate(href_list["outsidebelly"])
- if(!(tgt in OB)) //Aren't here anymore, need to update menu.
- return TRUE
- var/intent = "Examine"
-
- if(istype(tgt,/mob/living))
- var/mob/living/M = tgt
- intent = alert("What do you want to do to them?","Query","Examine","Help Out","Devour")
- switch(intent)
- if("Examine") //Examine a mob inside another mob
- var/list/results = M.examine(user)
- if(!results || !results.len)
- results = list("You were unable to examine that. Tell a developer!")
- to_chat(user, jointext(results, " "))
- return FALSE
-
- if("Help Out") //Help the inside-mob out
- if(user.stat || user.absorbed || M.absorbed)
- to_chat(user,"You can't do that in your state! ")
- return TRUE
-
- to_chat(user,"You begin to push [M] to freedom! ")
- to_chat(M,"[usr] begins to push you to freedom!")
- to_chat(M.loc,"Someone is trying to escape from inside you! ")
- sleep(50)
- if(prob(33))
- OB.release_specific_contents(M)
- to_chat(usr,"You manage to help [M] to safety! ")
- to_chat(M,"[user] pushes you free! ")
- to_chat(OB.owner,"[M] forces free of the confines of your body! ")
- else
- to_chat(user,"[M] slips back down inside despite your efforts. ")
- to_chat(M," Even with [user]'s help, you slip back inside again. ")
- to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong. ")
-
- if("Devour") //Eat the inside mob
- if(user.absorbed || user.stat)
- to_chat(user,"You can't do that in your state! ")
- return TRUE
-
- if(!user.vore_selected)
- to_chat(user,"Pick a belly on yourself first! ")
- return TRUE
-
- var/obj/belly/TB = user.vore_selected
- to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]! ")
- to_chat(M,"[user] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]! ")
- to_chat(OB.owner,"Someone inside you is eating someone else! ")
-
- sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound.
- if((user in OB) && (M in OB)) //Make sure they're still here.
- to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]! ")
- to_chat(M,"[user] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]! ")
- to_chat(OB.owner,"Someone inside you has eaten someone else! ")
- TB.nom_mob(M)
-
- else if(istype(tgt,/obj/item))
- var/obj/item/T = tgt
- if(!(tgt in OB))
- //Doesn't exist anymore, update.
- return TRUE
- intent = alert("What do you want to do to that?","Query","Examine","Use Hand")
- switch(intent)
- if("Examine")
- var/list/results = T.examine(user)
- if(!results || !results.len)
- results = list("You were unable to examine that. Tell a developer!")
- to_chat(user, jointext(results, " "))
- return FALSE
-
- if("Use Hand")
- if(user.stat)
- to_chat(user,"You can't do that in your state! ")
- return TRUE
-
- user.ClickOn(T)
- sleep(5) //Seems to exit too fast for the panel to update
-
- if(href_list["insidepick"])
- var/intent
-
- //Handle the [All] choice. Ugh inelegant. Someone make this pretty.
- if(href_list["pickall"])
- intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all")
- switch(intent)
- if("Cancel")
- return FALSE
-
- if("Eject all")
- if(user.stat)
- to_chat(user,"You can't do that in your state! ")
- return FALSE
-
- selected.release_all_contents()
-
- if("Move all")
- if(user.stat)
- to_chat(user,"You can't do that in your state! ")
- return FALSE
-
- var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs
- if(!choice)
- return FALSE
-
- for(var/atom/movable/tgt in selected)
- to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]! ")
- selected.transfer_contents(tgt, choice, 1)
-
- var/atom/movable/tgt = locate(href_list["insidepick"])
- if(!(tgt in selected)) //Old menu, needs updating because they aren't really there.
- return TRUE //Forces update
- intent = "Examine"
- intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move")
- switch(intent)
- if("Examine")
- var/list/results = tgt.examine(user)
- if(!results || !results.len)
- results = list("You were unable to examine that. Tell a developer!")
- to_chat(user, jointext(results, " "))
- return FALSE
-
- if("Eject")
- if(user.stat)
- to_chat(user,"You can't do that in your state! ")
- return FALSE
-
- selected.release_specific_contents(tgt)
-
- if("Move")
- if(user.stat)
- to_chat(user,"You can't do that in your state! ")
- return FALSE
-
- var/obj/belly/choice = input("Move [tgt] where?","Select Belly") as null|anything in user.vore_organs
- if(!choice || !(tgt in selected))
- return FALSE
-
- to_chat(tgt,"You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(choice.name)]! ")
- selected.transfer_contents(tgt, choice)
-
- if(href_list["newbelly"])
- if(user.vore_organs.len >= BELLIES_MAX)
- return FALSE
-
- var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null)
-
- var/failure_msg
- if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN)
- failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])."
- // else if(whatever) //Next test here.
- else
- for(var/belly in user.vore_organs)
- var/obj/belly/B = belly
- if(lowertext(new_name) == lowertext(B.name))
- failure_msg = "No duplicate belly names, please."
- break
-
- if(failure_msg) //Something went wrong.
- alert(user,failure_msg,"Error!")
- return FALSE
-
- var/obj/belly/NB = new(user)
- NB.name = new_name
- selected = NB
-
- if(href_list["bellypick"])
- selected = locate(href_list["bellypick"])
- user.vore_selected = selected
-
- ////
- //Please keep these the same order they are on the panel UI for ease of coding
- ////
- if(href_list["b_name"])
- var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null)
-
- var/failure_msg
- if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN)
- failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])."
- // else if(whatever) //Next test here.
- else
- for(var/belly in user.vore_organs)
- var/obj/belly/B = belly
- if(lowertext(new_name) == lowertext(B.name))
- failure_msg = "No duplicate belly names, please."
- break
-
- if(failure_msg) //Something went wrong.
- alert(user,failure_msg,"Error!")
- return FALSE
-
- selected.name = new_name
-
- if(href_list["b_wetness"])
- selected.is_wet = !selected.is_wet
-
- if(href_list["b_wetloop"])
- selected.wet_loop = !selected.wet_loop
-
- if(href_list["b_mode"])
- var/list/menu_list = selected.digest_modes.Copy()
- if(istype(usr,/mob/living/carbon/human))
- menu_list += DM_TRANSFORM
-
- var/new_mode = input("Choose Mode (currently [selected.digest_mode])") as null|anything in menu_list
- if(!new_mode)
- return FALSE
-
- if(new_mode == DM_TRANSFORM) //Snowflek submenu
- var/list/tf_list = selected.transform_modes
- var/new_tf_mode = input("Choose TF Mode (currently [selected.digest_mode])") as null|anything in tf_list
- if(!new_tf_mode)
- return FALSE
- selected.digest_mode = new_tf_mode
- return
-
- selected.digest_mode = new_mode
- //selected.items_preserved.Cut() //Re-evaltuate all items in belly on belly-mode change //Handled with item modes now
-
- if(href_list["b_addons"])
- var/list/menu_list = selected.mode_flag_list.Copy()
- var/toggle_addon = input("Toggle Addon") as null|anything in menu_list
- if(!toggle_addon)
- return FALSE
- selected.mode_flags ^= selected.mode_flag_list[toggle_addon]
- selected.items_preserved.Cut() //Re-evaltuate all items in belly on addon toggle
-
- if(href_list["b_item_mode"])
- var/list/menu_list = selected.item_digest_modes.Copy()
-
- var/new_mode = input("Choose Mode (currently [selected.item_digest_mode])") as null|anything in menu_list
- if(!new_mode)
- return FALSE
-
- selected.item_digest_mode = new_mode
- selected.items_preserved.Cut() //Re-evaltuate all items in belly on belly-mode change
-
- if(href_list["b_contaminates"])
- selected.contaminates = !selected.contaminates
-
- if(href_list["b_contamination_flavor"])
- var/list/menu_list = contamination_flavors.Copy()
- var/new_flavor = input("Choose Contamination Flavor Text Type (currently [selected.contamination_flavor])") as null|anything in menu_list
- if(!new_flavor)
- return FALSE
- selected.contamination_flavor = new_flavor
-
- if(href_list["b_contamination_color"])
- var/list/menu_list = contamination_colors.Copy()
- var/new_color = input("Choose Contamination Color (currently [selected.contamination_color])") as null|anything in menu_list
- if(!new_color)
- return FALSE
- selected.contamination_color = new_color
- selected.items_preserved.Cut() //To re-contaminate for new color
-
- if(href_list["b_desc"])
- var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",selected.desc) as message|null)
-
- if(new_desc)
- new_desc = readd_quotes(new_desc)
- if(length(new_desc) > BELLIES_DESC_MAX)
- alert("Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error")
- return FALSE
- selected.desc = new_desc
- else //Returned null
- return FALSE
-
- if(href_list["b_msgs"])
- var/list/messages = list(
- "Digest Message (to prey)",
- "Digest Message (to you)",
- "Struggle Message (outside)",
- "Struggle Message (inside)",
- "Examine Message (when full)",
- "Reset All To Default"
+ data["inside"] = list(
+ "absorbed" = host.absorbed,
+ "belly_name" = inside_belly.name,
+ "belly_mode" = inside_belly.digest_mode,
+ "desc" = inside_belly.desc || "No description.",
+ "pred" = pred,
+ "ref" = "\ref[inside_belly]",
)
- alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message, max 10 messages per topic.","Really, don't.")
- var/choice = input(user,"Select a type to modify. Messages from each topic are pulled at random when needed.","Pick Type") as null|anything in messages
- var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name."
+ data["inside"]["contents"] = list()
+ for(var/atom/movable/O in inside_belly)
+ if(O == host)
+ continue
- switch(choice)
- if("Digest Message (to prey)")
- var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",selected.get_messages("dmp")) as message
- if(new_message)
- selected.set_messages(new_message,"dmp")
+ var/list/info = list(
+ "name" = "[O]",
+ "icon" = cached_nom_icon(O),
+ "absorbed" = FALSE,
+ "stat" = 0,
+ "ref" = "\ref[O]",
+ "outside" = FALSE,
+ )
+ if(isliving(O))
+ var/mob/living/M = O
+ info["stat"] = M.stat
+ if(M.absorbed)
+ info["absorbed"] = TRUE
+ data["inside"]["contents"].Add(list(info))
- if("Digest Message (to you)")
- var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",selected.get_messages("dmo")) as message
- if(new_message)
- selected.set_messages(new_message,"dmo")
+ data["our_bellies"] = list()
+ for(var/belly in host.vore_organs)
+ var/obj/belly/B = belly
+ data["our_bellies"].Add(list(list(
+ "selected" = (B == host.vore_selected),
+ "name" = B.name,
+ "ref" = "\ref[B]",
+ "digest_mode" = B.digest_mode,
+ "contents" = LAZYLEN(B.contents),
+ )))
- if("Struggle Message (outside)")
- var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",selected.get_messages("smo")) as message
- if(new_message)
- selected.set_messages(new_message,"smo")
+ data["selected"] = null
+ if(host.vore_selected)
+ var/obj/belly/selected = host.vore_selected
+ data["selected"] = list(
+ "belly_name" = selected.name,
+ "is_wet" = selected.is_wet,
+ "wet_loop" = selected.wet_loop,
+ "mode" = selected.digest_mode,
+ "item_mode" = selected.item_digest_mode,
+ "verb" = selected.vore_verb,
+ "desc" = selected.desc,
+ "fancy" = selected.fancy_vore,
+ "sound" = selected.vore_sound,
+ "release_sound" = selected.release_sound,
+ // "messages" // TODO
+ "can_taste" = selected.can_taste,
+ "nutrition_percent" = selected.nutrition_percent,
+ "digest_brute" = selected.digest_brute,
+ "digest_burn" = selected.digest_burn,
+ "bulge_size" = selected.bulge_size,
+ "shrink_grow_size" = selected.shrink_grow_size,
+ )
- if("Struggle Message (inside)")
- var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",selected.get_messages("smi")) as message
- if(new_message)
- selected.set_messages(new_message,"smi")
+ data["selected"]["addons"] = list()
+ for(var/flag_name in selected.mode_flag_list)
+ if(selected.mode_flags & selected.mode_flag_list[flag_name])
+ data["selected"]["addons"].Add(flag_name)
- if("Examine Message (when full)")
- var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",selected.get_messages("em")) as message
- if(new_message)
- selected.set_messages(new_message,"em")
+ data["selected"]["contaminates"] = selected.contaminates
+ data["selected"]["contaminate_flavor"] = null
+ data["selected"]["contaminate_color"] = null
+ if(selected.contaminates)
+ data["selected"]["contaminate_flavor"] = selected.contamination_flavor
+ data["selected"]["contaminate_color"] = selected.contamination_color
- if("Reset All To Default")
- var/confirm = alert(user,"This will delete any custom messages. Are you sure?","Confirmation","DELETE","Cancel")
- if(confirm == "DELETE")
- selected.digest_messages_prey = initial(selected.digest_messages_prey)
- selected.digest_messages_owner = initial(selected.digest_messages_owner)
- selected.struggle_messages_outside = initial(selected.struggle_messages_outside)
- selected.struggle_messages_inside = initial(selected.struggle_messages_inside)
+ data["selected"]["escapable"] = selected.escapable
+ data["selected"]["interacts"] = list()
+ if(selected.escapable)
+ data["selected"]["interacts"]["escapechance"] = selected.escapechance
+ data["selected"]["interacts"]["escapetime"] = selected.escapetime
+ data["selected"]["interacts"]["transferchance"] = selected.transferchance
+ data["selected"]["interacts"]["transferlocation"] = selected.transferlocation
+ data["selected"]["interacts"]["absorbchance"] = selected.absorbchance
+ data["selected"]["interacts"]["digestchance"] = selected.digestchance
- if(href_list["b_verb"])
- var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null)
+ data["selected"]["contents"] = list()
+ for(var/O in selected)
+ var/list/info = list(
+ "name" = "[O]",
+ "icon" = cached_nom_icon(O),
+ "absorbed" = FALSE,
+ "stat" = 0,
+ "ref" = "\ref[O]",
+ "outside" = TRUE,
+ )
+ if(isliving(O))
+ var/mob/living/M = O
+ info["stat"] = M.stat
+ if(M.absorbed)
+ info["absorbed"] = TRUE
+ data["selected"]["contents"].Add(list(info))
- if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN)
- alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
- return FALSE
+ data["prefs"] = list(
+ "digestable" = host.digestable,
+ "devourable" = host.devourable,
+ "feeding" = host.feeding,
+ "absorbable" = host.absorbable,
+ "digest_leave_remains" = host.digest_leave_remains,
+ "allowmobvore" = host.allowmobvore,
+ "permit_healbelly" = host.permit_healbelly,
+ "can_be_drop_prey" = host.can_be_drop_prey,
+ "can_be_drop_pred" = host.can_be_drop_pred,
+ "noisy" = host.noisy,
+ )
- selected.vore_verb = new_verb
+ return data
- if(href_list["b_fancy_sound"])
- selected.fancy_vore = !selected.fancy_vore
- selected.vore_sound = "Gulp"
- selected.release_sound = "Splatter"
- // defaults as to avoid potential bugs
+/datum/vore_look/tgui_act(action, params)
+ if(..())
+ return TRUE
- if(href_list["b_release"])
- var/choice
- if(selected.fancy_vore)
- choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in fancy_release_sounds
- else
- choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in classic_release_sounds
+ switch(action)
+ if("int_help")
+ alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \
+ and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \
+ These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \
+ will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \
+ only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help")
+ return TRUE
- if(!choice)
- return FALSE
+ // Host is inside someone else, and is trying to interact with something else inside that person.
+ if("pick_from_inside")
+ return pick_from_inside(usr, params)
+
+ // Host is trying to interact with something in host's belly.
+ if("pick_from_outside")
+ return pick_from_outside(usr, params)
- selected.release_sound = choice
-
- if(href_list["b_releasesoundtest"])
- var/sound/releasetest
- if(selected.fancy_vore)
- releasetest = fancy_release_sounds[selected.release_sound]
- else
- releasetest = classic_release_sounds[selected.release_sound]
-
- if(releasetest)
- SEND_SOUND(user, releasetest)
-
- if(href_list["b_sound"])
- var/choice
- if(selected.fancy_vore)
- choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in fancy_vore_sounds
- else
- choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in classic_vore_sounds
-
- if(!choice)
- return FALSE
-
- selected.vore_sound = choice
-
- if(href_list["b_soundtest"])
- var/sound/voretest
- if(selected.fancy_vore)
- voretest = fancy_vore_sounds[selected.vore_sound]
- else
- voretest = classic_vore_sounds[selected.vore_sound]
- if(voretest)
- SEND_SOUND(user, voretest)
-
- if(href_list["b_tastes"])
- selected.can_taste = !selected.can_taste
-
- if(href_list["b_bulge_size"])
- var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null
- if(new_bulge == null)
- return
- if(new_bulge == 0) //Disable.
- selected.bulge_size = 0
- to_chat(user,"Your stomach will not be seen on examine. ")
- else if (!ISINRANGE(new_bulge,25,200))
- selected.bulge_size = 0.25 //Set it to the default.
- to_chat(user,"Invalid size. ")
- else if(new_bulge)
- selected.bulge_size = (new_bulge/100)
-
- if(href_list["b_grow_shrink"])
- var/new_grow = input(user, "Choose the size that prey will be grown/shrunk to, ranging from 25% to 200%", "Set Growth Shrink Size.", selected.shrink_grow_size) as num|null
- if (new_grow == null)
- return
- if (!ISINRANGE(new_grow,25,200))
- selected.shrink_grow_size = 1 //Set it to the default
- to_chat(user,"Invalid size. ")
- else if(new_grow)
- selected.shrink_grow_size = (new_grow*0.01)
-
- if(href_list["b_nutritionpercent"])
- var/new_damage = input(user, "Choose the nutrition gain percentage you will recieve per tick from prey. Ranges from 0.01 to 100.", "Set Nutrition Gain Percentage.", selected.digest_brute) as num|null
- if(new_damage == null)
- return
- var/new_new_damage = CLAMP(new_damage, 0.01, 100)
- selected.nutrition_percent = new_new_damage
-
- if(href_list["b_burn_dmg"])
- var/new_damage = input(user, "Choose the amount of burn damage prey will take per tick. Ranges from 0 to 6.", "Set Belly Burn Damage.", selected.digest_burn) as num|null
- if(new_damage == null)
- return
- var/new_new_damage = CLAMP(new_damage, 0, 6)
- selected.digest_burn = new_new_damage
-
- if(href_list["b_brute_dmg"])
- var/new_damage = input(user, "Choose the amount of brute damage prey will take per tick. Ranges from 0 to 6", "Set Belly Brute Damage.", selected.digest_brute) as num|null
- if(new_damage == null)
- return
- var/new_new_damage = CLAMP(new_damage, 0, 6)
- selected.digest_brute = new_new_damage
-
- if(href_list["b_escapable"])
- if(selected.escapable == 0) //Possibly escapable and special interactions.
- selected.escapable = 1
- to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings. ")
- else if(selected.escapable == 1) //Never escapable.
- selected.escapable = 0
- to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)]. ")
- show_interacts = 0 //Force the hiding of the panel
- else
- alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1
- selected.escapable = 0
- show_interacts = 0 //Force the hiding of the panel
-
- if(href_list["b_escapechance"])
- var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null
- if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options
- selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(selected.escapechance))
-
- if(href_list["b_escapetime"])
- var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null
- if(!isnull(escape_time_input))
- selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(selected.escapetime))
-
- if(href_list["b_transferchance"])
- var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null
- if(!isnull(transfer_chance_input))
- selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(selected.transferchance))
-
- if(href_list["b_transferlocation"])
- var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected)
-
- if(!choice) //They cancelled, no changes
- return FALSE
- else if(choice == "None - Remove")
- selected.transferlocation = null
- else
- selected.transferlocation = choice.name
-
- if(href_list["b_absorbchance"])
- var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null
- if(!isnull(absorb_chance_input))
- selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(selected.absorbchance))
-
- if(href_list["b_digestchance"])
- var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null
- if(!isnull(digest_chance_input))
- selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(selected.digestchance))
-
- if(href_list["b_del"])
- var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel")
- if(!(alert == "Delete"))
- return FALSE
-
- var/failure_msg = ""
-
- var/dest_for //Check to see if it's the destination of another vore organ.
- for(var/belly in user.vore_organs)
- var/obj/belly/B = belly
- if(B.transferlocation == selected)
- dest_for = B.name
- failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. "
- break
-
- if(selected.contents.len)
- failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same.
- if(selected.immutable)
- failure_msg += "This belly is marked as undeletable. "
- if(user.vore_organs.len == 1)
- failure_msg += "You must have at least one belly. "
-
- if(failure_msg)
- alert(user,failure_msg,"Error!")
- return FALSE
-
- qdel(selected)
- selected = user.vore_organs[1]
- user.vore_selected = user.vore_organs[1]
-
- if(href_list["saveprefs"])
- if(!user.save_vore_prefs())
- alert("ERROR: Virgo-specific preferences failed to save!","Error")
- else
- to_chat(user,"Virgo-specific preferences saved! ")
-
- if(href_list["applyprefs"])
- var/alert = alert("Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation","Reload","Cancel")
- if(alert != "Reload")
- return FALSE
- if(!user.apply_vore_prefs())
- alert("ERROR: Virgo-specific preferences failed to apply!","Error")
- else
- to_chat(user,"Virgo-specific preferences applied from active slot! ")
-
- if(href_list["setflavor"])
- var/new_flavor = html_encode(input(usr,"What your character tastes like (40ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",user.vore_taste) as text|null)
- if(!new_flavor)
- return FALSE
-
- new_flavor = readd_quotes(new_flavor)
- if(length(new_flavor) > FLAVOR_MAX)
- alert("Entered flavor/taste text too long. [FLAVOR_MAX] character limit.","Error!")
- return FALSE
- user.vore_taste = new_flavor
-
- if(href_list["setsmell"])
- var/new_smell = html_encode(input(usr,"What your character smells like (40ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",user.vore_smell) as text|null)
- if(!new_smell)
- return FALSE
-
- new_smell = readd_quotes(new_smell)
- if(length(new_smell) > FLAVOR_MAX)
- alert("Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!")
- return FALSE
- user.vore_smell = new_smell
-
- if(href_list["toggle_dropnom_pred"])
- var/choice = alert(user, "This toggle is for spontaneous, environment related vore as a predator, including drop-noms, teleporters, etc. You are currently [user.can_be_drop_pred ? " able to eat prey that you encounter by environmental actions." : "avoiding eating prey encountered in the environment."]", "", "Be Pred", "Cancel", "Don't be Pred")
- switch(choice)
- if("Cancel")
+ if("newbelly")
+ if(host.vore_organs.len >= BELLIES_MAX)
return FALSE
- if("Be Pred")
- user.can_be_drop_pred = TRUE
- if("Don't be Pred")
- user.can_be_drop_pred = FALSE
- if(href_list["toggle_dropnom_prey"])
- var/choice = alert(user, "This toggle is for spontaneous, environment related vore as a prey, including drop-noms, teleporters, etc. You are currently [user.can_be_drop_prey ? "able to be eaten by environmental actions." : "not able to be eaten by environmental actions."]", "", "Be Prey", "Cancel", "Don't Be Prey")
- switch(choice)
- if("Cancel")
+ var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null)
+
+ var/failure_msg
+ if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN)
+ failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])."
+ // else if(whatever) //Next test here.
+ else
+ for(var/belly in host.vore_organs)
+ var/obj/belly/B = belly
+ if(lowertext(new_name) == lowertext(B.name))
+ failure_msg = "No duplicate belly names, please."
+ break
+
+ if(failure_msg) //Something went wrong.
+ alert(usr, failure_msg, "Error!")
+ return TRUE
+
+ var/obj/belly/NB = new(host)
+ NB.name = new_name
+ host.vore_selected = NB
+ unsaved_changes = TRUE
+ return TRUE
+
+ if("bellypick")
+ host.vore_selected = locate(params["bellypick"])
+ return TRUE
+
+ if("set_attribute")
+ return set_attr(usr, params)
+
+ if("saveprefs")
+ if(!host.save_vore_prefs())
+ alert("ERROR: Virgo-specific preferences failed to save!","Error")
+ else
+ to_chat(usr, "Virgo-specific preferences saved! ")
+ unsaved_changes = FALSE
+ return TRUE
+ if("reloadprefs")
+ var/alert = alert("Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation","Reload","Cancel")
+ if(alert != "Reload")
return FALSE
- if("Be Prey")
- user.can_be_drop_prey = TRUE
- if("Don't Be Prey")
- user.can_be_drop_prey = FALSE
-
- if(href_list["toggledg"])
- var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable. Digesting you is currently: [user.digestable ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion")
- switch(choice)
- if("Cancel")
+ if(!host.apply_vore_prefs())
+ alert("ERROR: Virgo-specific preferences failed to apply!","Error")
+ else
+ to_chat(usr,"Virgo-specific preferences applied from active slot! ")
+ unsaved_changes = FALSE
+ return TRUE
+ if("setflavor")
+ var/new_flavor = html_encode(input(usr,"What your character tastes like (40ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",host.vore_taste) as text|null)
+ if(!new_flavor)
return FALSE
- if("Allow Digestion")
- user.digestable = TRUE
- if("Prevent Digestion")
- user.digestable = FALSE
- if(user.client.prefs_vr)
- user.client.prefs_vr.digestable = user.digestable
-
- if(href_list["toggleddevour"])
- var/choice = alert(user, "This button is to toggle your ability to be devoured by others. Devouring is currently: [user.devourable ? "Allowed" : "Prevented"]", "", "Be Devourable", "Cancel", "Prevent being Devoured")
- switch(choice)
- if("Cancel")
+ new_flavor = readd_quotes(new_flavor)
+ if(length(new_flavor) > FLAVOR_MAX)
+ alert("Entered flavor/taste text too long. [FLAVOR_MAX] character limit.","Error!")
return FALSE
- if("Be Devourable")
- user.devourable = TRUE
- if("Prevent being Devoured")
- user.devourable = FALSE
-
- if(user.client.prefs_vr)
- user.client.prefs_vr.devourable = user.devourable
-
- if(href_list["toggledfeed"])
- var/choice = alert(user, "This button is to toggle your ability to be fed to or by others vorishly. Force Feeding is currently: [user.feeding ? "Allowed" : "Prevented"]", "", "Allow Feeding", "Cancel", "Prevent Feeding")
- switch(choice)
- if("Cancel")
+ host.vore_taste = new_flavor
+ unsaved_changes = TRUE
+ return TRUE
+ if("setsmell")
+ var/new_smell = html_encode(input(usr,"What your character smells like (40ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",host.vore_smell) as text|null)
+ if(!new_smell)
return FALSE
- if("Allow Feeding")
- user.feeding = TRUE
- if("Prevent Feeding")
- user.feeding = FALSE
- if(user.client.prefs_vr)
- user.client.prefs_vr.feeding = user.feeding
-
- if(href_list["toggleabsorbable"])
- var/choice = alert(user, "This button allows preds to know whether you prefer or don't prefer to be absorbed. Currently you are [user.absorbable? "" : "not"] giving permission.", "", "Allow absorption", "Cancel", "Disallow absorption")
- switch(choice)
- if("Cancel")
+ new_smell = readd_quotes(new_smell)
+ if(length(new_smell) > FLAVOR_MAX)
+ alert("Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!")
return FALSE
- if("Allow absorption")
- user.absorbable = TRUE
- if("Disallow absorption")
- user.absorbable = FALSE
+ host.vore_smell = new_smell
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_dropnom_pred")
+ host.can_be_drop_pred = !host.can_be_drop_pred
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.can_be_drop_pred = host.can_be_drop_pred
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_dropnom_prey")
+ host.can_be_drop_prey = !host.can_be_drop_prey
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.can_be_drop_prey = host.can_be_drop_prey
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_digest")
+ host.digestable = !host.digestable
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.digestable = host.digestable
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_devour")
+ host.devourable = !host.devourable
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.devourable = host.devourable
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_feed")
+ host.feeding = !host.feeding
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.feeding = host.feeding
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_absorbable")
+ host.absorbable = !host.absorbable
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.absorbable = host.absorbable
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_leaveremains")
+ host.digest_leave_remains = !host.digest_leave_remains
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.digest_leave_remains = host.digest_leave_remains
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_mobvore")
+ host.allowmobvore = !host.allowmobvore
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.allowmobvore = host.allowmobvore
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_healbelly")
+ host.permit_healbelly = !host.permit_healbelly
+ if(host.client.prefs_vr)
+ host.client.prefs_vr.permit_healbelly = host.permit_healbelly
+ unsaved_changes = TRUE
+ return TRUE
+ if("toggle_noisy")
+ host.noisy = !host.noisy
+ unsaved_changes = TRUE
+ return TRUE
- if(user.client.prefs_vr)
- user.client.prefs_vr.absorbable = user.absorbable
+/datum/vore_look/proc/pick_from_inside(mob/user, params)
+ var/atom/movable/target = locate(params["pick"])
+ var/obj/belly/OB = locate(params["belly"])
- if(href_list["toggledlm"])
- var/choice = alert(user, "This button allows preds to have your remains be left in their belly after you are digested. This will only happen if pred sets their belly to do so. Remains consist of skeletal parts. Currently you are [user.digest_leave_remains? "" : "not"] leaving remains.", "", "Allow Post-digestion Remains", "Cancel", "Disallow Post-digestion Remains")
- switch(choice)
+ if(!(target in OB))
+ return TRUE // Aren't here anymore, need to update menu
+
+ var/intent = "Examine"
+ if(isliving(target))
+ intent = alert("What do you want to do to them?","Query","Examine","Help Out","Devour")
+
+ else if(istype(target, /obj/item))
+ intent = alert("What do you want to do to that?","Query","Examine","Use Hand")
+
+ switch(intent)
+ if("Examine") //Examine a mob inside another mob
+ var/list/results = target.examine(host)
+ if(!results || !results.len)
+ results = list("You were unable to examine that. Tell a developer!")
+ to_chat(user, jointext(results, " "))
+ return TRUE
+
+ if("Use Hand")
+ if(host.stat)
+ to_chat(user, "You can't do that in your state! ")
+ return TRUE
+
+ host.ClickOn(target)
+ return TRUE
+
+ if(!isliving(target))
+ return
+
+ var/mob/living/M = target
+ switch(intent)
+ if("Help Out") //Help the inside-mob out
+ if(host.stat || host.absorbed || M.absorbed)
+ to_chat(user, "You can't do that in your state! ")
+ return TRUE
+
+ to_chat(user,"You begin to push [M] to freedom! ")
+ to_chat(M,"[host] begins to push you to freedom!")
+ to_chat(M.loc,"Someone is trying to escape from inside you! ")
+ sleep(50)
+ if(prob(33))
+ OB.release_specific_contents(M)
+ to_chat(user,"You manage to help [M] to safety! ")
+ to_chat(M,"[host] pushes you free! ")
+ to_chat(OB.owner,"[M] forces free of the confines of your body! ")
+ else
+ to_chat(user,"[M] slips back down inside despite your efforts. ")
+ to_chat(M," Even with [host]'s help, you slip back inside again. ")
+ to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong. ")
+ return TRUE
+
+ if("Devour") //Eat the inside mob
+ if(host.absorbed || host.stat)
+ to_chat(user,"You can't do that in your state! ")
+ return TRUE
+
+ if(!host.vore_selected)
+ to_chat(user,"Pick a belly on yourself first! ")
+ return TRUE
+
+ var/obj/belly/TB = host.vore_selected
+ to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]! ")
+ to_chat(M,"[host] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]! ")
+ to_chat(OB.owner,"Someone inside you is eating someone else! ")
+
+ sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound.
+ if((host in OB) && (M in OB)) //Make sure they're still here.
+ to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]! ")
+ to_chat(M,"[host] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]! ")
+ to_chat(OB.owner,"Someone inside you has eaten someone else! ")
+ TB.nom_mob(M)
+
+/datum/vore_look/proc/pick_from_outside(mob/user, params)
+ var/intent
+
+ //Handle the [All] choice. Ugh inelegant. Someone make this pretty.
+ if(params["pickall"])
+ intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all")
+ switch(intent)
if("Cancel")
+ return TRUE
+
+ if("Eject all")
+ if(host.stat)
+ to_chat(user,"You can't do that in your state! ")
+ return TRUE
+
+ host.vore_selected.release_all_contents()
+ return TRUE
+
+ if("Move all")
+ if(host.stat)
+ to_chat(user,"You can't do that in your state! ")
+ return TRUE
+
+ var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in host.vore_organs
+ if(!choice)
+ return FALSE
+
+ for(var/atom/movable/target in host.vore_selected)
+ to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected)] to their [lowertext(choice.name)]! ")
+ host.vore_selected.transfer_contents(target, choice, 1)
+ return TRUE
+ return
+
+ var/atom/movable/target = locate(params["pick"])
+ if(!(target in host.vore_selected))
+ return TRUE // Not in our X anymore, update UI
+ intent = "Examine"
+ intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move")
+ switch(intent)
+ if("Examine")
+ var/list/results = target.examine(host)
+ if(!results || !results.len)
+ results = list("You were unable to examine that. Tell a developer!")
+ to_chat(user, jointext(results, " "))
+ return TRUE
+
+ if("Eject")
+ if(host.stat)
+ to_chat(user,"You can't do that in your state! ")
+ return TRUE
+
+ host.vore_selected.release_specific_contents(target)
+
+ if("Move")
+ if(host.stat)
+ to_chat(user,"You can't do that in your state! ")
+ return TRUE
+
+ var/obj/belly/choice = input("Move [target] where?","Select Belly") as null|anything in host.vore_organs
+ if(!choice || !(target in host.vore_selected))
+ return TRUE
+
+ to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected.name)] to their [lowertext(choice.name)]! ")
+ host.vore_selected.transfer_contents(target, choice)
+
+/datum/vore_look/proc/set_attr(mob/user, params)
+ if(!host.vore_selected)
+ alert("No belly selected to modify.")
+ return FALSE
+
+ var/attr = params["attribute"]
+ switch(attr)
+ if("b_name")
+ var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null)
+
+ var/failure_msg
+ if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN)
+ failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])."
+ // else if(whatever) //Next test here.
+ else
+ for(var/belly in host.vore_organs)
+ var/obj/belly/B = belly
+ if(lowertext(new_name) == lowertext(B.name))
+ failure_msg = "No duplicate belly names, please."
+ break
+
+ if(failure_msg) //Something went wrong.
+ alert(user,failure_msg,"Error!")
return FALSE
- if("Allow Post-digestion Remains")
- user.digest_leave_remains = TRUE
- if("Disallow Post-digestion Remains")
- user.digest_leave_remains = FALSE
- if(user.client.prefs_vr)
- user.client.prefs_vr.digest_leave_remains = user.digest_leave_remains
+ host.vore_selected.name = new_name
+ . = TRUE
+ if("b_wetness")
+ host.vore_selected.is_wet = !host.vore_selected.is_wet
+ . = TRUE
+ if("b_wetloop")
+ host.vore_selected.wet_loop = !host.vore_selected.wet_loop
+ . = TRUE
+ if("b_mode")
+ var/list/menu_list = host.vore_selected.digest_modes.Copy()
+ if(istype(usr,/mob/living/carbon/human))
+ menu_list += DM_TRANSFORM
- if(href_list["togglemv"])
- var/choice = alert(user, "This button is for those who don't like being eaten by mobs. Mobs are currently: [user.allowmobvore ? "Allowed to eat" : "Prevented from eating"] you.", "", "Allow Mob Predation", "Cancel", "Prevent Mob Predation")
- switch(choice)
- if("Cancel")
+ var/new_mode = input("Choose Mode (currently [host.vore_selected.digest_mode])") as null|anything in menu_list
+ if(!new_mode)
return FALSE
- if("Allow Mob Predation")
- user.allowmobvore = TRUE
- if("Prevent Mob Predation")
- user.allowmobvore = FALSE
- if(user.client.prefs_vr)
- user.client.prefs_vr.allowmobvore = user.allowmobvore
+ if(new_mode == DM_TRANSFORM) //Snowflek submenu
+ var/list/tf_list = host.vore_selected.transform_modes
+ var/new_tf_mode = input("Choose TF Mode (currently [host.vore_selected.digest_mode])") as null|anything in tf_list
+ if(!new_tf_mode)
+ return FALSE
+ host.vore_selected.digest_mode = new_tf_mode
+ return
- if(href_list["togglehealbelly"])
- var/choice = alert(user, "This button is for those who don't like healbelly used on them as a mechanic. It does not affect anything, but is displayed under mechanical prefs for ease of quick checks. You are currently: [user.allowmobvore ? "Okay" : "Not Okay"] with players using healbelly on you.", "", "Allow Healing Belly", "Cancel", "Disallow Healing Belly")
- switch(choice)
- if("Cancel")
+ host.vore_selected.digest_mode = new_mode
+ . = TRUE
+ if("b_addons")
+ var/list/menu_list = host.vore_selected.mode_flag_list.Copy()
+ var/toggle_addon = input("Toggle Addon") as null|anything in menu_list
+ if(!toggle_addon)
return FALSE
- if("Allow Healing Belly")
- user.permit_healbelly = TRUE
- if("Disallow Healing Belly")
- user.permit_healbelly = FALSE
+ host.vore_selected.mode_flags ^= host.vore_selected.mode_flag_list[toggle_addon]
+ host.vore_selected.items_preserved.Cut() //Re-evaltuate all items in belly on
+ . = TRUE
+ if("b_item_mode")
+ var/list/menu_list = host.vore_selected.item_digest_modes.Copy()
- if(user.client.prefs_vr)
- user.client.prefs_vr.permit_healbelly = user.permit_healbelly
-
- if(href_list["togglenoisy"])
- var/choice = alert(user, "Toggle audible hunger noises. Currently: [user.noisy ? "Enabled" : "Disabled"]", "", "Enable audible hunger", "Cancel", "Disable audible hunger")
- switch(choice)
- if("Cancel")
+ var/new_mode = input("Choose Mode (currently [host.vore_selected.item_digest_mode])") as null|anything in menu_list
+ if(!new_mode)
return FALSE
- if("Enable audible hunger")
- user.noisy = TRUE
- if("Disable audible hunger")
- user.noisy = FALSE
- //Refresh when interacted with, returning 1 makes vore_look.Topic update
- return TRUE
+ host.vore_selected.item_digest_mode = new_mode
+ host.vore_selected.items_preserved.Cut() //Re-evaltuate all items in belly on belly-mode change
+ . = TRUE
+ if("b_contaminates")
+ host.vore_selected.contaminates = !host.vore_selected.contaminates
+ . = TRUE
+ if("b_contamination_flavor")
+ var/list/menu_list = contamination_flavors.Copy()
+ var/new_flavor = input("Choose Contamination Flavor Text Type (currently [host.vore_selected.contamination_flavor])") as null|anything in menu_list
+ if(!new_flavor)
+ return FALSE
+ host.vore_selected.contamination_flavor = new_flavor
+ . = TRUE
+ if("b_contamination_color")
+ var/list/menu_list = contamination_colors.Copy()
+ var/new_color = input("Choose Contamination Color (currently [host.vore_selected.contamination_color])") as null|anything in menu_list
+ if(!new_color)
+ return FALSE
+ host.vore_selected.contamination_color = new_color
+ host.vore_selected.items_preserved.Cut() //To re-contaminate for new color
+ . = TRUE
+ if("b_desc")
+ var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null)
+
+ if(new_desc)
+ new_desc = readd_quotes(new_desc)
+ if(length(new_desc) > BELLIES_DESC_MAX)
+ alert("Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error")
+ return FALSE
+ host.vore_selected.desc = new_desc
+ . = TRUE
+ if("b_msgs")
+ alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message, max 10 messages per topic.","Really, don't.")
+ var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name."
+ switch(params["msgtype"])
+ if("dmp")
+ var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",host.vore_selected.get_messages("dmp")) as message
+ if(new_message)
+ host.vore_selected.set_messages(new_message,"dmp")
+
+ if("dmo")
+ var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",host.vore_selected.get_messages("dmo")) as message
+ if(new_message)
+ host.vore_selected.set_messages(new_message,"dmo")
+
+ if("smo")
+ var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",host.vore_selected.get_messages("smo")) as message
+ if(new_message)
+ host.vore_selected.set_messages(new_message,"smo")
+
+ if("smi")
+ var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",host.vore_selected.get_messages("smi")) as message
+ if(new_message)
+ host.vore_selected.set_messages(new_message,"smi")
+
+ if("em")
+ var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",host.vore_selected.get_messages("em")) as message
+ if(new_message)
+ host.vore_selected.set_messages(new_message,"em")
+
+ if("reset")
+ var/confirm = alert(user,"This will delete any custom messages. Are you sure?","Confirmation","DELETE","Cancel")
+ if(confirm == "DELETE")
+ host.vore_selected.digest_messages_prey = initial(host.vore_selected.digest_messages_prey)
+ host.vore_selected.digest_messages_owner = initial(host.vore_selected.digest_messages_owner)
+ host.vore_selected.struggle_messages_outside = initial(host.vore_selected.struggle_messages_outside)
+ host.vore_selected.struggle_messages_inside = initial(host.vore_selected.struggle_messages_inside)
+ . = TRUE
+ if("b_verb")
+ var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null)
+
+ if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN)
+ alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error")
+ return FALSE
+
+ host.vore_selected.vore_verb = new_verb
+ . = TRUE
+ if("b_fancy_sound")
+ host.vore_selected.fancy_vore = !host.vore_selected.fancy_vore
+ host.vore_selected.vore_sound = "Gulp"
+ host.vore_selected.release_sound = "Splatter"
+ // defaults as to avoid potential bugs
+ . = TRUE
+ if("b_release")
+ var/choice
+ if(host.vore_selected.fancy_vore)
+ choice = input(user,"Currently set to [host.vore_selected.release_sound]","Select Sound") as null|anything in fancy_release_sounds
+ else
+ choice = input(user,"Currently set to [host.vore_selected.release_sound]","Select Sound") as null|anything in classic_release_sounds
+
+ if(!choice)
+ return FALSE
+
+ host.vore_selected.release_sound = choice
+ . = TRUE
+ if("b_releasesoundtest")
+ var/sound/releasetest
+ if(host.vore_selected.fancy_vore)
+ releasetest = fancy_release_sounds[host.vore_selected.release_sound]
+ else
+ releasetest = classic_release_sounds[host.vore_selected.release_sound]
+
+ if(releasetest)
+ SEND_SOUND(user, releasetest)
+ . = TRUE
+ if("b_sound")
+ var/choice
+ if(host.vore_selected.fancy_vore)
+ choice = input(user,"Currently set to [host.vore_selected.vore_sound]","Select Sound") as null|anything in fancy_vore_sounds
+ else
+ choice = input(user,"Currently set to [host.vore_selected.vore_sound]","Select Sound") as null|anything in classic_vore_sounds
+
+ if(!choice)
+ return FALSE
+
+ host.vore_selected.vore_sound = choice
+ . = TRUE
+ if("b_soundtest")
+ var/sound/voretest
+ if(host.vore_selected.fancy_vore)
+ voretest = fancy_vore_sounds[host.vore_selected.vore_sound]
+ else
+ voretest = classic_vore_sounds[host.vore_selected.vore_sound]
+ if(voretest)
+ SEND_SOUND(user, voretest)
+ . = TRUE
+ if("b_tastes")
+ host.vore_selected.can_taste = !host.vore_selected.can_taste
+ . = TRUE
+ if("b_bulge_size")
+ var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null
+ if(new_bulge == null)
+ return FALSE
+ if(new_bulge == 0) //Disable.
+ host.vore_selected.bulge_size = 0
+ to_chat(user,"Your stomach will not be seen on examine. ")
+ else if (!ISINRANGE(new_bulge,25,200))
+ host.vore_selected.bulge_size = 0.25 //Set it to the default.
+ to_chat(user,"Invalid size. ")
+ else if(new_bulge)
+ host.vore_selected.bulge_size = (new_bulge/100)
+ . = TRUE
+ if("b_grow_shrink")
+ var/new_grow = input(user, "Choose the size that prey will be grown/shrunk to, ranging from 25% to 200%", "Set Growth Shrink Size.", host.vore_selected.shrink_grow_size) as num|null
+ if (new_grow == null)
+ return FALSE
+ if (!ISINRANGE(new_grow,25,200))
+ host.vore_selected.shrink_grow_size = 1 //Set it to the default
+ to_chat(user,"Invalid size. ")
+ else if(new_grow)
+ host.vore_selected.shrink_grow_size = (new_grow*0.01)
+ . = TRUE
+ if("b_nutritionpercent")
+ var/new_nutrition = input(user, "Choose the nutrition gain percentage you will recieve per tick from prey. Ranges from 0.01 to 100.", "Set Nutrition Gain Percentage.", host.vore_selected.nutrition_percent) as num|null
+ if(new_nutrition == null)
+ return FALSE
+ var/new_new_nutrition = CLAMP(new_nutrition, 0.01, 100)
+ host.vore_selected.nutrition_percent = new_new_nutrition
+ . = TRUE
+ if("b_burn_dmg")
+ var/new_damage = input(user, "Choose the amount of burn damage prey will take per tick. Ranges from 0 to 6.", "Set Belly Burn Damage.", host.vore_selected.digest_burn) as num|null
+ if(new_damage == null)
+ return FALSE
+ var/new_new_damage = CLAMP(new_damage, 0, 6)
+ host.vore_selected.digest_burn = new_new_damage
+ . = TRUE
+ if("b_brute_dmg")
+ var/new_damage = input(user, "Choose the amount of brute damage prey will take per tick. Ranges from 0 to 6", "Set Belly Brute Damage.", host.vore_selected.digest_brute) as num|null
+ if(new_damage == null)
+ return FALSE
+ var/new_new_damage = CLAMP(new_damage, 0, 6)
+ host.vore_selected.digest_brute = new_new_damage
+ . = TRUE
+ if("b_escapable")
+ if(host.vore_selected.escapable == 0) //Possibly escapable and special interactions.
+ host.vore_selected.escapable = 1
+ to_chat(usr,"Prey now have special interactions with your [lowertext(host.vore_selected.name)] depending on your settings. ")
+ else if(host.vore_selected.escapable == 1) //Never escapable.
+ host.vore_selected.escapable = 0
+ to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(host.vore_selected.name)]. ")
+ else
+ alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1
+ host.vore_selected.escapable = 0
+ . = TRUE
+ if("b_escapechance")
+ var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null
+ if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options
+ host.vore_selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(host.vore_selected.escapechance))
+ . = TRUE
+ if("b_escapetime")
+ var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null
+ if(!isnull(escape_time_input))
+ host.vore_selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(host.vore_selected.escapetime))
+ . = TRUE
+ if("b_transferchance")
+ var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null
+ if(!isnull(transfer_chance_input))
+ host.vore_selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(host.vore_selected.transferchance))
+ . = TRUE
+ if("b_transferlocation")
+ var/obj/belly/choice = input("Where do you want your [lowertext(host.vore_selected.name)] to lead if prey resists?","Select Belly") as null|anything in (host.vore_organs + "None - Remove" - host.vore_selected)
+
+ if(!choice) //They cancelled, no changes
+ return FALSE
+ else if(choice == "None - Remove")
+ host.vore_selected.transferlocation = null
+ else
+ host.vore_selected.transferlocation = choice.name
+ . = TRUE
+ if("b_absorbchance")
+ var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null
+ if(!isnull(absorb_chance_input))
+ host.vore_selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(host.vore_selected.absorbchance))
+ . = TRUE
+ if("b_digestchance")
+ var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null
+ if(!isnull(digest_chance_input))
+ host.vore_selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(host.vore_selected.digestchance))
+ . = TRUE
+ if("b_del")
+ var/alert = alert("Are you sure you want to delete your [lowertext(host.vore_selected.name)]?","Confirmation","Delete","Cancel")
+ if(!(alert == "Delete"))
+ return FALSE
+
+ var/failure_msg = ""
+
+ var/dest_for //Check to see if it's the destination of another vore organ.
+ for(var/belly in host.vore_organs)
+ var/obj/belly/B = belly
+ if(B.transferlocation == host.vore_selected)
+ dest_for = B.name
+ failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. "
+ break
+
+ if(host.vore_selected.contents.len)
+ failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same.
+ if(host.vore_selected.immutable)
+ failure_msg += "This belly is marked as undeletable. "
+ if(host.vore_organs.len == 1)
+ failure_msg += "You must have at least one belly. "
+
+ if(failure_msg)
+ alert(user,failure_msg,"Error!")
+ return FALSE
+
+ qdel(host.vore_selected)
+ host.vore_selected = host.vore_organs[1]
+ . = TRUE
+
+ if(.)
+ unsaved_changes = TRUE
\ No newline at end of file
diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm
index 0f4f4d0a37..4b16e1d66f 100644
--- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm
@@ -93,7 +93,6 @@
desc = "A small box containing Yonra's personal effects"
has_items = list(
/obj/item/weapon/melee/fluff/holochain/mass,
- /obj/item/weapon/implanter/reagent_generator/yonra,
/obj/item/clothing/accessory/medal/silver/unity)
//ivymoomoo:Ivy Baladeva
diff --git a/code/modules/vore/fluffstuff/custom_implants_vr.dm b/code/modules/vore/fluffstuff/custom_implants_vr.dm
new file mode 100644
index 0000000000..8647c9d68f
--- /dev/null
+++ b/code/modules/vore/fluffstuff/custom_implants_vr.dm
@@ -0,0 +1,547 @@
+
+//WickedTempest: Chakat Tempest
+/obj/item/weapon/implant/reagent_generator/tempest
+ generated_reagents = list("milk" = 2)
+ reagent_name = "milk"
+ usable_volume = 1000
+
+ empty_message = list("Your breasts are almost completely drained!")
+ full_message = list("Your teats feel heavy and swollen!")
+ emote_descriptor = list("squeezes milk", "tugs on Tempest's breasts, milking them")
+ self_emote_descriptor = list("squeeze")
+ random_emote = list("moos quietly")
+ verb_name = "Milk"
+ verb_desc = "Grab Tempest's nipples and milk them into a container! May cause blushing and groaning."
+
+/obj/item/weapon/implanter/reagent_generator/tempest
+ implant_type = /obj/item/weapon/implant/reagent_generator/tempest
+
+
+//Hottokeeki: Belle Day
+/obj/item/weapon/implant/reagent_generator/belle
+ generated_reagents = list("milk" = 2)
+ reagent_name = "milk"
+ usable_volume = 5000
+
+ empty_message = list("Your breasts and or udder feel almost completely drained!", "You're feeling a liittle on the empty side...")
+ full_message = list("You're due for a milking; your breasts and or udder feel heavy and swollen!", "Looks like you've got some full tanks!")
+ emote_descriptor = list("squeezes milk", "tugs on Belle's breasts/udders, milking them", "extracts milk")
+ self_emote_descriptor = list("squeeze", "extract")
+ random_emote = list("moos", "mrours", "groans softly")
+ verb_name = "Milk"
+ verb_desc = "Obtain Belle's milk and put it into a container! May cause blushing and groaning, or arousal."
+
+/obj/item/weapon/implanter/reagent_generator/belle
+ implant_type = /obj/item/weapon/implant/reagent_generator/belle
+
+//Gowst: Eldi Moljir
+//Eldi iz coolest elf-dorf.
+/obj/item/weapon/implant/reagent_generator/eldi
+ name = "lactation implant"
+ desc = "This is an implant that allows the user to lactate."
+ generated_reagents = list("milk" = 2)
+ reagent_name = "milk"
+ usable_volume = 1000
+
+ empty_message = list("Your breasts feel unusually empty.", "Your chest feels lighter - your milk supply is empty!", "Your milk reserves have run dry.", "Your grateful nipples ache as the last of your milk leaves them.")
+ full_message = list("Your breasts ache badly - they are swollen and feel fit to burst!", "You need to be milked! Your breasts feel bloated, eager for release.", "Your milky breasts are starting to leak...")
+ emote_descriptor = list("squeezes Eldi's nipples, milking them", "milks Eldi's breasts", "extracts milk")
+ self_emote_descriptor = list("squeeze out", "extract")
+ random_emote = list("surpresses a moan", "gasps sharply", "bites her lower lip")
+ verb_name = "Milk"
+ verb_desc = "Grab Eldi's breasts and milk her, storing her fresh, warm milk in a container. This will undoubtedly turn her on."
+
+/obj/item/weapon/implanter/reagent_generator/eldi
+ implant_type = /obj/item/weapon/implant/reagent_generator/eldi
+
+//Vorrarkul: Theodora Lindt
+/obj/item/weapon/implant/reagent_generator/vorrarkul
+ generated_reagents = list("chocolate_milk" = 2)
+ reagent_name = "chocalate milk"
+ usable_volume = 1000
+
+ empty_message = list("Your nipples are sore from being milked!")
+ full_message = list("Your breasts are full, their sweet scent emanating from your chest!")
+ emote_descriptor = list("squeezes chocolate milk from Theodora", "tugs on Theodora's nipples, milking them", "kneads Theodora's breasts, milking them")
+ self_emote_descriptor = list("squeeze", "knead")
+ random_emote = list("moans softly", "gives an involuntary squeal")
+ verb_name = "Milk"
+ verb_desc = "Grab Theodora's breasts and extract delicious chocolate milk from them!"
+
+/obj/item/weapon/implanter/reagent_generator/vorrarkul
+ implant_type = /obj/item/weapon/implant/reagent_generator/vorrarkul
+
+//Lycanthorph: Savannah Dixon
+/obj/item/weapon/implant/reagent_generator/savannah
+ generated_reagents = list("milk" = 2)
+ reagent_name = "milk"
+ usable_volume = 1000
+
+ empty_message = list("Your nipples are sore from being milked!", "Your breasts feel drained, milk is no longer leaking from your nipples!")
+ full_message = list("Your breasts are full, their sweet scent emanating from your chest!", "Your breasts feel full, milk is starting to leak from your nipples, filling the air with it's sweet scent!")
+ emote_descriptor = list("squeezes sweet milk from Savannah", "tugs on Savannah's nipples, milking them", "kneads Savannah's breasts, milking them")
+ self_emote_descriptor = list("squeeze", "knead")
+ random_emote = list("lets out a soft moan", "gives an involuntary squeal")
+ verb_name = "Milk"
+ verb_desc = "Grab Savannah's breasts and extract sweet milk from them!"
+
+/obj/item/weapon/implanter/reagent_generator/savannah
+ implant_type = /obj/item/weapon/implant/reagent_generator/savannah
+
+//SpoopyLizz: Roiz Lizden
+//I made this! Woo!
+//implant
+//--------------------
+/obj/item/weapon/implant/reagent_generator/roiz
+ name = "egg laying implant"
+ desc = "This is an implant that allows the user to lay eggs."
+ generated_reagents = list("egg" = 2)
+ usable_volume = 500
+ transfer_amount = 50
+
+ empty_message = list("Your lower belly feels smooth and empty. Sorry, we're out of eggs!", "The reduced pressure in your lower belly tells you there are no more eggs.")
+ full_message = list("Your lower belly looks swollen with irregular bumps, and it feels heavy.", "Your lower abdomen feels really heavy, making it a bit hard to walk.")
+ emote_descriptor = list("an egg right out of Roiz's lower belly!", "into Roiz' belly firmly, forcing him to lay an egg!", "Roiz really tight, who promptly lays an egg!")
+ var/verb_descriptor = list("squeezes", "pushes", "hugs")
+ var/self_verb_descriptor = list("squeeze", "push", "hug")
+ var/short_emote_descriptor = list("lays", "forces out", "pushes out")
+ self_emote_descriptor = list("lay", "force out", "push out")
+ random_emote = list("hisses softly with a blush on his face", "yelps in embarrassment", "grunts a little")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_roiz
+
+/obj/item/weapon/implant/reagent_generator/roiz/post_implant(mob/living/carbon/source)
+ START_PROCESSING(SSobj, src)
+ to_chat(source, "You implant [source] with \the [src]. ")
+ source.verbs |= assigned_proc
+ return 1
+
+/obj/item/weapon/implanter/reagent_generator/roiz
+ implant_type = /obj/item/weapon/implant/reagent_generator/roiz
+
+/mob/living/carbon/human/proc/use_reagent_implant_roiz()
+ set name = "Lay Egg"
+ set desc = "Force Roiz to lay an egg by squeezing into his lower body! This makes the lizard extremely embarrassed, and it looks funny."
+ set category = "Object"
+ set src in view(1)
+
+ //do_reagent_implant(usr)
+ if(!isliving(usr) || !usr.checkClickCooldown())
+ return
+
+ if(usr.incapacitated() || usr.stat > CONSCIOUS)
+ return
+
+ var/obj/item/weapon/implant/reagent_generator/roiz/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
+ if (rimplant)
+ if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
+ to_chat(src, "[pick(rimplant.empty_message)] ")
+ return
+
+ new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz(get_turf(src))
+
+ var/index = rand(0,3)
+
+ if (usr != src)
+ var/emote = rimplant.emote_descriptor[index]
+ var/verb_desc = rimplant.verb_descriptor[index]
+ var/self_verb_desc = rimplant.self_verb_descriptor[index]
+ usr.visible_message("[usr] [verb_desc] [emote] ",
+ "You [self_verb_desc] [emote] ")
+ else
+ visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
+ "You [pick(rimplant.self_emote_descriptor)] an egg. ")
+ if(prob(15))
+ visible_message("[src] [pick(rimplant.random_emote)]. ") // M-mlem.
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
+//Cameron653: Jasmine Lizden
+/obj/item/weapon/implant/reagent_generator/jasmine
+ name = "egg laying implant"
+ desc = "This is an implant that allows the user to lay eggs."
+ generated_reagents = list("egg" = 2)
+ usable_volume = 500
+ transfer_amount = 50
+
+ empty_message = list("Your lower belly feels flat, empty, and somewhat rough!", "Your lower belly feels completely empty, no more bulges visible... At least, for the moment!")
+ full_message = list("Your lower belly is stretched out, smooth,and heavy, small bulges visible from within!", "It takes considerably more effort to move yourself, the large bulges within your gut most likely the cause!")
+ emote_descriptor = list("an egg from Jasmine's tauric belly!", "into Jasmine's gut, forcing her to lay a considerably large egg!", "Jasmine with a considerable amount of force, causing an egg to slip right out of her!")
+ var/verb_descriptor = list("squeezes", "pushes", "hugs")
+ var/self_verb_descriptor = list("squeeze", "push", "hug")
+ var/short_emote_descriptor = list("lays", "forces out", "pushes out")
+ self_emote_descriptor = list("lay", "force out", "push out")
+ random_emote = list("hisses softly with a blush on her face", "bites down on her lower lip", "lets out a light huff")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_jasmine
+
+/obj/item/weapon/implant/reagent_generator/jasmine/post_implant(mob/living/carbon/source)
+ START_PROCESSING(SSobj, src)
+ to_chat(source, "You implant [source] with \the [src]. ")
+ source.verbs |= assigned_proc
+ return 1
+
+/obj/item/weapon/implanter/reagent_generator/jasmine
+ implant_type = /obj/item/weapon/implant/reagent_generator/jasmine
+
+/mob/living/carbon/human/proc/use_reagent_implant_jasmine()
+ set name = "Lay Egg"
+ set desc = "Cause Jasmine to lay an egg by squeezing her tauric belly!"
+ set category = "Object"
+ set src in view(1)
+
+ //do_reagent_implant(usr)
+ if(!isliving(usr) || !usr.checkClickCooldown())
+ return
+
+ if(usr.incapacitated() || usr.stat > CONSCIOUS)
+ return
+
+ var/obj/item/weapon/implant/reagent_generator/jasmine/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
+ if (rimplant)
+ if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
+ to_chat(src, "[pick(rimplant.empty_message)] ")
+ return
+
+ new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz(get_turf(src))
+
+ var/index = rand(0,3)
+
+ if (usr != src)
+ var/emote = rimplant.emote_descriptor[index]
+ var/verb_desc = rimplant.verb_descriptor[index]
+ var/self_verb_desc = rimplant.self_verb_descriptor[index]
+ usr.visible_message("[usr] [verb_desc] [emote] ",
+ "You [self_verb_desc] [emote] ")
+ else
+ visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
+ "You [pick(rimplant.self_emote_descriptor)] an egg. ")
+ if(prob(15))
+ visible_message("[src] [pick(rimplant.random_emote)]. ")
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
+//Draycu: Schae Yonra
+/obj/item/weapon/implant/reagent_generator/yonra
+ name = "egg laying implant"
+ desc = "This is an implant that allows the user to lay eggs."
+ generated_reagents = list("egg" = 2)
+ usable_volume = 500
+ transfer_amount = 50
+
+ empty_message = list("Your feathery lower belly feels smooth and empty. For now...", "The lack of clacking eggs in your abdomen lets you know you're free to continue your day as normal.", "The reduced pressure in your lower belly tells you there are no more eggs.", "With a soft sigh, you can feel your lower body is empty. You know it will only be a matter of time before another batch fills you up again, however.")
+ full_message = list("Your feathery lower belly looks swollen with irregular bumps, and feels very heavy.", "Your feathery covered lower abdomen feels really heavy, making it a bit hard to walk.", "The added weight from your collection of eggs constantly reminds you that you'll have to lay soon!", "The sounds of eggs clacking as you walk reminds you that you will have to lay soon!")
+ emote_descriptor = list("an egg right out of Yonra's feathery crotch!", "into Yonra's belly firmly, forcing her to lay an egg!", ", making Yonra gasp and softly moan while an egg slides out.")
+ var/verb_descriptor = list("squeezes", "pushes", "hugs")
+ var/self_verb_descriptor = list("squeeze", "push", "hug")
+ var/short_emote_descriptor = list("lays", "forces out", "pushes out")
+ self_emote_descriptor = list("lay", "force out", "push out")
+ random_emote = list("hisses softly with a blush on her face", "yelps in embarrassment", "grunts a little")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_yonra
+
+/obj/item/weapon/implant/reagent_generator/yonra/post_implant(mob/living/carbon/source)
+ START_PROCESSING(SSobj, src)
+ to_chat(source, "You implant [source] with \the [src]. ")
+ source.verbs |= assigned_proc
+ return 1
+
+/obj/item/weapon/implanter/reagent_generator/yonra
+ implant_type = /obj/item/weapon/implant/reagent_generator/yonra
+
+/mob/living/carbon/human/proc/use_reagent_implant_yonra()
+ set name = "Lay Egg"
+ set desc = "Force Yonra to lay an egg by squeezing into her lower body! This makes the Teshari stop whatever she is doing at the time, greatly embarassing her."
+ set category = "Object"
+ set src in view(1)
+
+ //do_reagent_implant(usr)
+ if(!isliving(usr) || !usr.checkClickCooldown())
+ return
+
+ if(usr.incapacitated() || usr.stat > CONSCIOUS)
+ return
+
+ var/obj/item/weapon/implant/reagent_generator/yonra/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
+ if (rimplant)
+ if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
+ to_chat(src, "[pick(rimplant.empty_message)] ")
+ return
+
+ new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari(get_turf(src))
+
+ var/index = rand(0,3)
+
+ if (usr != src)
+ var/emote = rimplant.emote_descriptor[index]
+ var/verb_desc = rimplant.verb_descriptor[index]
+ var/self_verb_desc = rimplant.self_verb_descriptor[index]
+ usr.visible_message("[usr] [verb_desc] [emote] ",
+ "You [self_verb_desc] [emote] ")
+ else
+ visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
+ "You [pick(rimplant.self_emote_descriptor)] an egg. ")
+ if(prob(15))
+ visible_message("[src] [pick(rimplant.random_emote)]. ")
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/teshari
+ name = "teshari egg"
+ desc = "It's a large teshari egg."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "tesh_egg"
+ filling_color = "#FDFFD1"
+ volume = 12
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/New()
+ ..()
+ reagents.add_reagent("egg", 10)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2
+ icon_state = "tesh_egg_2"
+
+//Konabird: Rischi
+/obj/item/weapon/implant/reagent_generator/rischi
+ name = "egg laying implant"
+ desc = "This is an implant that allows the user to lay eggs."
+ generated_reagents = list("egg" = 2)
+ usable_volume = 3000 //They requested 1 egg every ~30 minutes.
+ transfer_amount = 3000
+
+ empty_message = list("Your abdomen feels normal and taught, like usual.", "The lack of eggs in your abdomen leaves your belly flat and smooth.", "The reduced pressure in your belly tells you there are no more eggs.", "With a soft sigh, you can feel your body is empty of eggs. You know it will only be a matter of time before an egg forms once again, however.")
+ full_message = list("Your lower abdomen feels a bit swollen", "You feel a pressure within your abdomen, and a broody mood slowly creeps over you.", "You can feel the egg inside of you shift as you move, the needy feeling to lay slowly growing stronger!", "You can feel the egg inside of you, swelling out your normally taught abdomen considerably. You'll definitely need to lay soon!")
+ emote_descriptor = list("Rischi, causing the small female to squeak and wriggle, an egg falling from between her legs!", "Rischi's midsection, forcing her to lay an egg!", "Rischi, the Teshari huffing and grunting as an egg is squeezed from her body!")
+ var/verb_descriptor = list("squeezes", "squashes", "hugs")
+ var/self_verb_descriptor = list("squeeze", "push", "hug")
+ var/short_emote_descriptor = list("lays", "forces out", "pushes out")
+ self_emote_descriptor = list("lay", "force out", "push out")
+ random_emote = list("trembles and huffs, panting from the exertion.", "sees what has happened and covers her face with both hands!", "whimpers softly, her legs shivering, knees pointed inward from the feeling.")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_rischi
+
+/obj/item/weapon/implant/reagent_generator/rischi/post_implant(mob/living/carbon/source)
+ START_PROCESSING(SSobj, src)
+ to_chat(source, "You implant [source] with \the [src]. ")
+ source.verbs |= assigned_proc
+ return 1
+
+/obj/item/weapon/implanter/reagent_generator/rischi
+ implant_type = /obj/item/weapon/implant/reagent_generator/rischi
+
+/mob/living/carbon/human/proc/use_reagent_implant_rischi()
+ set name = "Lay Egg"
+ set desc = "Force Rischi to lay an egg by squeezing her! What a terribly rude thing to do!"
+ set category = "Object"
+ set src in view(1)
+
+ //do_reagent_implant(usr)
+ if(!isliving(usr) || !usr.checkClickCooldown())
+ return
+
+ if(usr.incapacitated() || usr.stat > CONSCIOUS)
+ return
+
+ var/obj/item/weapon/implant/reagent_generator/rischi/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
+ if (rimplant)
+ if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
+ to_chat(src, "[pick(rimplant.empty_message)] ")
+ return
+
+ new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2(get_turf(src))
+
+ var/index = rand(0,3)
+
+ if (usr != src)
+ var/emote = rimplant.emote_descriptor[index]
+ var/verb_desc = rimplant.verb_descriptor[index]
+ var/self_verb_desc = rimplant.self_verb_descriptor[index]
+ usr.visible_message("[usr] [verb_desc] [emote] ",
+ "You [self_verb_desc] [emote] ")
+ else
+ visible_message("[src] falls to her knees as the urge to lay overwhelms her, letting out a whimper as she [pick(rimplant.short_emote_descriptor)] an egg from between her legs. ",
+ "You fall to your knees as the urge to lay overwhelms you, letting out a whimper as you [pick(rimplant.self_emote_descriptor)] an egg from between your legs. ")
+ if(prob(15))
+ visible_message("[src] [pick(rimplant.random_emote)]. ")
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
+/*
+/obj/item/weapon/implant/reagent_generator/pumila_nectar //Bugged. Two implants at once messes things up.
+ generated_reagents = list("honey" = 2)
+ reagent_name = "honey"
+ usable_volume = 5000
+
+ empty_message = list("You appear to be all out of nectar", "You feel as though you are lacking a majority of your nectar.")
+ full_message = list("You appear to be full of nectar.", "You feel as though you are full of nectar!")
+ emote_descriptor = list("squeezes nectar", "extracts nectar")
+ self_emote_descriptor = list("squeeze", "extract")
+ verb_name = "Extract Honey"
+ verb_desc = "Obtain pumila's nectar and put it into a container!"
+
+/obj/item/weapon/implanter/reagent_generator/pumila_nectar
+ implant_type = /obj/item/weapon/implant/reagent_generator/pumila_nectar
+*/
+//Egg item
+//-------------
+/obj/item/weapon/reagent_containers/food/snacks/egg/roiz
+ name = "lizard egg"
+ desc = "It's a large lizard egg."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "egg_roiz"
+ filling_color = "#FDFFD1"
+ volume = 12
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/New()
+ ..()
+ reagents.add_reagent("egg", 9)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype( W, /obj/item/weapon/pen/crayon ))
+ var/obj/item/weapon/pen/crayon/C = W
+ var/clr = C.colourName
+
+ if(!(clr in list("blue","green","mime","orange","purple","rainbow","red","yellow")))
+ to_chat(user, "The egg refuses to take on this color! ")
+ return
+
+ to_chat(user, "You color \the [src] [clr] ")
+ icon_state = "egg_roiz_[clr]"
+ desc = "It's a large lizard egg. It has been colored [clr]!"
+ if (clr == "rainbow")
+ var/number = rand(1,4)
+ icon_state = icon_state + num2text(number, 0)
+ else
+ ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/friedegg/roiz
+ name = "fried lizard egg"
+ desc = "A large, fried lizard egg, with a touch of salt and pepper. It looks rather chewy."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "friedegg"
+ volume = 12
+
+/obj/item/weapon/reagent_containers/food/snacks/friedegg/roiz/New()
+ ..()
+ reagents.add_reagent("protein", 9)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
+ name = "boiled lizard egg"
+ desc = "A hard boiled lizard egg. Be careful, a lizard detective may hatch!"
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "egg_roiz"
+ volume = 12
+
+/obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz/New()
+ ..()
+ reagents.add_reagent("protein", 6)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/roiz
+ name = "chocolate lizard egg"
+ desc = "Such huge, sweet, fattening food. You feel gluttonous just looking at it."
+ icon = 'icons/vore/custom_items_vr.dmi'
+ icon_state = "chocolateegg_roiz"
+ filling_color = "#7D5F46"
+ nutriment_amt = 3
+ nutriment_desc = list("chocolate" = 5)
+ volume = 18
+
+/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/roiz/New()
+ ..()
+ reagents.add_reagent("sugar", 6)
+ reagents.add_reagent("coco", 6)
+ reagents.add_reagent("milk", 2)
+ bitesize = 2
+
+//SilverTalisman: Evian
+/obj/item/weapon/implant/reagent_generator/evian
+ emote_descriptor = list("an egg right out of Evian's lower belly!", "into Evian' belly firmly, forcing him to lay an egg!", "Evian really tight, who promptly lays an egg!")
+ var/verb_descriptor = list("squeezes", "pushes", "hugs")
+ var/self_verb_descriptor = list("squeeze", "push", "hug")
+ var/short_emote_descriptor = list("lays", "forces out", "pushes out")
+ self_emote_descriptor = list("lay", "force out", "push out")
+ random_emote = list("hisses softly with a blush on his face", "yelps in embarrassment", "grunts a little")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_evian
+
+/obj/item/weapon/implant/reagent_generator/evian/post_implant(mob/living/carbon/source)
+ START_PROCESSING(SSobj, src)
+ to_chat(source, "You implant [source] with \the [src]. ")
+ source.verbs |= assigned_proc
+ return 1
+
+/obj/item/weapon/implanter/reagent_generator/evian
+ implant_type = /obj/item/weapon/implant/reagent_generator/evian
+
+/mob/living/carbon/human/proc/use_reagent_implant_evian()
+ set name = "Lay Egg"
+ set desc = "Force Evian to lay an egg by squeezing into his lower body! This makes the lizard extremely embarrassed, and it looks funny."
+ set category = "Object"
+ set src in view(1)
+
+ //do_reagent_implant(usr)
+ if(!isliving(usr) || !usr.checkClickCooldown())
+ return
+
+ if(usr.incapacitated() || usr.stat > CONSCIOUS)
+ return
+
+ var/obj/item/weapon/implant/reagent_generator/evian/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ if(istype(I, /obj/item/weapon/implant/reagent_generator))
+ rimplant = I
+ break
+ if (rimplant)
+ if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
+ to_chat(src, "[pick(rimplant.empty_message)] ")
+ return
+
+ new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian(get_turf(src)) //Roiz/evian so it gets all the functionality
+
+ var/index = rand(0,3)
+
+ if (usr != src)
+ var/emote = rimplant.emote_descriptor[index]
+ var/verb_desc = rimplant.verb_descriptor[index]
+ var/self_verb_desc = rimplant.self_verb_descriptor[index]
+ usr.visible_message("[usr] [verb_desc] [emote] ",
+ "You [self_verb_desc] [emote] ")
+ else
+ visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
+ "You [pick(rimplant.self_emote_descriptor)] an egg. ")
+ if(prob(15))
+ visible_message("[src] [pick(rimplant.random_emote)]. ") // M-mlem.
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian
+ name = "dragon egg"
+ desc = "A quite large dragon egg!"
+ icon_state = "egg_roiz_yellow"
+
+
+/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype( W, /obj/item/weapon/pen/crayon)) //No coloring these ones!
+ return
+ else
+ ..()
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index ff25ac561d..fa0acd60d6 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -761,480 +761,6 @@
mid_length = 20
volume = 25
-//WickedTempest: Chakat Tempest
-/obj/item/weapon/implant/reagent_generator/tempest
- generated_reagents = list("milk" = 2)
- reagent_name = "milk"
- usable_volume = 1000
-
- empty_message = list("Your breasts are almost completely drained!")
- full_message = list("Your teats feel heavy and swollen!")
- emote_descriptor = list("squeezes milk", "tugs on Tempest's breasts, milking them")
- self_emote_descriptor = list("squeeze")
- random_emote = list("moos quietly")
- verb_name = "Milk"
- verb_desc = "Grab Tempest's nipples and milk them into a container! May cause blushing and groaning."
-
-/obj/item/weapon/implanter/reagent_generator/tempest
- implant_type = /obj/item/weapon/implant/reagent_generator/tempest
-
-
-//Hottokeeki: Belle Day
-/obj/item/weapon/implant/reagent_generator/belle
- generated_reagents = list("milk" = 2)
- reagent_name = "milk"
- usable_volume = 5000
-
- empty_message = list("Your breasts and or udder feel almost completely drained!", "You're feeling a liittle on the empty side...")
- full_message = list("You're due for a milking; your breasts and or udder feel heavy and swollen!", "Looks like you've got some full tanks!")
- emote_descriptor = list("squeezes milk", "tugs on Belle's breasts/udders, milking them", "extracts milk")
- self_emote_descriptor = list("squeeze", "extract")
- random_emote = list("moos", "mrours", "groans softly")
- verb_name = "Milk"
- verb_desc = "Obtain Belle's milk and put it into a container! May cause blushing and groaning, or arousal."
-
-/obj/item/weapon/implanter/reagent_generator/belle
- implant_type = /obj/item/weapon/implant/reagent_generator/belle
-
-//Gowst: Eldi Moljir
-//Eldi iz coolest elf-dorf.
-/obj/item/weapon/implant/reagent_generator/eldi
- name = "lactation implant"
- desc = "This is an implant that allows the user to lactate."
- generated_reagents = list("milk" = 2)
- reagent_name = "milk"
- usable_volume = 1000
-
- empty_message = list("Your breasts feel unusually empty.", "Your chest feels lighter - your milk supply is empty!", "Your milk reserves have run dry.", "Your grateful nipples ache as the last of your milk leaves them.")
- full_message = list("Your breasts ache badly - they are swollen and feel fit to burst!", "You need to be milked! Your breasts feel bloated, eager for release.", "Your milky breasts are starting to leak...")
- emote_descriptor = list("squeezes Eldi's nipples, milking them", "milks Eldi's breasts", "extracts milk")
- self_emote_descriptor = list("squeeze out", "extract")
- random_emote = list("surpresses a moan", "gasps sharply", "bites her lower lip")
- verb_name = "Milk"
- verb_desc = "Grab Eldi's breasts and milk her, storing her fresh, warm milk in a container. This will undoubtedly turn her on."
-
-/obj/item/weapon/implanter/reagent_generator/eldi
- implant_type = /obj/item/weapon/implant/reagent_generator/eldi
-
-//Vorrarkul: Theodora Lindt
-/obj/item/weapon/implant/reagent_generator/vorrarkul
- generated_reagents = list("chocolate_milk" = 2)
- reagent_name = "chocalate milk"
- usable_volume = 1000
-
- empty_message = list("Your nipples are sore from being milked!")
- full_message = list("Your breasts are full, their sweet scent emanating from your chest!")
- emote_descriptor = list("squeezes chocolate milk from Theodora", "tugs on Theodora's nipples, milking them", "kneads Theodora's breasts, milking them")
- self_emote_descriptor = list("squeeze", "knead")
- random_emote = list("moans softly", "gives an involuntary squeal")
- verb_name = "Milk"
- verb_desc = "Grab Theodora's breasts and extract delicious chocolate milk from them!"
-
-/obj/item/weapon/implanter/reagent_generator/vorrarkul
- implant_type = /obj/item/weapon/implant/reagent_generator/vorrarkul
-
-//Lycanthorph: Savannah Dixon
-/obj/item/weapon/implant/reagent_generator/savannah
- generated_reagents = list("milk" = 2)
- reagent_name = "milk"
- usable_volume = 1000
-
- empty_message = list("Your nipples are sore from being milked!", "Your breasts feel drained, milk is no longer leaking from your nipples!")
- full_message = list("Your breasts are full, their sweet scent emanating from your chest!", "Your breasts feel full, milk is starting to leak from your nipples, filling the air with it's sweet scent!")
- emote_descriptor = list("squeezes sweet milk from Savannah", "tugs on Savannah's nipples, milking them", "kneads Savannah's breasts, milking them")
- self_emote_descriptor = list("squeeze", "knead")
- random_emote = list("lets out a soft moan", "gives an involuntary squeal")
- verb_name = "Milk"
- verb_desc = "Grab Savannah's breasts and extract sweet milk from them!"
-
-/obj/item/weapon/implanter/reagent_generator/savannah
- implant_type = /obj/item/weapon/implant/reagent_generator/savannah
-
-//SpoopyLizz: Roiz Lizden
-//I made this! Woo!
-//implant
-//--------------------
-/obj/item/weapon/implant/reagent_generator/roiz
- name = "egg laying implant"
- desc = "This is an implant that allows the user to lay eggs."
- generated_reagents = list("egg" = 2)
- usable_volume = 500
- transfer_amount = 50
-
- empty_message = list("Your lower belly feels smooth and empty. Sorry, we're out of eggs!", "The reduced pressure in your lower belly tells you there are no more eggs.")
- full_message = list("Your lower belly looks swollen with irregular bumps, and it feels heavy.", "Your lower abdomen feels really heavy, making it a bit hard to walk.")
- emote_descriptor = list("an egg right out of Roiz's lower belly!", "into Roiz' belly firmly, forcing him to lay an egg!", "Roiz really tight, who promptly lays an egg!")
- var/verb_descriptor = list("squeezes", "pushes", "hugs")
- var/self_verb_descriptor = list("squeeze", "push", "hug")
- var/short_emote_descriptor = list("lays", "forces out", "pushes out")
- self_emote_descriptor = list("lay", "force out", "push out")
- random_emote = list("hisses softly with a blush on his face", "yelps in embarrassment", "grunts a little")
- assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_roiz
-
-/obj/item/weapon/implant/reagent_generator/roiz/post_implant(mob/living/carbon/source)
- START_PROCESSING(SSobj, src)
- to_chat(source, "You implant [source] with \the [src]. ")
- source.verbs |= assigned_proc
- return 1
-
-/obj/item/weapon/implanter/reagent_generator/roiz
- implant_type = /obj/item/weapon/implant/reagent_generator/roiz
-
-/mob/living/carbon/human/proc/use_reagent_implant_roiz()
- set name = "Lay Egg"
- set desc = "Force Roiz to lay an egg by squeezing into his lower body! This makes the lizard extremely embarrassed, and it looks funny."
- set category = "Object"
- set src in view(1)
-
- //do_reagent_implant(usr)
- if(!isliving(usr) || !usr.checkClickCooldown())
- return
-
- if(usr.incapacitated() || usr.stat > CONSCIOUS)
- return
-
- var/obj/item/weapon/implant/reagent_generator/roiz/rimplant
- for(var/obj/item/organ/external/E in organs)
- for(var/obj/item/weapon/implant/I in E.implants)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
- if (rimplant)
- if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
- to_chat(src, "[pick(rimplant.empty_message)] ")
- return
-
- new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz(get_turf(src))
-
- var/index = rand(0,3)
-
- if (usr != src)
- var/emote = rimplant.emote_descriptor[index]
- var/verb_desc = rimplant.verb_descriptor[index]
- var/self_verb_desc = rimplant.self_verb_descriptor[index]
- usr.visible_message("[usr] [verb_desc] [emote] ",
- "You [self_verb_desc] [emote] ")
- else
- visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
- "You [pick(rimplant.self_emote_descriptor)] an egg. ")
- if(prob(15))
- visible_message("[src] [pick(rimplant.random_emote)]. ") // M-mlem.
-
- rimplant.reagents.remove_any(rimplant.transfer_amount)
-
-//Cameron653: Jasmine Lizden
-/obj/item/weapon/implant/reagent_generator/jasmine
- name = "egg laying implant"
- desc = "This is an implant that allows the user to lay eggs."
- generated_reagents = list("egg" = 2)
- usable_volume = 500
- transfer_amount = 50
-
- empty_message = list("Your lower belly feels flat, empty, and somewhat rough!", "Your lower belly feels completely empty, no more bulges visible... At least, for the moment!")
- full_message = list("Your lower belly is stretched out, smooth,and heavy, small bulges visible from within!", "It takes considerably more effort to move yourself, the large bulges within your gut most likely the cause!")
- emote_descriptor = list("an egg from Jasmine's tauric belly!", "into Jasmine's gut, forcing her to lay a considerably large egg!", "Jasmine with a considerable amount of force, causing an egg to slip right out of her!")
- var/verb_descriptor = list("squeezes", "pushes", "hugs")
- var/self_verb_descriptor = list("squeeze", "push", "hug")
- var/short_emote_descriptor = list("lays", "forces out", "pushes out")
- self_emote_descriptor = list("lay", "force out", "push out")
- random_emote = list("hisses softly with a blush on her face", "bites down on her lower lip", "lets out a light huff")
- assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_jasmine
-
-/obj/item/weapon/implant/reagent_generator/jasmine/post_implant(mob/living/carbon/source)
- START_PROCESSING(SSobj, src)
- to_chat(source, "You implant [source] with \the [src]. ")
- source.verbs |= assigned_proc
- return 1
-
-/obj/item/weapon/implanter/reagent_generator/jasmine
- implant_type = /obj/item/weapon/implant/reagent_generator/jasmine
-
-/mob/living/carbon/human/proc/use_reagent_implant_jasmine()
- set name = "Lay Egg"
- set desc = "Cause Jasmine to lay an egg by squeezing her tauric belly!"
- set category = "Object"
- set src in view(1)
-
- //do_reagent_implant(usr)
- if(!isliving(usr) || !usr.checkClickCooldown())
- return
-
- if(usr.incapacitated() || usr.stat > CONSCIOUS)
- return
-
- var/obj/item/weapon/implant/reagent_generator/jasmine/rimplant
- for(var/obj/item/organ/external/E in organs)
- for(var/obj/item/weapon/implant/I in E.implants)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
- if (rimplant)
- if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
- to_chat(src, "[pick(rimplant.empty_message)] ")
- return
-
- new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz(get_turf(src))
-
- var/index = rand(0,3)
-
- if (usr != src)
- var/emote = rimplant.emote_descriptor[index]
- var/verb_desc = rimplant.verb_descriptor[index]
- var/self_verb_desc = rimplant.self_verb_descriptor[index]
- usr.visible_message("[usr] [verb_desc] [emote] ",
- "You [self_verb_desc] [emote] ")
- else
- visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
- "You [pick(rimplant.self_emote_descriptor)] an egg. ")
- if(prob(15))
- visible_message("[src] [pick(rimplant.random_emote)]. ")
-
- rimplant.reagents.remove_any(rimplant.transfer_amount)
-
-//Draycu: Schae Yonra
-/obj/item/weapon/implant/reagent_generator/yonra
- name = "egg laying implant"
- desc = "This is an implant that allows the user to lay eggs."
- generated_reagents = list("egg" = 2)
- usable_volume = 500
- transfer_amount = 50
-
- empty_message = list("Your feathery lower belly feels smooth and empty. For now...", "The lack of clacking eggs in your abdomen lets you know you're free to continue your day as normal.", "The reduced pressure in your lower belly tells you there are no more eggs.", "With a soft sigh, you can feel your lower body is empty. You know it will only be a matter of time before another batch fills you up again, however.")
- full_message = list("Your feathery lower belly looks swollen with irregular bumps, and feels very heavy.", "Your feathery covered lower abdomen feels really heavy, making it a bit hard to walk.", "The added weight from your collection of eggs constantly reminds you that you'll have to lay soon!", "The sounds of eggs clacking as you walk reminds you that you will have to lay soon!")
- emote_descriptor = list("an egg right out of Yonra's feathery crotch!", "into Yonra's belly firmly, forcing her to lay an egg!", ", making Yonra gasp and softly moan while an egg slides out.")
- var/verb_descriptor = list("squeezes", "pushes", "hugs")
- var/self_verb_descriptor = list("squeeze", "push", "hug")
- var/short_emote_descriptor = list("lays", "forces out", "pushes out")
- self_emote_descriptor = list("lay", "force out", "push out")
- random_emote = list("hisses softly with a blush on her face", "yelps in embarrassment", "grunts a little")
- assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_yonra
-
-/obj/item/weapon/implant/reagent_generator/yonra/post_implant(mob/living/carbon/source)
- START_PROCESSING(SSobj, src)
- to_chat(source, "You implant [source] with \the [src]. ")
- source.verbs |= assigned_proc
- return 1
-
-/obj/item/weapon/implanter/reagent_generator/yonra
- implant_type = /obj/item/weapon/implant/reagent_generator/yonra
-
-/mob/living/carbon/human/proc/use_reagent_implant_yonra()
- set name = "Lay Egg"
- set desc = "Force Yonra to lay an egg by squeezing into her lower body! This makes the Teshari stop whatever she is doing at the time, greatly embarassing her."
- set category = "Object"
- set src in view(1)
-
- //do_reagent_implant(usr)
- if(!isliving(usr) || !usr.checkClickCooldown())
- return
-
- if(usr.incapacitated() || usr.stat > CONSCIOUS)
- return
-
- var/obj/item/weapon/implant/reagent_generator/yonra/rimplant
- for(var/obj/item/organ/external/E in organs)
- for(var/obj/item/weapon/implant/I in E.implants)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
- if (rimplant)
- if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
- to_chat(src, "[pick(rimplant.empty_message)] ")
- return
-
- new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari(get_turf(src))
-
- var/index = rand(0,3)
-
- if (usr != src)
- var/emote = rimplant.emote_descriptor[index]
- var/verb_desc = rimplant.verb_descriptor[index]
- var/self_verb_desc = rimplant.self_verb_descriptor[index]
- usr.visible_message("[usr] [verb_desc] [emote] ",
- "You [self_verb_desc] [emote] ")
- else
- visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
- "You [pick(rimplant.self_emote_descriptor)] an egg. ")
- if(prob(15))
- visible_message("[src] [pick(rimplant.random_emote)]. ")
-
- rimplant.reagents.remove_any(rimplant.transfer_amount)
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/teshari
- name = "teshari egg"
- desc = "It's a large teshari egg."
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "tesh_egg"
- filling_color = "#FDFFD1"
- volume = 12
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/New()
- ..()
- reagents.add_reagent("egg", 10)
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2
- icon_state = "tesh_egg_2"
-
-//Konabird: Rischi
-/obj/item/weapon/implant/reagent_generator/rischi
- name = "egg laying implant"
- desc = "This is an implant that allows the user to lay eggs."
- generated_reagents = list("egg" = 2)
- usable_volume = 3000 //They requested 1 egg every ~30 minutes.
- transfer_amount = 3000
-
- empty_message = list("Your abdomen feels normal and taught, like usual.", "The lack of eggs in your abdomen leaves your belly flat and smooth.", "The reduced pressure in your belly tells you there are no more eggs.", "With a soft sigh, you can feel your body is empty of eggs. You know it will only be a matter of time before an egg forms once again, however.")
- full_message = list("Your lower abdomen feels a bit swollen", "You feel a pressure within your abdomen, and a broody mood slowly creeps over you.", "You can feel the egg inside of you shift as you move, the needy feeling to lay slowly growing stronger!", "You can feel the egg inside of you, swelling out your normally taught abdomen considerably. You'll definitely need to lay soon!")
- emote_descriptor = list("Rischi, causing the small female to squeak and wriggle, an egg falling from between her legs!", "Rischi's midsection, forcing her to lay an egg!", "Rischi, the Teshari huffing and grunting as an egg is squeezed from her body!")
- var/verb_descriptor = list("squeezes", "squashes", "hugs")
- var/self_verb_descriptor = list("squeeze", "push", "hug")
- var/short_emote_descriptor = list("lays", "forces out", "pushes out")
- self_emote_descriptor = list("lay", "force out", "push out")
- random_emote = list("trembles and huffs, panting from the exertion.", "sees what has happened and covers her face with both hands!", "whimpers softly, her legs shivering, knees pointed inward from the feeling.")
- assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_rischi
-
-/obj/item/weapon/implant/reagent_generator/rischi/post_implant(mob/living/carbon/source)
- START_PROCESSING(SSobj, src)
- to_chat(source, "You implant [source] with \the [src]. ")
- source.verbs |= assigned_proc
- return 1
-
-/obj/item/weapon/implanter/reagent_generator/rischi
- implant_type = /obj/item/weapon/implant/reagent_generator/rischi
-
-/mob/living/carbon/human/proc/use_reagent_implant_rischi()
- set name = "Lay Egg"
- set desc = "Force Rischi to lay an egg by squeezing her! What a terribly rude thing to do!"
- set category = "Object"
- set src in view(1)
-
- //do_reagent_implant(usr)
- if(!isliving(usr) || !usr.checkClickCooldown())
- return
-
- if(usr.incapacitated() || usr.stat > CONSCIOUS)
- return
-
- var/obj/item/weapon/implant/reagent_generator/rischi/rimplant
- for(var/obj/item/organ/external/E in organs)
- for(var/obj/item/weapon/implant/I in E.implants)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
- if (rimplant)
- if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
- to_chat(src, "[pick(rimplant.empty_message)] ")
- return
-
- new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2(get_turf(src))
-
- var/index = rand(0,3)
-
- if (usr != src)
- var/emote = rimplant.emote_descriptor[index]
- var/verb_desc = rimplant.verb_descriptor[index]
- var/self_verb_desc = rimplant.self_verb_descriptor[index]
- usr.visible_message("[usr] [verb_desc] [emote] ",
- "You [self_verb_desc] [emote] ")
- else
- visible_message("[src] falls to her knees as the urge to lay overwhelms her, letting out a whimper as she [pick(rimplant.short_emote_descriptor)] an egg from between her legs. ",
- "You fall to your knees as the urge to lay overwhelms you, letting out a whimper as you [pick(rimplant.self_emote_descriptor)] an egg from between your legs. ")
- if(prob(15))
- visible_message("[src] [pick(rimplant.random_emote)]. ")
-
- rimplant.reagents.remove_any(rimplant.transfer_amount)
-
-/*
-/obj/item/weapon/implant/reagent_generator/pumila_nectar //Bugged. Two implants at once messes things up.
- generated_reagents = list("honey" = 2)
- reagent_name = "honey"
- usable_volume = 5000
-
- empty_message = list("You appear to be all out of nectar", "You feel as though you are lacking a majority of your nectar.")
- full_message = list("You appear to be full of nectar.", "You feel as though you are full of nectar!")
- emote_descriptor = list("squeezes nectar", "extracts nectar")
- self_emote_descriptor = list("squeeze", "extract")
- verb_name = "Extract Honey"
- verb_desc = "Obtain pumila's nectar and put it into a container!"
-
-/obj/item/weapon/implanter/reagent_generator/pumila_nectar
- implant_type = /obj/item/weapon/implant/reagent_generator/pumila_nectar
-*/
-//Egg item
-//-------------
-/obj/item/weapon/reagent_containers/food/snacks/egg/roiz
- name = "lizard egg"
- desc = "It's a large lizard egg."
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "egg_roiz"
- filling_color = "#FDFFD1"
- volume = 12
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/New()
- ..()
- reagents.add_reagent("egg", 9)
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype( W, /obj/item/weapon/pen/crayon ))
- var/obj/item/weapon/pen/crayon/C = W
- var/clr = C.colourName
-
- if(!(clr in list("blue","green","mime","orange","purple","rainbow","red","yellow")))
- to_chat(user, "The egg refuses to take on this color! ")
- return
-
- to_chat(user, "You color \the [src] [clr] ")
- icon_state = "egg_roiz_[clr]"
- desc = "It's a large lizard egg. It has been colored [clr]!"
- if (clr == "rainbow")
- var/number = rand(1,4)
- icon_state = icon_state + num2text(number, 0)
- else
- ..()
-
-/obj/item/weapon/reagent_containers/food/snacks/friedegg/roiz
- name = "fried lizard egg"
- desc = "A large, fried lizard egg, with a touch of salt and pepper. It looks rather chewy."
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "friedegg"
- volume = 12
-
-/obj/item/weapon/reagent_containers/food/snacks/friedegg/roiz/New()
- ..()
- reagents.add_reagent("protein", 9)
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
- name = "boiled lizard egg"
- desc = "A hard boiled lizard egg. Be careful, a lizard detective may hatch!"
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "egg_roiz"
- volume = 12
-
-/obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz/New()
- ..()
- reagents.add_reagent("protein", 6)
- bitesize = 2
-
-/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/roiz
- name = "chocolate lizard egg"
- desc = "Such huge, sweet, fattening food. You feel gluttonous just looking at it."
- icon = 'icons/vore/custom_items_vr.dmi'
- icon_state = "chocolateegg_roiz"
- filling_color = "#7D5F46"
- nutriment_amt = 3
- nutriment_desc = list("chocolate" = 5)
- volume = 18
-
-/obj/item/weapon/reagent_containers/food/snacks/chocolateegg/roiz/New()
- ..()
- reagents.add_reagent("sugar", 6)
- reagents.add_reagent("coco", 6)
- reagents.add_reagent("milk", 2)
- bitesize = 2
-
//PontifexMinimus: Lucius/Lucia Null
/obj/item/weapon/fluff/dragor_dot
name = "supplemental battery"
@@ -1443,80 +969,6 @@
name = "Malady's riding crop"
desc = "An infernum made riding crop with Malady Blanche engraved in the shaft. It's a little worn from how many butts it has spanked."
-
-//SilverTalisman: Evian
-/obj/item/weapon/implant/reagent_generator/evian
- emote_descriptor = list("an egg right out of Evian's lower belly!", "into Evian' belly firmly, forcing him to lay an egg!", "Evian really tight, who promptly lays an egg!")
- var/verb_descriptor = list("squeezes", "pushes", "hugs")
- var/self_verb_descriptor = list("squeeze", "push", "hug")
- var/short_emote_descriptor = list("lays", "forces out", "pushes out")
- self_emote_descriptor = list("lay", "force out", "push out")
- random_emote = list("hisses softly with a blush on his face", "yelps in embarrassment", "grunts a little")
- assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_evian
-
-/obj/item/weapon/implant/reagent_generator/evian/post_implant(mob/living/carbon/source)
- START_PROCESSING(SSobj, src)
- to_chat(source, "You implant [source] with \the [src]. ")
- source.verbs |= assigned_proc
- return 1
-
-/obj/item/weapon/implanter/reagent_generator/evian
- implant_type = /obj/item/weapon/implant/reagent_generator/evian
-
-/mob/living/carbon/human/proc/use_reagent_implant_evian()
- set name = "Lay Egg"
- set desc = "Force Evian to lay an egg by squeezing into his lower body! This makes the lizard extremely embarrassed, and it looks funny."
- set category = "Object"
- set src in view(1)
-
- //do_reagent_implant(usr)
- if(!isliving(usr) || !usr.checkClickCooldown())
- return
-
- if(usr.incapacitated() || usr.stat > CONSCIOUS)
- return
-
- var/obj/item/weapon/implant/reagent_generator/evian/rimplant
- for(var/obj/item/organ/external/E in organs)
- for(var/obj/item/weapon/implant/I in E.implants)
- if(istype(I, /obj/item/weapon/implant/reagent_generator))
- rimplant = I
- break
- if (rimplant)
- if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
- to_chat(src, "[pick(rimplant.empty_message)] ")
- return
-
- new /obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian(get_turf(src)) //Roiz/evian so it gets all the functionality
-
- var/index = rand(0,3)
-
- if (usr != src)
- var/emote = rimplant.emote_descriptor[index]
- var/verb_desc = rimplant.verb_descriptor[index]
- var/self_verb_desc = rimplant.self_verb_descriptor[index]
- usr.visible_message("[usr] [verb_desc] [emote] ",
- "You [self_verb_desc] [emote] ")
- else
- visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg. ",
- "You [pick(rimplant.self_emote_descriptor)] an egg. ")
- if(prob(15))
- visible_message("[src] [pick(rimplant.random_emote)]. ") // M-mlem.
-
- rimplant.reagents.remove_any(rimplant.transfer_amount)
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian
- name = "dragon egg"
- desc = "A quite large dragon egg!"
- icon_state = "egg_roiz_yellow"
-
-
-/obj/item/weapon/reagent_containers/food/snacks/egg/roiz/evian/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype( W, /obj/item/weapon/pen/crayon)) //No coloring these ones!
- return
- else
- ..()
-
//jacknoir413:Areax Third
/obj/item/weapon/melee/baton/fluff/stunstaff
name = "Electrostaff"
diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm
index 3db6dc4386..ea7ec4c5cd 100644
--- a/code/modules/vore/resizing/resize_vr.dm
+++ b/code/modules/vore/resizing/resize_vr.dm
@@ -251,7 +251,7 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2
now_pushing = 0
forceMove(tmob.loc)
if(a_intent == I_GRAB || a_intent == I_DISARM)
- if(tmob.a_intent = I_HELP)
+ if(tmob.a_intent == I_HELP)
tmob.resting = 1
else
tmob.Weaken(1)
diff --git a/code/unit_tests/mob_tests.dm b/code/unit_tests/mob_tests.dm
index c6b21e5d36..0c74449d2d 100644
--- a/code/unit_tests/mob_tests.dm
+++ b/code/unit_tests/mob_tests.dm
@@ -27,3 +27,120 @@
qdel(H)
return 1
+
+
+/datum/modifier/unit_test
+
+/datum/unit_test/modifier
+ name = "modifier test template"
+ var/mob/living/subject = null
+ var/subject_type = /mob/living/carbon/human
+ var/list/inputs = list(1.00, 0.75, 0.50, 0.25, 0.00, -0.50, -1.0, -2.0)
+ var/list/expected_outputs = list(1.00, 0.75, 0.50, 0.25, 0.00, -0.50, -1.0, -2.0)
+ var/datum/modifier/test_modifier = null
+ var/issues = 0
+
+/datum/unit_test/modifier/start_test()
+ // Arrange.
+ subject = new subject_type(get_standard_turf())
+ subject.add_modifier(/datum/modifier/unit_test)
+ test_modifier = subject.get_modifier_of_type(/datum/modifier/unit_test)
+
+ // Act,
+ for(var/i = 1 to inputs.len)
+ set_tested_variable(test_modifier, inputs[i])
+ var/actual = round(get_test_value(subject), 0.01) // Rounding because floating point schannigans.
+ if(actual != expected_outputs[i])
+ issues++
+ log_bad("Input '[inputs[i]]' did not match expected output '[expected_outputs[i]]', but was instead '[actual]'.")
+
+ // Assert.
+ if(issues)
+ fail("[issues] issues were found.")
+ else
+ pass("No issues found.")
+ qdel(subject)
+ return TRUE
+
+// Override for subtypes.
+/datum/unit_test/modifier/proc/set_tested_variable(datum/modifier/M, new_value)
+ return
+
+/datum/unit_test/modifier/proc/get_test_value(mob/living/L)
+ return
+
+
+/datum/unit_test/modifier/heat_protection
+ name = "MOB: human mob heat protection is calculated correctly"
+
+/datum/unit_test/modifier/heat_protection/set_tested_variable(datum/modifier/M, new_value)
+ M.heat_protection = new_value
+
+/datum/unit_test/modifier/heat_protection/get_test_value(mob/living/L)
+ return L.get_heat_protection(1000)
+
+/datum/unit_test/modifier/heat_protection/simple_mob
+ name = "MOB: simple mob heat protection is calculated correctly"
+ subject_type = /mob/living/simple_mob
+
+
+/datum/unit_test/modifier/cold_protection
+ name = "MOB: human mob cold protection is calculated correctly"
+
+/datum/unit_test/modifier/cold_protection/set_tested_variable(datum/modifier/M, new_value)
+ M.cold_protection = new_value
+
+/datum/unit_test/modifier/cold_protection/get_test_value(mob/living/L)
+ return L.get_cold_protection(50)
+
+/datum/unit_test/modifier/cold_protection/simple_mob
+ name = "MOB: simple mob cold protection is calculated correctly"
+ subject_type = /mob/living/simple_mob
+
+
+/datum/unit_test/modifier/shock_protection
+ name = "MOB: human mob shock protection is calculated correctly"
+ inputs = list(3.00, 2.00, 1.50, 1.00, 0.75, 0.50, 0.25, 0.00)
+ expected_outputs = list(-2.00, -1.00, -0.50, 0.00, 0.25, 0.50, 0.75, 1.00)
+
+/datum/unit_test/modifier/shock_protection/set_tested_variable(datum/modifier/M, new_value)
+ M.siemens_coefficient = new_value
+
+/datum/unit_test/modifier/shock_protection/get_test_value(mob/living/L)
+ return L.get_shock_protection()
+
+/datum/unit_test/modifier/shock_protection/simple_mob
+ name = "MOB: simple mob shock protection is calculated correctly"
+ subject_type = /mob/living/simple_mob
+
+
+/datum/unit_test/modifier/percentage_armor
+ name = "MOB: human mob percentage armor is calculated correctly"
+ inputs = list(100, 75, 50, 25, 0)
+ expected_outputs = list(100, 75, 50, 25, 0)
+
+/datum/unit_test/modifier/percentage_armor/set_tested_variable(datum/modifier/M, new_value)
+ M.armor_percent = list("melee" = new_value)
+
+/datum/unit_test/modifier/percentage_armor/get_test_value(mob/living/L)
+ return L.getarmor(null, "melee")
+
+/datum/unit_test/modifier/percentage_armor/simple_mob
+ name = "MOB: simple mob percentage armor is calculated correctly"
+ subject_type = /mob/living/simple_mob
+
+
+/datum/unit_test/modifier/percentage_flat
+ name = "MOB: human mob flat armor is calculated correctly"
+ inputs = list(100, 75, 50, 25, 0)
+ expected_outputs = list(100, 75, 50, 25, 0)
+
+/datum/unit_test/modifier/percentage_flat/set_tested_variable(datum/modifier/M, new_value)
+ M.armor_flat = list("melee" = new_value)
+
+/datum/unit_test/modifier/percentage_flat/get_test_value(mob/living/L)
+ return L.getsoak(null, "melee")
+
+/datum/unit_test/modifier/percentage_flat/simple_mob
+ name = "MOB: simple mob flat armor is calculated correctly"
+ subject_type = /mob/living/simple_mob
diff --git a/html/changelog.html b/html/changelog.html
index e3ea40755b..39c9522a1d 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -53,6 +53,52 @@
-->
+
06 August 2020
+
Cerebulon updated:
+
+ Added new mobs Fire Bugs, Ice Hares, Tymisian Moths and Siffets to surface spawnlists. Also added a new dog breed, woof.
+
+
ForFoxSake updated:
+
+ Ported tgstation styled magazine restocking. Hit a bullet on a table or floor with a partially empty magazine to start restocking.
+
+
Mechoid updated:
+
+ Exosuits now have internal components, mostly like borgs, but larger.
+ Autolathes can use plastic and plasteel.
+ Autolathes can have tiered recipes, based on their manipulator rating.
+ Exosuit base health has been lowered due to the changes to damage processing.
+
+
Rykka Stormheart updated:
+
+ Blast Doors will now crush people, if they are on the same turf when it closes, and throw them to an adjacent open turf.
+ The damage should be delayed enough that you can walk out of the door before the sprite animation finishes and you will be safe. The delay is being reviewed, and will likely be adjusted after sufficient feedback is gathered.
+ Blast doors and shutters (the types that go on bar/kitchen/etc) will also throw items on their tiles.
+
+
+
03 August 2020
+
Cerebulon updated:
+
+ Added new book sprites, replaced old book sprites.
+ Added sticky notes, orderable from cargo
+ You can now carve graffiti into suitable walls/floors with sharp objects.
+ Trash, graffiti, dirt (Not blood), noticeboards and stickynotes are now persistent across rounds. This is admin-toggleable.
+
+
Mechoid updated:
+
+ Adds a glass jar subtype, the glass tank, that can be used to hold live fish. Remember to add water!
+
+
Rykka Stormheart updated:
+
+ Ported over Aurora Cooking from AuroraStation and Citadel-RP!
+ Recipes are separate per appliance, and all appliances have a use!
+ Please take note, Chefs, to pre-heat you appliances at the start of your shift.
+ Fryer Recipes require batter before they can be made!
+ Fire alarms will go off if you burn food!
+ The largest change - Cooking takes TIME. Around 6 minutes for the largest recipes in the game.
+ Too many other changes to list - refer to PR #7344 https://github.com/PolarisSS13/Polaris/pull/7344
+
+
21 June 2020
Arokha updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 796fa0aa3b..0ca89eb066 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -5200,3 +5200,43 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Ports color_square() from Paradise for colour previews, cleaning up pref.
code & correct alignment issue w/ nested tables.
- tweak: Markings are now properly aligned within a table.
+2020-08-03:
+ Cerebulon:
+ - imageadd: Added new book sprites, replaced old book sprites.
+ - rscadd: Added sticky notes, orderable from cargo
+ - rscadd: You can now carve graffiti into suitable walls/floors with sharp objects.
+ - rscadd: Trash, graffiti, dirt (Not blood), noticeboards and stickynotes are now
+ persistent across rounds. This is admin-toggleable.
+ Mechoid:
+ - rscadd: Adds a glass jar subtype, the glass tank, that can be used to hold live
+ fish. Remember to add water!
+ Rykka Stormheart:
+ - rscadd: Ported over Aurora Cooking from AuroraStation and Citadel-RP!
+ - rscadd: Recipes are separate per appliance, and all appliances have a use!
+ - rscadd: Please take note, Chefs, to pre-heat you appliances at the start of your
+ shift.
+ - rscadd: Fryer Recipes require batter before they can be made!
+ - rscadd: Fire alarms will go off if you burn food!
+ - rscadd: The largest change - Cooking takes TIME. Around 6 minutes for the largest
+ recipes in the game.
+ - rscadd: 'Too many other changes to list - refer to PR #7344 https://github.com/PolarisSS13/Polaris/pull/7344'
+2020-08-06:
+ Cerebulon:
+ - rscadd: Added new mobs Fire Bugs, Ice Hares, Tymisian Moths and Siffets to surface
+ spawnlists. Also added a new dog breed, woof.
+ ForFoxSake:
+ - rscadd: Ported tgstation styled magazine restocking. Hit a bullet on a table or
+ floor with a partially empty magazine to start restocking.
+ Mechoid:
+ - rscadd: Exosuits now have internal components, mostly like borgs, but larger.
+ - rscadd: Autolathes can use plastic and plasteel.
+ - rscadd: Autolathes can have tiered recipes, based on their manipulator rating.
+ - tweak: Exosuit base health has been lowered due to the changes to damage processing.
+ Rykka Stormheart:
+ - rscadd: Blast Doors will now crush people, if they are on the same turf when it
+ closes, and throw them to an adjacent open turf.
+ - rscadd: The damage should be delayed enough that you can walk out of the door
+ before the sprite animation finishes and you will be safe. The delay is being
+ reviewed, and will likely be adjusted after sufficient feedback is gathered.
+ - rscadd: Blast doors and shutters (the types that go on bar/kitchen/etc) will also
+ throw items on their tiles.
diff --git a/html/changelogs/billybangles-chessboard.yml b/html/changelogs/billybangles-chessboard.yml
deleted file mode 100644
index f51e69fc67..0000000000
--- a/html/changelogs/billybangles-chessboard.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-author: Billy Bangles
-delete-after: True
- - rscadd: "Adds a chessboard holodeck program and a set of chess pieces"
- - imageadd: "Adds a set of small floor decals numbered 1 to 8 and letters A to H"
diff --git a/html/changelogs/cerebulon - booksprites.yml b/html/changelogs/cerebulon - booksprites.yml
deleted file mode 100644
index 95bd5fd49c..0000000000
--- a/html/changelogs/cerebulon - booksprites.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Cerebulon
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Added inhand sprites for books."
- -imageadd: "Added new book sprites, replaced old book sprites."
diff --git a/html/changelogs/cerebulon - persistence.yml b/html/changelogs/cerebulon - persistence.yml
deleted file mode 100644
index 3b12f41967..0000000000
--- a/html/changelogs/cerebulon - persistence.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Cerebulon
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Added sticky notes, orderable from cargo"
- -rscadd: "You can now carve graffiti into suitable walls/floors with sharp objects."
- - rscadd: "Trash, graffiti, dirt (Not blood), noticeboards and stickynotes are now persistent across rounds. This is admin-toggleable."
diff --git a/html/changelogs/kasparovy-pr-7314.yml b/html/changelogs/kasparovy-pr-7314.yml
deleted file mode 100644
index ad72c999e2..0000000000
--- a/html/changelogs/kasparovy-pr-7314.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Your name.
-author: KasparoVy
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-changes:
- - tweak: Removes a pixel from the south-facing dir of the eyepatch's strap which unintentionally blocked your 'good' eye.
diff --git a/html/changelogs/mechoid - fishtank.yml b/html/changelogs/mechoid - fishtank.yml
deleted file mode 100644
index b30268dacd..0000000000
--- a/html/changelogs/mechoid - fishtank.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Mechoid
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Adds a glass jar subtype, the glass tank, that can be used to hold live fish. Remember water!"
diff --git a/html/changelogs/rykka-stormheart-pr-7344.yml b/html/changelogs/rykka-stormheart-pr-7344.yml
deleted file mode 100644
index e8394c72cb..0000000000
--- a/html/changelogs/rykka-stormheart-pr-7344.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Rykka Stormheart
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Ported over Aurora Cooking from AuroraStation and Citadel-RP!"
- - rscadd: "Refactored Recipes to be separated per-appliance, and all appliances have a use!"
- - rscadd: "Please take note, Chefs, to pre-heat you appliances at the start of your shift."
- - rscadd: "Fryer Recipes require batter before they can be made!"
- - rscadd: "Fire alarms will go off if you burn food!"
- - rscadd: "The largest change - Cooking takes TIME. Around 6 minutes for the largest recipes in the game."
- - rscadd: "Too many other changes to list - refer to PR #7344 https://github.com/PolarisSS13/Polaris/pull/7344"
- - rscdel: "Removed fun, and any sense of joy in the game."
diff --git a/icons/effects/actions_mecha.dmi b/icons/effects/actions_mecha.dmi
index 0a505767a3..882ceb534f 100644
Binary files a/icons/effects/actions_mecha.dmi and b/icons/effects/actions_mecha.dmi differ
diff --git a/icons/effects/map_effects.dmi b/icons/effects/map_effects.dmi
index 4f5bff755d..0f28f9d2da 100644
Binary files a/icons/effects/map_effects.dmi and b/icons/effects/map_effects.dmi differ
diff --git a/icons/mecha/mech_component.dmi b/icons/mecha/mech_component.dmi
new file mode 100644
index 0000000000..c23c2d81e1
Binary files /dev/null and b/icons/mecha/mech_component.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index e42df29d4b..f265594a8d 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index baffef6647..0d607dd537 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/human_face_m.dmi b/icons/mob/human_face_m.dmi
index 2a6586d3d2..9b5c1441eb 100644
Binary files a/icons/mob/human_face_m.dmi and b/icons/mob/human_face_m.dmi differ
diff --git a/icons/mob/pai_vr.dmi b/icons/mob/pai_vr.dmi
index a631425ae9..f03ad0ce42 100644
Binary files a/icons/mob/pai_vr.dmi and b/icons/mob/pai_vr.dmi differ
diff --git a/icons/mob/vore64x64.dmi b/icons/mob/vore64x64.dmi
index 50251e22cc..a1042a6fd9 100644
Binary files a/icons/mob/vore64x64.dmi and b/icons/mob/vore64x64.dmi differ
diff --git a/icons/obj/aibots.dmi b/icons/obj/aibots.dmi
index 87f7813969..a7d9e3b79f 100644
Binary files a/icons/obj/aibots.dmi and b/icons/obj/aibots.dmi differ
diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi
index 8f887eeb92..fb8c8d2c3d 100644
Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 31ec945739..19d7de134f 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index 349c8a4030..3b7f9b4f60 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ
diff --git a/icons/obj/machines/floodlight.dmi b/icons/obj/machines/floodlight.dmi
index 8dea4dc8b6..45c5ec6c67 100644
Binary files a/icons/obj/machines/floodlight.dmi and b/icons/obj/machines/floodlight.dmi differ
diff --git a/icons/obj/status_display.dmi b/icons/obj/status_display.dmi
index 842a379ddc..5dbaae994d 100644
Binary files a/icons/obj/status_display.dmi and b/icons/obj/status_display.dmi differ
diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm
index bbd7e781eb..3cf78444ea 100644
--- a/maps/southern_cross/southern_cross-3.dmm
+++ b/maps/southern_cross/southern_cross-3.dmm
@@ -1,12 +1,12 @@
"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/plains/mountains)
"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/plains/mountains)
-"ac" = (/turf/simulated/wall/dungeon,/area/surface/outside/path/plains)
-"ad" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains)
-"ae" = (/obj/effect/step_trigger/teleporter/mine/to_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains)
+"ac" = (/obj/effect/map_effect/perma_light/concentrated/incandescent,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/exterior)
+"ad" = (/turf/simulated/wall/dungeon,/area/surface/outpost/mining_main/exterior)
+"ae" = (/obj/effect/map_effect/portal/line/side_a,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outpost/mining_main/exterior)
"af" = (/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains)
"ag" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains)
"ah" = (/turf/simulated/mineral/ignore_mapgen/sif,/area/surface/outside/plains/mountains)
-"ai" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/obj/effect/overlay/snow/floor,/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains)
+"ai" = (/obj/effect/map_effect/portal/master/side_a/plains_to_caves,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outpost/mining_main/exterior)
"aj" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/plains)
"ak" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains)
"al" = (/turf/simulated/floor/outdoors/snow/sif/planetuse,/area/surface/outside/plains/outpost)
@@ -1568,12 +1568,18 @@
"Eh" = (/obj/effect/shuttle_landmark{landmark_tag = "skipjack_planet"; name = "Sif Surface South"},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/skipjack_station/planet)
"Ei" = (/obj/effect/overmap/visitable/planet/Sif,/turf/simulated/mineral/sif,/area/surface/outside/plains/mountains)
"Ej" = (/obj/random/crate,/turf/simulated/floor/tiled/steel_grid,/area/surface/outpost/main/garage)
-
+"Ek" = (/obj/effect/map_effect/portal/line/side_a,/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains)
+"El" = (/obj/effect/map_effect/portal/master/side_a/plains_to_caves/river,/turf/simulated/floor/water{outdoors = 0},/area/surface/outside/plains/mountains)
+"Em" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outpost/mining_main/exterior)
+"En" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outpost/mining_main/exterior)
+"Eo" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outpost/mining_main/exterior)
+"Ep" = (/obj/effect/overlay/snow/floor,/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/tiled/steel/sif/planetuse,/area/surface/outside/path/plains)
+
(1,1,1) = {"
-aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacadadadabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaeaeaeababababababababab
-aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaiajajajahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
-aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahalalalalalalalalalalalalalalalalalalalahahahahalalalalalalalahahahahalalahahahahamajajajananananalalalalalalalalalalahahahahahahahahahahahahalalalalahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
-aaafafafafafalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahalalalalalalalamajajajaoapaqanalalalalalalalalalalalahahahahahahahahahahalalalalalalahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
+aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababanacacacanabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababafakakakafabababababababab
+aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahadaiaeaeanahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafElEkEkafafafafafafafafaa
+aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafahahahalalalalalalalalalalalalalalalalalalalahahahahalalalalalalalahahahahalalahahahahadEnEmEoananananalalalalalalalalalalahahahahahahahahahahahahalalalalahahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
+aaafafafafafalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahalalalalalalalEpajajajaoapaqanalalalalalalalalalalalahahahahahahahahahahalalalalalalahahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
aaafafafalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalamajajajarasatanalalalalalalalalalalalalalahahahahahahalalalalalalalalalahahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
aaafafafalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalauavavavawaxayanalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
aaafafafalalalalalalalalalafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafafafafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalazajajajananananalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalahahahahahahahahahahahahahahahahahafafafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafakakakafafafafafafafafaa
@@ -1826,3 +1832,4 @@ aaafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafDADADADADA
aaEiafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafagafafafafafafafafDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDJDJDKDKDJDJDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDQDVDMDWDQDQDQDQDQDQDQDQDQDQDQDQDQDQafafafafafafafafafafafafagafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafaa
aaaaaaaaaaaaaaaaabababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDZDZDZDZDZDZDQDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDQDYDYDYDQDXDXDXDXDXDXDXDXDXDXDXDXDXababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababab
"}
+
diff --git a/maps/southern_cross/southern_cross-4.dmm b/maps/southern_cross/southern_cross-4.dmm
index 6329f2a1ec..b91bcc7f33 100644
--- a/maps/southern_cross/southern_cross-4.dmm
+++ b/maps/southern_cross/southern_cross-4.dmm
@@ -124,10 +124,10 @@
"ct" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
"cu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_a)
"cv" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/cave)
-"cw" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"cw" = (/obj/effect/map_effect/perma_light/concentrated/incandescent,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
"cx" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
-"cy" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/deep)
-"cz" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep)
+"cy" = (/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/deep)
+"cz" = (/obj/effect/map_effect/portal/master/side_a/caves_to_wilderness,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
"cA" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/medical)
"cB" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
"cC" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
@@ -213,7 +213,7 @@
"ee" = (/obj/machinery/door/blast/regular{id = "xenoarch_cell2"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
"ef" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall/checkpoint)
"eg" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
-"eh" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"eh" = (/obj/effect/map_effect/portal/line/side_a,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
"ei" = (/obj/item/weapon/banner/nt,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
"ej" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/medical)
"ek" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
@@ -229,7 +229,7 @@
"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
"ew" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ex" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"ex" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/wall/dungeon,/area/surface/cave/explored/deep)
"ey" = (/obj/structure/table/steel,/obj/item/weapon/tool/screwdriver,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"ez" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
"eA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Airlock 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
@@ -418,38 +418,60 @@
"ib" = (/obj/machinery/radiocarbon_spectrometer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
"ic" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/glasses/science,/obj/item/device/suit_cooling_unit,/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
"id" = (/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/research/xenoarcheology)
-"ie" = (/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/normal)
+"ie" = (/obj/effect/map_effect/portal/line/side_a,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep)
"if" = (/obj/item/stack/flag/green,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
"ig" = (/obj/item/stack/flag/red{amount = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
"ih" = (/obj/structure/table/standard,/obj/item/weapon/flame/lighter/random,/obj/item/weapon/tool/crowbar,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
"ii" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"ij" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
+"ij" = (/obj/effect/map_effect/portal/master/side_a/caves_to_wilderness/river,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep)
"ik" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"il" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
"im" = (/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"in" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
+"in" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/cave/explored/deep)
"io" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"ip" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
+"ip" = (/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/cave/explored/deep)
+"iq" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/unexplored/deep)
"ir" = (/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"is" = (/obj/machinery/mining/drill,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"it" = (/obj/vehicle/train/engine,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"iu" = (/obj/vehicle/train/trolley,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
+"iv" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/cave/explored/deep)
"iw" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/heavyduty{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"ix" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
+"iy" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/mining_main/cave)
"iz" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
+<<<<<<< HEAD
"iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
"iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
+=======
+"iA" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/mining_main/cave)
+"iB" = (/turf/simulated/mineral/sif,/area/surface/cave/explored/normal)
+"iC" = (/turf/simulated/wall,/area/surface/cave/explored/normal)
+"iD" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/mining_main/cave)
+"iE" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/outpost/mining_main/cave)
+"iF" = (/turf/simulated/wall,/area/surface/outpost/mining_main/cave)
+"iG" = (/turf/simulated/wall/dungeon,/area/surface/outpost/mining_main/cave)
+"iH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/outpost/mining_main/cave)
+"iI" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/outpost/mining_main/cave)
+"iJ" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/outpost/mining_main/cave)
+"iK" = (/obj/effect/map_effect/portal/master/side_b/caves_to_plains{icon_state = "portal_side_b"; dir = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/outpost/mining_main/cave)
+"iL" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
+"iM" = (/obj/effect/map_effect/portal/master/side_b/caves_to_plains/river{icon_state = "portal_side_b"; dir = 1},/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
+"iN" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/explored/normal)
+"iO" = (/obj/effect/map_effect/perma_light/concentrated,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
+
+>>>>>>> 0abf36f... Merge pull request #7378 from Neerti/portals
(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacydsdsdsabaaaaaaaaaaaaaaaa
+aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxczehehcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababexijieieababababababababaa
aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcZcZcZcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsacabababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababefdtegdtefabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsacacababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacehcZcZcZexacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacaccZcZcZacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacgoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
+aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsacacababababababaa
+aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacefdtegdtefacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
+aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacincZcZcZipacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa
+aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqacivivivacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
+aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqiqacacacacacacgoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
+aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqgoacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
+aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiqacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacabababababababaa
aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
@@ -685,14 +707,15 @@ adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimiugtafafafidamfkflamfmfnfofpfqfrfsftaxfudkdkfvfwfxfyfzfAfBfCafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimimgtafafafeifDfDfDfDfEfFfGfHfDfIfJfKfLfMfNfOfPfQesfRfSfTfUfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafafaffDfVfWfXfYfZgagbgcgdgegdavgfggghgibNgjgkglgmgnfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiiimimiwixixikijilililgugvgwgwgxgygzgAgdgBgCgDgEgFgGgFgFgHgIgJgKgKgKgKafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvizizcvizizcvinafafaffDgNgwgOgPgQgRgSgdgTgUgVgdgWgXgYgZhahbhchdhehfgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhggwgOhhhihjhkgdhlhmhngdhohphqhrhshthuhvhwhxgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhygwiohAhBhChDgdhEhFhGgdhHhIhJhKhLhMhLhdhNhOgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDfDhPhQhRhShThUfDgEgEgEgJhVhWhXhYhZiaibhdicgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaefDfDfDfDfDfDfDfDaeaeaegJgJgFgJgJgFgJgJgKgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiiimimiwixixikiyilililgugvgwgwgxgygzgAgdgBgCgDgEgFgGgFgFgHgIgJgKgKgKgKafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvizizcvizizcviAafafaffDgNgwgOgPgQgRgSgdgTgUgVgdgWgXgYgZhahbhchdhehfgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiAafafaffDhggwgOhhhihjhkgdhlhmhngdhohphqhrhshthuhvhwhxgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiAafafaffDhygwiohAhBhChDgdhEhFhGgdhHhIhJhKhLhMhLhdhNhOgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiBiAafafaffDfDhPhQhRhShThUfDgEgEgEgJhVhWhXhYhZiaibhdicgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiBiAafafafiCfDfDfDfDfDfDfDfDaeaeaegJgJgFgJgJgFgJgJgKgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiBiDiEiEiEiFaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiBiGiHiEiIiGaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
+adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiBiGiKiJiJiGaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiMiLiLaeaeaeaeaeaeaeaead
+adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiNiFiOiOiOiFadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaegLgLgLaeadadadadadadadad
"}
+
diff --git a/maps/southern_cross/southern_cross-8.dmm b/maps/southern_cross/southern_cross-8.dmm
index bfbedbcfdf..500cc9c393 100644
--- a/maps/southern_cross/southern_cross-8.dmm
+++ b/maps/southern_cross/southern_cross-8.dmm
@@ -1,338 +1,343 @@
-"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/wilderness/mountains)
-"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/wilderness/mountains)
-"ac" = (/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains)
-"ad" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains)
-"ae" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep)
-"af" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outpost/wall)
-"ag" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep)
-"ah" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/deep)
-"ai" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/deep)
-"aj" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep)
-"ak" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep)
-"al" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/river/svartan)
-"am" = (/turf/simulated/floor/water,/area/surface/outside/river/svartan)
-"an" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"ao" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/path/wilderness)
-"ap" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aq" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/path/wilderness)
-"ar" = (/turf/simulated/floor/wood,/area/surface/outside/path/wilderness)
-"as" = (/turf/simulated/wall/wood,/area/surface/outside/path/wilderness)
-"at" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal)
-"au" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/svartan)
-"av" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/svartan)
-"aw" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/svartan)
-"ax" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west/small,/turf/simulated/floor/water,/area/surface/outside/river/svartan)
-"ay" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"az" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"aA" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"aB" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east/small,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"aC" = (/obj/structure/showcase/sign{desc = "This appears to be a sign warning people that the other side is extremely hazardous."; icon_state = "wilderness2"; pixel_y = -5},/turf/simulated/wall/wood,/area/surface/outside/path/wilderness)
-"aD" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal)
-"aE" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"aF" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
-"aG" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aI" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/normal)
-"aJ" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/deep)
-"aK" = (/turf/simulated/floor/water,/area/surface/outside/ocean)
-"aL" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/ocean)
-"aM" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aN" = (/turf/simulated/floor/water/deep,/area/surface/outside/ocean)
-"aO" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aP" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/normal)
-"aQ" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/ocean)
-"aR" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/ocean)
-"aS" = (/turf/simulated/floor/wood{outdoors = 1},/area/surface/outside/path/wilderness)
-"aT" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle2/mining)
-"aU" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining)
-"aV" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/surface/outside/wilderness/normal)
-"aW" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness)
-"aX" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining)
-"aY" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle1/mining)
-"aZ" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"ba" = (/turf/simulated/wall/log_sif,/area/surface/outpost/shelter)
-"bb" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness)
-"bc" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bd" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"be" = (/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bf" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bg" = (/obj/structure/table/steel,/obj/machinery/power/apc{dir = 8; locked = 0; name = "west bump"; operating = 0; pixel_x = -24},/obj/structure/cable,/obj/item/stack/material/phoron,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bh" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bi" = (/obj/structure/closet,/obj/random/maintenance/clean,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bj" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bk" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/mountains)
-"bl" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bm" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bn" = (/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bo" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall/checkpoint)
-"bp" = (/obj/machinery/door/airlock/voidcraft{name = "Wilderness Containment"},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bq" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
-"br" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bs" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bt" = (/obj/effect/step_trigger/teleporter/wild/from_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"bu" = (/obj/effect/step_trigger/teleporter/wild/from_wild,/turf/simulated/floor/water,/area/surface/outside/ocean)
-"bv" = (/obj/structure/closet/crate,/obj/random/powercell,/obj/item/weapon/tool/screwdriver,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bw" = (/obj/random/junk,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_dock_1"; name = "shuttle bay controller"; pixel_x = 0; pixel_y = -26; tag_door = "mining_dock_1_door"},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bx" = (/obj/item/weapon/banner/virgov,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"by" = (/obj/machinery/space_heater,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bz" = (/obj/machinery/space_heater,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_dock_2"; name = "shuttle bay controller"; pixel_x = 0; pixel_y = -26; tag_door = "mining_dock_2_door"},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
-"bA" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_2"; landmark_tag = "shuttle2_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining)
-"bB" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_1"; landmark_tag = "shuttle1_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining)
+"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/wilderness/mountains)
+"ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/wilderness/mountains)
+"ac" = (/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains)
+"ad" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains)
+"ae" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep)
+"af" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outpost/wall)
+"ag" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep)
+"ah" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/deep)
+"ai" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/deep)
+"aj" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep)
+"ak" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep)
+"al" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/river/svartan)
+"am" = (/turf/simulated/floor/water,/area/surface/outside/river/svartan)
+"an" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"ao" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/path/wilderness)
+"ap" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aq" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/path/wilderness)
+"ar" = (/turf/simulated/floor/wood,/area/surface/outside/path/wilderness)
+"as" = (/turf/simulated/wall/wood,/area/surface/outside/path/wilderness)
+"at" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal)
+"au" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/svartan)
+"av" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/svartan)
+"aw" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/svartan)
+"ax" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west/small,/turf/simulated/floor/water,/area/surface/outside/river/svartan)
+"ay" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"az" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"aA" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"aB" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east/small,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"aC" = (/obj/structure/showcase/sign{desc = "This appears to be a sign warning people that the other side is extremely hazardous."; icon_state = "wilderness2"; pixel_y = -5},/turf/simulated/wall/wood,/area/surface/outside/path/wilderness)
+"aD" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal)
+"aE" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"aF" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan)
+"aG" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aI" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/normal)
+"aJ" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/deep)
+"aK" = (/turf/simulated/floor/water,/area/surface/outside/ocean)
+"aL" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/ocean)
+"aM" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aN" = (/turf/simulated/floor/water/deep,/area/surface/outside/ocean)
+"aO" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aP" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/normal)
+"aQ" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/ocean)
+"aR" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/ocean)
+"aS" = (/turf/simulated/floor/wood{outdoors = 1},/area/surface/outside/path/wilderness)
+"aT" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle2/mining)
+"aU" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining)
+"aV" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/surface/outside/wilderness/normal)
+"aW" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness)
+"aX" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining)
+"aY" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle1/mining)
+"aZ" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"ba" = (/turf/simulated/wall/log_sif,/area/surface/outpost/shelter)
+"bb" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness)
+"bc" = (/obj/structure/simple_door/sifwood,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bd" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"be" = (/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bf" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bg" = (/obj/structure/table/steel,/obj/machinery/power/apc{dir = 8; locked = 0; name = "west bump"; operating = 0; pixel_x = -24},/obj/structure/cable,/obj/item/stack/material/phoron,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bh" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bi" = (/obj/structure/closet,/obj/random/maintenance/clean,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bj" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bk" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/mountains)
+"bl" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bm" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outside/path/wilderness)
+"bn" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outside/path/wilderness)
+"bo" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall/checkpoint)
+"bp" = (/obj/machinery/door/airlock/voidcraft{name = "Wilderness Containment"},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bq" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
+"br" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bs" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bt" = (/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outside/path/wilderness)
+"bu" = (/obj/effect/map_effect/portal/master/side_b/wilderness_to_caves{icon_state = "portal_side_b"; dir = 1},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bv" = (/obj/structure/closet/crate,/obj/random/powercell,/obj/item/weapon/tool/screwdriver,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bw" = (/obj/random/junk,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_dock_1"; name = "shuttle bay controller"; pixel_x = 0; pixel_y = -26; tag_door = "mining_dock_1_door"},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bx" = (/obj/item/weapon/banner/virgov,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"by" = (/obj/machinery/space_heater,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bz" = (/obj/machinery/space_heater,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_dock_2"; name = "shuttle bay controller"; pixel_x = 0; pixel_y = -26; tag_door = "mining_dock_2_door"},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter)
+"bA" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_2"; landmark_tag = "shuttle2_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining)
+"bB" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_1"; landmark_tag = "shuttle1_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining)
+"bC" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
+"bD" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/floor/water,/area/surface/outside/ocean)
+"bE" = (/obj/effect/map_effect/portal/master/side_b/wilderness_to_caves/river{icon_state = "portal_side_b"; dir = 1},/turf/simulated/floor/water,/area/surface/outside/ocean)
+"bF" = (/obj/effect/map_effect/perma_light/concentrated/incandescent,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaababaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacaeafaeaeaeafaeaeacacacacacacacacacacacacacacacacafaeaeaeafaeaeacacacacaeacacacacacacacacacaeaeaeaeaeaeaeaeaeacacacacaeaeafaeaeaeafaeaeacacacacacacacacacacacaeaeafafafafafaeaeacacacacacaeaeaeaeaeaeaeaeaeacacacacaeaeaeaeaeagaeacacacacacacacaeaeaeaeacacacacacacaeaeaeaeaeaeaeaeacacacacacacacacacacaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacadacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
-aaacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
-aaacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
-aaacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
-aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
-aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiaeaeaeaeaeaeaeaeahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeahahahaeahahahahahaiaiaeaiaiaiaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaeaeaeaeaeahahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahaiaiaiaiaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaiaiaeaeaeahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahaeaeaeahahahahahaeahahahaeaeaeaeahahahahaeaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaiaiahahahahaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaadadadagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagadadadadaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajajaeaeacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeajaeaeaeajajajacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajaeaeajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajaeaeaeajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeajajajajajajajajajajajajajacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajaeaeaeajajajajajajajajajajajajajajajajajajacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajaeaeajajajajajajajajajajajajajajajajajajajacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeaeaeajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeaeaeaeaeajaeaeaeaeajaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeajajajaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeajajaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeajaeaeaeaeaeaeaeajaeaeajajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeajaeaeaeajaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeajaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajagaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajakaeaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeakaeaeaeaeajajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeagaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeagaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeagaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeagaeajaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajagaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-aaacacahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-aaacacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-aaacacahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-alamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-alamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
-alanananananananamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-alanananananananananananananananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-alamamamamamamamananananananananananananananananamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-alamamamamamamamamamamamamamamamamananananananananananananamamamamamamamaeaeamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaoaoaoaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacapamamamamamamamamamamamamamamamamamamananananananananananananamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaoaqararasagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacapatatatatatatatatatamamamamamamamamamamamamamamamamamamanananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeauararavawamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajakaiajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacapapatatatatatatatatatatatatatatatamamamamamamamamamamamamamananananananananananananananananamamamamamamamamamamauaraxamawamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
-aaacacacapapatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamananananananananananananananananananananayaSaSazaAananananananananananamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacapapatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamanananananananananaBaSazaAanananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajakaiajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacapapatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamauararavaAanamamamamamamamanananananananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacapatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamauararavawamamamamamamamamamamananananananananananananamamamamamamamamamaeaeamamamaeaeaeaeamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamatasararaCaDamamamamamamamamamamamamananananananananananananananananamamamamamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoatataDatatatatatatatamamamamamamamamananananananananananananananananamamanananamamamamanananamamamamamamamamamamamamaeaeaeaeaeamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoaoataDatatatatatatatatatatamamamamamamamamamamamamamamamamamanananamamamamanananamamamanananananananananamamamamamamamamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoataDatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamanananananananamamamamamanananananananananamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoataDatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamatatamamamamamamamamamamamamamamamamamamamamamamanananananananananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamatatatatatatamamamamamamamamamamanananananananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajamamawasararasajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamanananamanananamamananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajamamamamamawauararavamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamananananamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajamamamamamamanananaAaEararavananamamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamananananananamamamamamamamamamaeaeaeaeaeaeaeajajaeajajajajajajajajajajamamamamamamamamananananaAaEararaFananananamamamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajaeajajajajajajajajajacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamanananananamamamamamamamamamaeaeaeaeaeaeaeajajajajajajajamamamamamamamamamananananananaAaEararaFanananananananamamamamamamamamamamajajajajajajajajajajajajajajajajajajajajajajajaeaeaeajajajajajaeaeaeacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamanananananamamamamamamamamamamamamamajajajamamamamamamamamamamamamananananamamanaAaEararaFananananananananananamamamamamamamamamajajajajajajajajajajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamananananamamamamamamamamamamamamamamamamamamamamamamamananananananamamamamawauararavamamamamamamanananananamananananamamamamamajajajajajajajajajajajajajajajajajajaeajaeaeaeaeaeaeajajaeacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamanananananamamamamamamamamamamamamamamananananananananamamamamamamamawauararavamamamamamamamamamamanananananananananamamamamajajajajajajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamanananananamamamamananananananananananananamamamamamamamamamaGaHaCararasaGaGaGaGaGaGamamamamamamamamananananananamamamamamamamamamajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamanananamamamanananananananamamamamamamamamamamamamaGaGaGaGaGaHaGaoaoaGaGaGaGaGaGaGaGaGamamamamamamamamamamanananananananamamamamamamajajajajajaeajajaeaeaeajajaeaeaeaeajaeacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamamamamamaGaGaGaGaGaGaGaGaGaHaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamananananananananamamamamamamajajajajaeaeaeaeaeajaeaeaeaeaeacacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamanananananananamamamamamamaeaeaeaeajaeaeaeaeaeaeaeaeacacacacacacacaa
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamanananananananamamamamaeaeaeaeaeaeaeaeaeaeaeacacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamanananananamamamamaeaeaeaeajaeaeaeaeajacacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamananananamamamaeaeaeaeajajaeaeaeajacacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananananamamamajaeaeaeaeaeaeaeahacacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamanananamamamajaeaeaeahaeahahahacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamananamamamaeahahahahahahahacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananamamamahaJaJaJahahahacacacacacacaa
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamananamamamaJaJaJahahacacacacaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananamamamaJaJaJahacacacaKaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamamamaJaJaJacaKaKaKaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapamamamamanamamamaJaJaKaKaKaKaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMamamanananamamamaKaKaKaKaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMamamananamamaKaKaKaKaKaKaKaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMamamananaKaKaKaKaKaKaKaKaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMamamaKaKaKaNaNaKaKaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMamaKaKaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaKaKaKaKaKaKaKaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaL
-aaadadadaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaHaHaHaDaDaHaHaHaHaHaDaDaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaOaOaOaPaPaPaPaQaQaQaQaQaQaQaQaRaRaRaRaRaRaRaRaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaL
-aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaVaVapapaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaVapaVaVaVaVapaVaVaVaVaVaVaVapaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVapapapaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaXaTaVaVaVaVaVaXaXaVaVaVaVaVaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVapaXaXaXaVaVaVaXaTaXaVaVaVaVaVaUaUaUaUaUaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVapaVaVaTaTaXaXaXaXaTaXaXaVaVapaVaYaYaUaUaUaYaYaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVapapaVaVaTaTaXaXaXaXaTaXaTaVaVaVaVaYaYaYaUaYaYaUaGaGaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatataGatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTbAaXaTaTaTaXaXaTaVaVaVaVaYaUaYaYaUaUaUaGaGaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaTaTaTaTaTaTaTaXaVaVaVaVaUaUaUaYaYaYaUaVaVapapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaXaTaTaTaTaXaXaXapaVaVaVaUaUaUaUaUaYaYaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaXaXaXaXaXaTaVaVaVaVaVaYaUaUaUaUaUaYaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaXaXaXaTaTaTaVaVaVaVaYaYaYaYaUaUaYaYaYaVaVapapaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaVaVapaVaVaXaXaTaXaXaTaTaVapapaVaUaUaYaYaYaYaYaUaUaVaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTaTaTaTaTaXaXaVaVapaVaUaUaUaYaYaYaYbBaUaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTaXaXaXaTaTaXaVaVaVaVaUaYaYaYaUaUaYaYaUaVaVapaVaVapaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaXaTaTaTaTaTaVaVaVaVaYaYaUaUaUaUaUaYaYaVaVaVapaVaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaTaTaTaTaVaVaVaVaVaYaUaUaVaVaVaUaUaUaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGataGaGaGataGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaWaWaWaVaVaVaVaVaVaVaVaYaUaVaWaVaVaVaUaUaVaVaVaVapapaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGataGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaWaVaVaVaVaVaVaVaVaVaVaVaVaVaVaWaWaVaVaVaVaVaVaVaVaVaVaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaVaVaVaVaVaVaVaVaVaVaVaVaVaVaWaWaWaVaVaVaVaVaVapapapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapapaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaVaWaVaWaWaWaWaWaWaWaWaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWapaMaMaWaWarararaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaWaWaWaWaWaWarararaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaGaGaGaGaGaWaWaWaWaWaWaWaWaWaGaGaGaWaWaWaWaGaGaGaGaGaGaGaGaGaGbaaZbabcbaaZbaaGaWaWaWaGaWaWaWaWaWaWaWaGaWaWaWaWaWaWaWaGaGaWaWaWaWaGaGaGaHaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabdbfbebebebaaGaGaGaGaGaGaGaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWbbaWaGaGaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
-aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabgbhbebebibaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaKaKaKaKaKaKaL
-aaacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabjbebebebvbaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaKaKaKaKaKaKaKaL
-aaacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabwbybxbebzbaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGataGaGaGaGaGaGaGacacacacacacacbkaWblblblaWbkacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbababababababaaGaGaGacacacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatacacacacadacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatacacacacacacacacacacacacacacacacacacbmblblblbnacacacacacacacacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaGaGaGadacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacacacacacacacacacaKaKaKacacacacaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatacacacacacacacacacacacacacacacacacacacacacacacacbobpbqbpboacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaKaKaKaKaKaKaKaKaKaKaKacacaKaL
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacbqblblblbqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaKaKaKaKaKaKaKacacacacacacaa
-aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacbqbrblbsbqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaKaKaKacacacacacacacacaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbtbtbtbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabububuaaaaaaaaaaaaaaaaaa
-"}
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaababaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacaeafaeaeaeafaeaeacacacacacacacacacacacacacacacacafaeaeaeafaeaeacacacacaeacacacacacacacacacaeaeaeaeaeaeaeaeaeacacacacaeaeafaeaeaeafaeaeacacacacacacacacacacacaeaeafafafafafaeaeacacacacacaeaeaeaeaeaeaeaeaeacacacacaeaeaeaeaeagaeacacacacacacacaeaeaeaeacacacacacacaeaeaeaeaeaeaeaeacacacacacacacacacacaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacadacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
+aaacacacacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
+aaacacacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
+aaacacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
+aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
+aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiaeaeaeaeaeaeaeaeahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeahahahaeahahahahahaiaiaeaiaiaiaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaeaeaeaeaeahahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahaiaiaiaiaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaiaiaeaeaeahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahaeaeaeahahahahahaeahahahaeaeaeaeahahahahaeaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeaiaiaiaiaiaiahahahahaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaiaiahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaadadadagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagagadadadadaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajajaeaeacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeajaeaeaeajajajacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajaeaeajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajaeaeaeajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeajajajajajajajajajajajajajacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajaeaeaeajajajajajajajajajajajajajajajajajajacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajaeaeajajajajajajajajajajajajajajajajajajajacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeaeaeajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaiaiaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeaeaeaeaeajaeaeaeaeajaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeajajajaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaiaiaeaeaeajajaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeajaeaeaeaeaeaeaeajaeaeajajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeaeaeaeaeagaeaeaeaiaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeajaeaeaeajaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeajaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajagaeaeaeaeaeaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajakaeaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeaeaeaeakaeaeaeaeajajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeaeagaeaeaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeaeagaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeagaeaeajajaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeagaeajaeaeaeajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagajajaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajagaeajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajagajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+aaacacahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+aaacacacahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+aaacacahahahaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+alamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+alamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacaa
+alanananananananamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+alanananananananananananananananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaiaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+alamamamamamamamananananananananananananananananamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+alamamamamamamamamamamamamamamamamananananananananananananamamamamamamamaeaeamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaoaoaoaeaeagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacapamamamamamamamamamamamamamamamamamamananananananananananananamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaoaqararasagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacapatatatatatatatatatamamamamamamamamamamamamamamamamamamanananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeauararavawamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajakaiajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacapapatatatatatatatatatatatatatatatamamamamamamamamamamamamamananananananananananananananananamamamamamamamamamamauaraxamawamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacaa
+aaacacacapapatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamananananananananananananananananananananayaSaSazaAananananananananananamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacapapatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamanananananananananaBaSazaAanananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajakaiajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacapapatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamauararavaAanamamamamamamamanananananananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajaeajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacapatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamauararavawamamamamamamamamamamananananananananananananamamamamamamamamamaeaeamamamaeaeaeaeamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamatasararaCaDamamamamamamamamamamamamananananananananananananananananamamamamamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoatataDatatatatatatatamamamamamamamamananananananananananananananananamamanananamamamamanananamamamamamamamamamamamamaeaeaeaeaeamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoaoataDatatatatatatatatatatamamamamamamamamamamamamamamamamamanananamamamamanananamamamanananananananananamamamamamamamamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajakajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoataDatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamamanananananananamamamamamanananananananananamamamamamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataoataDatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamatatamamamamamamamamamamamamamamamamamamamamamamanananananananananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajajajakajaoaoajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamatatatatatatamamamamamamamamamamanananananananananananananananamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajajajajamamawasararasajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamanananamanananamamananamamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeaeaeaeaeaeajajajajajajajajajajajajajajajajamamamamamawauararavamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamananananamamamamamamamamamamamamaeaeaeaeaeaeaeaeaeajajaeajajajajajajajajajajajajamamamamamamanananaAaEararavananamamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamananananananamamamamamamamamamaeaeaeaeaeaeaeajajaeajajajajajajajajajajamamamamamamamamananananaAaEararaFananananamamamamamamajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajajaeajajajajajajajajajacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamanananananamamamamamamamamamaeaeaeaeaeaeaeajajajajajajajamamamamamamamamamananananananaAaEararaFanananananananamamamamamamamamamamajajajajajajajajajajajajajajajajajajajajajajajaeaeaeajajajajajaeaeaeacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamanananananamamamamamamamamamamamamamajajajamamamamamamamamamamamamananananamamanaAaEararaFananananananananananamamamamamamamamamajajajajajajajajajajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeaeaeacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamananananamamamamamamamamamamamamamamamamamamamamamamamananananananamamamamawauararavamamamamamamanananananamananananamamamamamajajajajajajajajajajajajajajajajajajaeajaeaeaeaeaeaeajajaeacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamanananananamamamamamamamamamamamamamamananananananananamamamamamamamawauararavamamamamamamamamamamanananananananananamamamamajajajajajajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeaeacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamanananananamamamamananananananananananananamamamamamamamamamaGaHaCararasaGaGaGaGaGaGamamamamamamamamananananananamamamamamamamamamajajajajajajajajajajajaeaeaeaeaeaeaeaeaeaeacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamanananamamamanananananananamamamamamamamamamamamamaGaGaGaGaGaHaGaoaoaGaGaGaGaGaGaGaGaGamamamamamamamamamamanananananananamamamamamamajajajajajaeajajaeaeaeajajaeaeaeaeajaeacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamamamamamamamamamamaGaGaGaGaGaGaGaGaGaHaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamananananananananamamamamamamajajajajaeaeaeaeaeajaeaeaeaeaeacacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamamamamamamamamamamaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamanananananananamamamamamamaeaeaeaeajaeaeaeaeaeaeaeaeacacacacacacacaa
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatamamamamamamamaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamanananananananamamamamaeaeaeaeaeaeaeaeaeaeaeacacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaoaoaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamanananananamamamamaeaeaeaeajaeaeaeaeajacacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamananananamamamaeaeaeaeajajaeaeaeajacacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananananamamamajaeaeaeaeaeaeaeahacacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamanananamamamajaeaeaeahaeahahahacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamananamamamaeahahahahahahahacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananamamamahaJaJaJahahahacacacacacacaa
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamananamamamaJaJaJahahacacacacaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamananamamamaJaJaJahacacacaKaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGamamamamamamamamamaJaJaJacaKaKaKaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapamamamamanamamamaJaJaKaKaKaKaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaIaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMamamanananamamamaKaKaKaKaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMamamananamamaKaKaKaKaKaKaKaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMamamananaKaKaKaKaKaKaKaKaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMamamaKaKaKaNaNaKaKaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMamaKaKaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaKaKaKaKaKaKaKaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaL
+aaadadadaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaDaHaHaHaDaDaHaHaHaHaHaDaDaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaHaOaOaOaPaPaPaPaQaQaQaQaQaQaQaQaRaRaRaRaRaRaRaRaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaL
+aaacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaVaVapapaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaVapaVaVaVaVapaVaVaVaVaVaVaVapaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGataGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVapapapaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVapapaXaTaVaVaVaVaVaXaXaVaVaVaVaVaVaVaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVapaXaXaXaVaVaVaXaTaXaVaVaVaVaVaUaUaUaUaUaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVapaVaVaTaTaXaXaXaXaTaXaXaVaVapaVaYaYaUaUaUaYaYaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVapapaVaVaTaTaXaXaXaXaTaXaTaVaVaVaVaYaYaYaUaYaYaUaGaGaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatataGatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTbAaXaTaTaTaXaXaTaVaVaVaVaYaUaYaYaUaUaUaGaGaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGaGatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaTaTaTaTaTaTaTaXaVaVaVaVaUaUaUaYaYaYaUaVaVapapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaXaTaTaTaTaXaXaXapaVaVaVaUaUaUaUaUaYaYaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatatatatatatatatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaXaXaXaXaXaTaVaVaVaVaVaYaUaUaUaUaUaYaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaXaXaXaTaTaTaVaVaVaVaYaYaYaYaUaUaYaYaYaVaVapapaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatataGaGatatatataGaGaGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaVaVapaVaVaXaXaTaXaXaTaTaVapapaVaUaUaYaYaYaYaYaUaUaVaVaVaVapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTaTaTaTaTaXaXaVaVapaVaUaUaUaYaYaYaYbBaUaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaTaXaXaXaTaTaXaVaVaVaVaUaYaYaYaUaUaYaYaUaVaVapaVaVapaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaXaXaTaTaTaTaTaVaVaVaVaYaYaUaUaUaUaUaYaYaVaVaVapaVaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaVaTaTaTaTaTaVaVaVaVaVaYaUaUaVaVaVaUaUaUaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGataGaGataGaGaGataGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaWaWaWaVaVaVaVaVaVaVaVaYaUaVaWaVaVaVaUaUaVaVaVaVapapaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatatataGataGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaVaVaVaVaVaWaVaVaVaVaVaVaVaVaVaVaVaVaVaVaWaWaVaVaVaVaVaVaVaVaVaVaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaVaVaVaVaVaVaVaVaVaVaVaVaVaVaWaWaWaVaVaVaVaVaVapapapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapapapapaMaMaMaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGaGaGaGaGaGaGaGaGaGapaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaVaWaVaWaWaWaWaWaWaWaWaVaVaVaVaVaVaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWapaMaMaWaWarararaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaWaWaWaWaWaWarararaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGapapaGaGaGaGaGaWaWaWaWaWaWaWaWaWaGaGaGaWaWaWaWaGaGaGaGaGaGaGaGaGaGbaaZbabcbaaZbaaGaWaWaWaGaWaWaWaWaWaWaWaGaWaWaWaWaWaWaWaGaGaWaWaWaWaGaGaGaHaWaWaWaWaWaWaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabdbfbebebebaaGaGaGaGaGaGaGaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWbbaWaGaGaWaWaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaMaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaL
+aaacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGaGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWaWaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabgbhbebebibaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaNaNaNaKaKaKaKaKaKaL
+aaacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGapaWaWaWaWaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabjbebebebvbaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaKaKaNaNaNaNaNaNaNaKaKaKaKaKaKaKaL
+aaacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGatataGatataGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaWbmbmbmaWaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbabwbybxbebzbaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaMaMaMaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataDatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatataGaGatataGataGaGaGaGaGaGaGacacacacacacacbkbnblblblbtbkacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGbababababababaaGaGaGacacacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaHaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatacacacacadacacacacacacatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatatacacacacacacacacacacacacacacacacacacbobpbqbpboacacacacacacacacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaGaGaGadacacacacacacacacaGaGaGaGaGaGaGaGaGaGaGaGaGaGacacacacacacacacacacacacacacacacaKaKaKacacacacaKaKaKaKaKaKaKaKaKaKaKaKaKaKaKaL
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacatatatatatatatatatatatatatatatatatacacacacacacacacacacacacacacacacacacacacacacacacbqbrblbsbqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaKaKaKaKaKaKaKaKaKaKaKacacaKaL
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacbqblblblbqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaKaKaKaKaKaKaKacacacacacacaa
+aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacbqbubCbCbqacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacbEbDbDacacacacacacacacaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbFbFbFbqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaKaKaKacaaaaaaaaaaaaaaaa
+"}
+
diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm
index 81fd5ecd2c..8d11290989 100644
--- a/maps/southern_cross/southern_cross_defines.dm
+++ b/maps/southern_cross/southern_cross_defines.dm
@@ -93,8 +93,7 @@
Z_LEVEL_STATION_TWO,
Z_LEVEL_STATION_THREE,
Z_LEVEL_SURFACE,
- Z_LEVEL_SURFACE_MINE,
- Z_LEVEL_SURFACE_WILD
+ Z_LEVEL_SURFACE_MINE
)
// Commented out due to causing a lot of bugs. The base proc plus overmap achieves this functionality anyways.
@@ -188,13 +187,13 @@
/datum/map_z_level/southern_cross/surface
z = Z_LEVEL_SURFACE
name = "Plains"
- flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES
+ flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_z_level/southern_cross/surface_mine
z = Z_LEVEL_SURFACE_MINE
name = "Mountains"
- flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES
+ flags = MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONSOLES
base_turf = /turf/simulated/floor/outdoors/rocks
/datum/map_z_level/southern_cross/surface_wild
@@ -291,6 +290,31 @@
teleport_z = src.z
return ..()
+/obj/effect/map_effect/portal/master/side_a/plains_to_caves
+ portal_id = "plains_caves-normal"
+
+/obj/effect/map_effect/portal/master/side_b/caves_to_plains
+ portal_id = "plains_caves-normal"
+
+/obj/effect/map_effect/portal/master/side_a/plains_to_caves/river
+ portal_id = "plains_caves-river"
+
+/obj/effect/map_effect/portal/master/side_b/caves_to_plains/river
+ portal_id = "plains_caves-river"
+
+
+/obj/effect/map_effect/portal/master/side_a/caves_to_wilderness
+ portal_id = "caves_wilderness-normal"
+
+/obj/effect/map_effect/portal/master/side_b/wilderness_to_caves
+ portal_id = "caves_wilderness-normal"
+
+/obj/effect/map_effect/portal/master/side_a/caves_to_wilderness/river
+ portal_id = "caves_wilderness-river"
+
+/obj/effect/map_effect/portal/master/side_b/wilderness_to_caves/river
+ portal_id = "caves_wilderness-river"
+
//Suit Storage Units
/obj/machinery/suit_cycler/exploration
diff --git a/maps/submaps/surface_submaps/mountains/mountains.dm b/maps/submaps/surface_submaps/mountains/mountains.dm
index c6a7a2f684..e36bb1a5ba 100644
--- a/maps/submaps/surface_submaps/mountains/mountains.dm
+++ b/maps/submaps/surface_submaps/mountains/mountains.dm
@@ -39,6 +39,7 @@
#include "Geyser3.dmm"
#include "Cliff1.dmm"
#include "excavation1.dmm"
+#include "spatial_anomaly.dmm"
#endif
// The 'mountains' is the mining z-level, and has a lot of caves.
@@ -347,3 +348,10 @@
desc = "An abandoned mining site."
mappath = 'maps/submaps/surface_submaps/mountains/excavation1.dmm'
cost = 20
+
+/datum/map_template/surface/mountains/deep/spatial_anomaly
+ name = "spatial anomaly"
+ desc = "A strange section of the caves that seems twist and turn in ways that shouldn't be physically possible."
+ mappath = 'maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm'
+ cost = 20
+ fixed_orientation = TRUE
diff --git a/maps/submaps/surface_submaps/mountains/mountains_areas.dm b/maps/submaps/surface_submaps/mountains/mountains_areas.dm
index a6968fac98..04c8568513 100644
--- a/maps/submaps/surface_submaps/mountains/mountains_areas.dm
+++ b/maps/submaps/surface_submaps/mountains/mountains_areas.dm
@@ -139,3 +139,7 @@
/area/submap/Excavation
name = "POI - Excavation Site"
ambience = AMBIENCE_FOREBODING
+
+/area/submap/spatial_anomaly
+ name = "POI - Spatial Anomaly"
+ ambience = AMBIENCE_FOREBODING
diff --git a/maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm b/maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm
new file mode 100644
index 0000000000..3f05b9ef41
--- /dev/null
+++ b/maps/submaps/surface_submaps/mountains/spatial_anomaly.dmm
@@ -0,0 +1,82 @@
+"a" = (/turf/simulated/wall/solidrock,/area/submap/spatial_anomaly)
+"b" = (/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"c" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"d" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_5"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"e" = (/obj/structure/barricade,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"f" = (/turf/template_noop,/area/template_noop)
+"g" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"h" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 4},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"i" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 8},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"j" = (/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
+"k" = (/obj/item/weapon/disposable_teleporter/slime,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"l" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"m" = (/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"n" = (/obj/effect/map_effect/portal/master/side_a{dir = 4; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"o" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_4"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"p" = (/obj/effect/map_effect/portal/master/side_b{dir = 8; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_3"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"q" = (/obj/effect/map_effect/portal/master/side_b{portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"r" = (/obj/effect/map_effect/portal/line/side_b,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"s" = (/obj/machinery/crystal/lava,/turf/simulated/floor/lava,/area/submap/spatial_anomaly)
+"t" = (/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"u" = (/obj/effect/map_effect/portal/master/side_a{portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"v" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"w" = (/obj/structure/table/steel_reinforced,/obj/item/device/xenoarch_multi_tool,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"x" = (/turf/simulated/wall/solidrock,/area/template_noop)
+"y" = (/obj/random/technology_scanner,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"z" = (/obj/structure/table/steel_reinforced,/obj/random/unidentified_medicine/scientific,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"A" = (/obj/structure/table/steel_reinforced,/obj/random/tool/power,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"B" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/ore/diamond,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"C" = (/obj/structure/sign/warning/lava,/turf/simulated/wall,/area/submap/spatial_anomaly)
+"D" = (/obj/effect/map_effect/portal/line/side_a,/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"E" = (/obj/structure/table/rack,/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"F" = (/obj/effect/map_effect/portal/master/side_a{dir = 1; icon_state = "portal_side_a"; portal_id = "spatial_anomaly_2"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"G" = (/obj/effect/map_effect/portal/line/side_a{icon_state = "portal_line_side_a"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"H" = (/turf/unsimulated/wall,/area/template_noop)
+"I" = (/obj/effect/map_effect/portal/master/side_b{dir = 1; icon_state = "portal_side_b"; portal_id = "spatial_anomaly_1"},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"J" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/obj/effect/map_effect/perma_light/brighter{light_color = "#ff00ff"},/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"K" = (/obj/item/weapon/mining_scanner,/obj/structure/table/rack,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"L" = (/obj/item/weapon/storage/belt/archaeology,/obj/effect/decal/remains/human,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"M" = (/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"N" = (/obj/item/weapon/pickaxe/brush,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"O" = (/obj/item/weapon/pickaxe/one_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"P" = (/obj/item/weapon/pickaxe/four_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"Q" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+"R" = (/obj/item/weapon/pickaxe/five_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"S" = (/obj/item/weapon/pickaxe/six_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"T" = (/obj/item/weapon/pickaxe/two_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"U" = (/obj/item/device/measuring_tape,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"X" = (/obj/item/weapon/pickaxe/three_pick,/turf/simulated/floor/outdoors/rocks/caves,/area/submap/spatial_anomaly)
+"Y" = (/obj/item/weapon/pickaxe/excavationdrill,/turf/simulated/floor/plating/external,/area/submap/spatial_anomaly)
+
+(1,1,1) = {"
+ffffffffffffffffffffffffffffff
+fffffffffffffxxxxxxfffffffffff
+fffffxxxxxxxxaaaaaaxxxxxffffff
+ffffxaaaaaaaaaaaaaaaaaaaxfffff
+ffffaataatcbbbbjjjsjkbdtaxffff
+fffxaagaathbbbbbjjjjbbitaaffff
+fffaaabaaaaaabCbbsaaaaaaaaffff
+fffaaaObaaaabbNbbaaaaaaaaaxfff
+ffxaaabbblbbbybbaabPbbblaaafff
+ffaaaaaaaaabbbtmaabbaaabaaafff
+ffaaaaaaaaatttttaabaaaabaaafff
+ffaalbbbbbaatvtQaalaaaabaaafff
+ffaabaaaabaaBwzAaabaaaabaaffff
+ffaabaaaabaaaaaaaabatnbbaaHHHf
+ffxabaaaaoaaaaaaabbaaaaaaaffHf
+ffxabaaaataatttaabbaaaaaaaffHf
+ffxabRbptaaaqrraabSaatttaaHHaf
+ffxaaaaaaaaabbbaabbaauDDablbaf
+fffaaaaaaaaabbbaablaabbbaeeaaf
+fffaaaalbbbabbbaabbaabbbblbaaf
+ffffaabbaabababbbbbaaUbbbEKaff
+ffffaaTbbabXbabbLbYaabbbaaaaff
+ffffaabbbabbbabbmttaaFGGaaafff
+ffffaaIJJablbabtttMaatttaaffff
+fffffatttaaaaaaaaaaaaaaaafffff
+fffffaaaaaaaaaaaaaaaaaaaffffff
+fffffaaaaffaaaaaaaafffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff
+"}
diff --git a/maps/tether/submaps/offmap/talon.dm b/maps/tether/submaps/offmap/talon.dm
index 722cd150a5..b05b7ec13a 100644
--- a/maps/tether/submaps/offmap/talon.dm
+++ b/maps/tether/submaps/offmap/talon.dm
@@ -28,6 +28,10 @@ var/global/list/latejoin_talon = list()
on_store_visible_message_1 = "hums and hisses as it moves"
on_store_visible_message_2 = "into cryogenic storage."
+/obj/machinery/cryopod/robot/talon
+ announce_channel = "Talon"
+ on_store_name = "ITV Talon Robotic Storage"
+
/obj/effect/landmark/map_data/talon
height = 2
diff --git a/maps/tether/submaps/offmap/talon2.dmm b/maps/tether/submaps/offmap/talon2.dmm
index 57d8210a13..9f30e789f9 100644
--- a/maps/tether/submaps/offmap/talon2.dmm
+++ b/maps/tether/submaps/offmap/talon2.dmm
@@ -3856,6 +3856,10 @@
},
/turf/simulated/floor/hull/airless,
/area/talon/maintenance/decktwo_solars)
+"Os" = (
+/obj/machinery/cryopod/robot/talon,
+/turf/simulated/floor/tiled/eris/white/gray_platform,
+/area/talon/decktwo/central_hallway)
"Ou" = (
/obj/structure/cable/heavyduty{
dir = 2;
@@ -15544,7 +15548,7 @@ at
at
at
cc
-jy
+Os
jy
hu
yd
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index b6c99c7b06..d880eb2c64 100644
--- a/maps/tether/tether-01-surface1.dmm
+++ b/maps/tether/tether-01-surface1.dmm
@@ -5441,6 +5441,36 @@
dir = 1
},
/area/tether/surfacebase/surface_one_hall)
+"ajb" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
+/obj/structure/catwalk,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance/common{
+ name = "Mining Maintenance Access";
+ req_one_access = list(48)
+ },
+/turf/simulated/floor/plating,
+/area/tether/surfacebase/cargo/mining)
+"ajc" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/visible/supply{
+ dir = 8
+ },
+/obj/machinery/door/airlock/maintenance/common{
+ req_one_access = newlist()
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/lower/mining_eva)
"ajd" = (
/obj/structure/cable/green{
d1 = 1;
@@ -5556,6 +5586,9 @@
},
/turf/simulated/floor/tiled,
/area/engineering/atmos)
+"ajl" = (
+/turf/simulated/wall/r_wall,
+/area/crew_quarters/sleep/Dorm_7)
"ajm" = (
/obj/machinery/vending/tool{
dir = 1;
@@ -7969,6 +8002,15 @@
},
/turf/simulated/floor/tiled,
/area/storage/primary)
+"anm" = (
+/turf/simulated/wall/r_wall,
+/area/crew_quarters/sleep/Dorm_5)
+"ann" = (
+/turf/simulated/wall/r_wall,
+/area/crew_quarters/sleep/Dorm_3)
+"ano" = (
+/turf/simulated/wall/r_wall,
+/area/tether/surfacebase/outside/outside1)
"anp" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -8160,6 +8202,9 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_one_hall)
+"anE" = (
+/turf/simulated/wall/r_wall,
+/area/crew_quarters/sleep/Dorm_1)
"anF" = (
/obj/machinery/door/airlock/maintenance/cargo{
name = "Mining Maintenance Access";
@@ -28229,17 +28274,6 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_one_hall)
-"crC" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
- dir = 4
- },
-/obj/machinery/door/airlock/maintenance/common,
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/atmospherics/pipe/simple/visible/supply{
- dir = 8
- },
-/turf/simulated/floor/plating,
-/area/maintenance/lower/mining_eva)
"csb" = (
/obj/structure/railing{
dir = 4
@@ -29975,22 +30009,6 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_one_hall)
-"qIr" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
-/obj/structure/catwalk,
-/obj/structure/cable{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/maintenance/common{
- name = "Mining Maintenance Access"
- },
-/turf/simulated/floor/plating,
-/area/tether/surfacebase/cargo/mining)
"qKn" = (
/obj/effect/floor_decal/steeldecal/steel_decals_central1{
dir = 8
@@ -36400,33 +36418,33 @@ aad
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
@@ -36542,33 +36560,33 @@ aad
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
@@ -36684,33 +36702,33 @@ aad
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
-adK
-adK
-adK
+ano
+ano
+ano
aad
aad
aad
@@ -41592,7 +41610,7 @@ aar
aar
aar
abT
-crC
+ajc
abT
agd
acC
@@ -41732,7 +41750,7 @@ aaG
aaM
aaP
aaY
-qIr
+ajb
ecq
nDD
jPk
@@ -43915,21 +43933,21 @@ aJc
agM
agM
aLg
-aLg
-aLg
-aLg
-aLg
-aOj
-aOj
-aOj
-aOj
-aQb
-aQb
-aQb
-aQb
-aSi
-aSi
-aSi
+ajl
+ajl
+ajl
+ajl
+anm
+anm
+anm
+anm
+ann
+ann
+ann
+ann
+anE
+anE
+anE
aSi
aUe
aUH
@@ -46266,7 +46284,7 @@ aad
aad
aad
aad
-aad
+aah
aah
aah
aah
@@ -46408,8 +46426,8 @@ aad
aad
aad
aad
-aad
-aad
+aah
+aah
aah
aah
aah
@@ -46550,8 +46568,8 @@ aad
aad
aad
aad
-aad
-aad
+aah
+aah
aah
aah
aah
@@ -46692,7 +46710,7 @@ aad
aad
aad
aad
-aad
+aah
aah
aah
aah
@@ -46834,7 +46852,7 @@ aad
aad
aad
aad
-aad
+aah
aah
aah
aah
@@ -47258,7 +47276,6 @@ aad
aad
aad
aad
-aad
aah
aah
aah
@@ -47273,12 +47290,13 @@ aah
aah
aah
aah
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aah
aah
aah
@@ -47400,8 +47418,6 @@ aad
aad
aad
aad
-aad
-aad
aah
aah
aah
@@ -47415,20 +47431,22 @@ aah
aah
aah
aah
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aah
aah
aah
@@ -47542,8 +47560,14 @@ aad
aad
aad
aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aah
aah
aah
@@ -47558,19 +47582,8 @@ aah
aah
aah
aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
aad
aad
aah
@@ -47579,7 +47592,12 @@ aah
aah
aah
aah
-aad
+aah
+aah
+aah
+aah
+aah
+baU
aty
aub
aub
@@ -47684,8 +47702,20 @@ aad
aad
aad
aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aah
aah
aah
@@ -47699,29 +47729,17 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
aah
aah
aah
aah
aah
aah
-aad
+aah
+aah
+aah
+aah
+baU
atz
auc
auc
@@ -47826,6 +47844,22 @@ aad
aad
aad
aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aad
aad
aad
@@ -47839,29 +47873,13 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aad
aad
atz
@@ -47969,6 +47987,20 @@ ajK
aad
aad
aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aad
aad
aad
@@ -47985,23 +48017,9 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
aad
aad
aad
@@ -48113,16 +48131,16 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
+aah
aad
aad
aad
@@ -48256,12 +48274,12 @@ aad
aad
aad
aad
-aad
-aad
-aad
-aad
-aad
-aad
+aah
+aah
+aah
+aah
+aah
+aah
aad
aad
aad
diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm
index 2f7070f079..0576e2644c 100644
--- a/maps/tether/tether-02-surface2.dmm
+++ b/maps/tether/tether-02-surface2.dmm
@@ -190,17 +190,28 @@
/area/maintenance/substation/medsec)
"aay" = (
/obj/effect/floor_decal/borderfloorwhite{
- dir = 5
+ dir = 9
},
/obj/effect/floor_decal/corner/white/border{
- dir = 5
+ dir = 9;
+ icon_state = "bordercolor"
+ },
+/obj/effect/floor_decal/borderfloorwhite/corner2{
+ dir = 10
+ },
+/obj/effect/floor_decal/corner/white/bordercorner2{
+ dir = 10
},
/obj/structure/table/standard,
-/obj/item/device/defib_kit/loaded,
-/obj/machinery/light{
- dir = 4;
- icon_state = "tube1"
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/machinery/light_switch{
+ dir = 2;
+ name = "light switch ";
+ on = 0;
+ pixel_x = 0;
+ pixel_y = 26
},
+/obj/item/stack/nanopaste,
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/surgery)
"aaz" = (
@@ -228,7 +239,6 @@
icon_state = "bordercolorcorner2"
},
/obj/structure/table/standard,
-/obj/item/stack/nanopaste,
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/structure/extinguisher_cabinet{
pixel_y = 30
@@ -251,26 +261,22 @@
/area/tether/surfacebase/medical/surgery)
"aaD" = (
/obj/effect/floor_decal/borderfloorwhite{
- dir = 9
+ dir = 5
},
/obj/effect/floor_decal/corner/white/border{
- dir = 9;
- icon_state = "bordercolor"
- },
-/obj/effect/floor_decal/borderfloorwhite/corner2{
- dir = 10
- },
-/obj/effect/floor_decal/corner/white/bordercorner2{
- dir = 10
+ dir = 5
},
/obj/structure/table/standard,
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/machinery/light_switch{
- dir = 2;
- name = "light switch ";
- on = 0;
- pixel_x = 0;
- pixel_y = 26
+/obj/item/device/defib_kit/loaded,
+/obj/machinery/light{
+ dir = 4;
+ icon_state = "tube1"
+ },
+/obj/item/weapon/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back.";
+ name = "Surgery Cleaner";
+ pixel_x = 2;
+ pixel_y = 2
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/surgery)
@@ -502,6 +508,12 @@
dir = 6
},
/obj/structure/curtain/open/shower/medical,
+/obj/machinery/shower{
+ dir = 4;
+ icon_state = "shower";
+ pixel_x = 2;
+ pixel_y = 0
+ },
/turf/simulated/floor/tiled/dark,
/area/tether/surfacebase/medical/resleeving)
"aaX" = (
@@ -1925,6 +1937,24 @@
},
/turf/simulated/floor/plating,
/area/maintenance/lower/mining)
+"aea" = (
+/turf/simulated/mineral/floor/virgo3b,
+/area/tether/surfacebase/outside/outside2)
+"aeb" = (
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/item/device/radio/intercom/department/medbay{
+ dir = 8;
+ pixel_x = -24
+ },
+/obj/item/weapon/storage/firstaid/surgery,
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/surgery)
"aec" = (
/obj/structure/catwalk,
/obj/structure/cable{
@@ -2026,6 +2056,21 @@
},
/turf/simulated/floor/plating,
/area/maintenance/lower/north)
+"aem" = (
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 8
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 8
+ },
+/obj/structure/table/standard,
+/obj/item/device/radio/intercom{
+ dir = 8;
+ pixel_x = -24
+ },
+/obj/item/device/healthanalyzer,
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/surgery)
"aen" = (
/obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{
scrub_id = "atrium"
@@ -2057,6 +2102,40 @@
/obj/effect/floor_decal/rust,
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/mining)
+"aer" = (
+/obj/structure/table/rack,
+/obj/machinery/light,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/item/clothing/suit/space/void/medical/emt,
+/obj/item/clothing/suit/space/void/medical/emt,
+/obj/item/clothing/head/helmet/space/void/medical/emt,
+/obj/item/clothing/head/helmet/space/void/medical/emt,
+/obj/item/clothing/shoes/magboots,
+/obj/item/clothing/shoes/magboots,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/paramed)
+"aes" = (
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/paleblue/border{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
+/obj/structure/table/rack,
+/obj/item/weapon/storage/belt/medical,
+/obj/item/weapon/storage/belt/medical,
+/obj/item/weapon/storage/belt/medical,
+/obj/item/weapon/storage/belt/medical,
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/storage)
"aet" = (
/obj/structure/railing{
dir = 1
@@ -2182,11 +2261,84 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled/techfloor/grid,
/area/maintenance/lower/north)
+"aeI" = (
+/obj/machinery/door/window/eastleft{
+ dir = 8;
+ icon_state = "left";
+ name = "Janitorial Desk"
+ },
+/obj/machinery/door/window/eastleft{
+ dir = 4;
+ icon_state = "left";
+ name = "Janitorial Desk";
+ req_access = list(26)
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/door/blast/shutters{
+ dir = 2;
+ id = "janitor_blast";
+ layer = 3.3;
+ name = "Janitorial Shutters"
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/simulated/floor/tiled,
+/area/janitor)
+"aeJ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 25;
+ pixel_y = 0
+ },
+/obj/effect/floor_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/purple/border{
+ dir = 4
+ },
+/obj/structure/table/steel,
+/obj/item/weapon/grenade/chem_grenade/cleaner,
+/obj/item/weapon/grenade/chem_grenade/cleaner,
+/obj/item/weapon/grenade/chem_grenade/cleaner,
+/obj/item/weapon/grenade/chem_grenade/cleaner,
+/obj/item/weapon/storage/box/mousetraps,
+/obj/item/weapon/storage/box/lights/mixed,
+/obj/item/weapon/storage/box/lights/mixed,
+/obj/item/weapon/reagent_containers/spray/cleaner,
+/obj/item/weapon/reagent_containers/spray/cleaner,
+/obj/item/weapon/reagent_containers/spray/cleaner,
+/turf/simulated/floor/tiled,
+/area/janitor)
"aeK" = (
/obj/structure/grille,
/obj/structure/railing,
/turf/simulated/floor/tiled/techmaint,
/area/tether/surfacebase/surface_two_hall)
+"aeL" = (
+/obj/structure/catwalk,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 1;
+ icon_state = "bulb1"
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/lower/bar)
+"aeM" = (
+/obj/effect/floor_decal/borderfloorwhite,
+/obj/effect/floor_decal/corner/paleblue/border,
+/obj/item/weapon/storage/toolbox/mechanical,
+/obj/item/device/multitool,
+/obj/item/device/multitool,
+/obj/structure/table/rack,
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/storage)
"aeN" = (
/obj/effect/floor_decal/rust,
/obj/effect/decal/cleanable/dirt,
@@ -2300,6 +2452,33 @@
},
/turf/simulated/floor/tiled/techmaint,
/area/tether/surfacebase/surface_two_hall)
+"afb" = (
+/obj/effect/floor_decal/borderfloorwhite,
+/obj/effect/floor_decal/corner/paleblue/border,
+/obj/machinery/power/apc{
+ dir = 2;
+ name = "south bump";
+ pixel_y = -28;
+ req_access = list(67)
+ },
+/obj/structure/cable/green,
+/obj/structure/table/rack,
+/obj/item/device/gps/medical{
+ pixel_y = 3
+ },
+/obj/item/device/gps/medical{
+ pixel_x = -3
+ },
+/obj/item/device/radio{
+ pixel_x = 2;
+ pixel_y = 0
+ },
+/obj/item/device/radio{
+ pixel_x = -1;
+ pixel_y = -3
+ },
+/turf/simulated/floor/tiled/white,
+/area/tether/surfacebase/medical/storage)
"afd" = (
/obj/machinery/atmospherics/pipe/simple/hidden/green{
dir = 4;
@@ -13476,27 +13655,6 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled/techmaint,
/area/tether/surfacebase/east_stairs_two)
-"azK" = (
-/obj/machinery/door/window/eastleft{
- dir = 8;
- icon_state = "left";
- name = "Janitorial Desk"
- },
-/obj/machinery/door/window/eastleft{
- dir = 4;
- icon_state = "left";
- name = "Janitorial Desk"
- },
-/obj/structure/table/reinforced,
-/obj/machinery/door/blast/shutters{
- dir = 2;
- id = "janitor_blast";
- layer = 3.3;
- name = "Janitorial Shutters"
- },
-/obj/machinery/door/firedoor/border_only,
-/turf/simulated/floor/tiled,
-/area/janitor)
"azL" = (
/obj/effect/floor_decal/borderfloor{
dir = 8
@@ -14337,36 +14495,6 @@
},
/turf/simulated/floor/tiled,
/area/janitor)
-"aBn" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 9
- },
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = 25;
- pixel_y = 0
- },
-/obj/effect/floor_decal/borderfloor{
- dir = 4
- },
-/obj/effect/floor_decal/corner/purple/border{
- dir = 4
- },
-/obj/structure/table/steel,
-/obj/item/weapon/grenade/chem_grenade/cleaner,
-/obj/item/weapon/grenade/chem_grenade/cleaner,
-/obj/item/weapon/grenade/chem_grenade/cleaner,
-/obj/item/weapon/grenade/chem_grenade/cleaner,
-/obj/item/weapon/storage/box/mousetraps,
-/obj/item/weapon/storage/box/lights/mixed,
-/obj/item/weapon/storage/box/lights/mixed,
-/obj/item/weapon/reagent_containers/spray/cleaner,
-/obj/item/weapon/reagent_containers/spray/cleaner,
-/turf/simulated/floor/tiled,
-/area/janitor)
"aBo" = (
/obj/machinery/door/airlock/multi_tile/metal/mait,
/obj/machinery/door/firedoor/glass,
@@ -21467,20 +21595,6 @@
/obj/machinery/light/small,
/turf/simulated/floor/tiled/techfloor,
/area/tether/surfacebase/medical/lowerhall)
-"aPD" = (
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 8
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 8
- },
-/obj/structure/table/standard,
-/obj/item/device/radio/intercom/department/medbay{
- dir = 8;
- pixel_x = -24
- },
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/surgery)
"aPE" = (
/obj/effect/floor_decal/industrial/loading{
dir = 4
@@ -21776,20 +21890,6 @@
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/lowerhall)
-"aQe" = (
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 8
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 8
- },
-/obj/structure/table/standard,
-/obj/item/device/radio/intercom{
- dir = 8;
- pixel_x = -24
- },
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/surgery)
"aQf" = (
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 4
@@ -21964,18 +22064,6 @@
},
/turf/simulated/floor/tiled/dark,
/area/chapel/main)
-"aQv" = (
-/obj/structure/table/rack,
-/obj/item/clothing/suit/space/void/medical/emt,
-/obj/item/clothing/head/helmet/space/void/medical/emt,
-/obj/item/clothing/shoes/magboots,
-/obj/item/clothing/mask/breath,
-/obj/machinery/light,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/paramed)
"aQw" = (
/obj/structure/extinguisher_cabinet{
dir = 1;
@@ -22310,22 +22398,6 @@
/obj/machinery/vitals_monitor,
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/storage)
-"aQR" = (
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 4
- },
-/obj/effect/floor_decal/corner/paleblue/border{
- dir = 4
- },
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = 24
- },
-/obj/structure/table/rack,
-/obj/item/weapon/storage/belt/medical,
-/obj/item/weapon/storage/belt/medical,
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/storage)
"aQS" = (
/obj/structure/table/glass,
/obj/item/weapon/book/manual/resleeving,
@@ -23451,23 +23523,6 @@
},
/turf/simulated/floor/tiled/white,
/area/tether/surfacebase/medical/storage)
-"aSB" = (
-/obj/effect/floor_decal/borderfloorwhite,
-/obj/effect/floor_decal/corner/paleblue/border,
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/storage)
-"aSC" = (
-/obj/effect/floor_decal/borderfloorwhite,
-/obj/effect/floor_decal/corner/paleblue/border,
-/obj/machinery/power/apc{
- dir = 2;
- name = "south bump";
- pixel_y = -28;
- req_access = list(67)
- },
-/obj/structure/cable/green,
-/turf/simulated/floor/tiled/white,
-/area/tether/surfacebase/medical/storage)
"aSD" = (
/obj/effect/floor_decal/borderfloorwhite,
/obj/effect/floor_decal/corner/paleblue/border,
@@ -35058,9 +35113,9 @@ aab
aab
aab
aab
-acD
-acD
-acD
+aaS
+aaS
+aaS
aab
aab
aab
@@ -35200,9 +35255,9 @@ aab
aab
aab
aab
-acD
-acD
-acD
+aaS
+aaS
+aaS
aab
aab
aab
@@ -35342,9 +35397,9 @@ aab
aab
aab
aab
-acD
-acD
-acD
+aaS
+aaS
+aaS
aab
aab
aab
@@ -41377,7 +41432,7 @@ aab
aac
aNz
ayf
-aQv
+aer
aan
aaz
aan
@@ -42937,8 +42992,8 @@ aab
aab
aag
aav
-aPD
-aQe
+aeb
+aem
aQE
aQV
aRu
@@ -43279,7 +43334,7 @@ arl
axB
axB
axB
-azK
+aeI
axB
aBj
axB
@@ -43362,7 +43417,7 @@ aab
aab
aab
aag
-aaD
+aay
aPG
aQh
aQH
@@ -43504,7 +43559,7 @@ aab
aab
aab
aag
-aay
+aaD
aPH
aQi
aQI
@@ -43849,7 +43904,7 @@ ayl
ayU
azN
aAG
-aBn
+aeJ
aBU
axB
aac
@@ -43928,7 +43983,7 @@ aab
aab
aab
aab
-aac
+aab
aah
aaH
aQK
@@ -44656,7 +44711,7 @@ abT
aad
acz
adu
-adL
+aeL
aec
aew
aeP
@@ -45358,7 +45413,7 @@ aRi
aRz
aRT
aSm
-aSB
+aeM
aad
abl
abx
@@ -45500,7 +45555,7 @@ aRj
aRA
aQs
aSn
-aSC
+afb
aad
abm
aby
@@ -45921,7 +45976,7 @@ aac
aKv
aPV
aQt
-aQR
+aes
aRl
aRC
ahi
@@ -46209,6 +46264,8 @@ aac
aac
aac
aac
+aea
+aea
aac
aac
aac
@@ -46219,13 +46276,11 @@ aac
aac
aac
aac
+aab
aac
aac
-aac
-aac
-aac
-aac
-aac
+aab
+aab
aac
aac
aac
@@ -46350,10 +46405,10 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
+aea
+aea
+aea
+aea
aac
aac
aac
@@ -46369,8 +46424,8 @@ aab
aab
aab
aab
-aab
-aab
+aac
+aac
aac
aac
aac
@@ -46492,10 +46547,10 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
+apq
+aea
+aea
+aea
aac
aac
aac
@@ -46633,10 +46688,10 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
+apq
+apq
+apq
+apq
aac
aac
aac
@@ -46660,10 +46715,10 @@ aab
aac
aac
aac
-aac
-aac
-aac
-aac
+aab
+aab
+aab
+aab
ajM
ajM
aUa
@@ -46799,13 +46854,13 @@ aab
aab
aab
aab
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+aab
+aab
+aab
+aab
+aab
+aab
+aab
ajM
ajM
ajM
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index bb3d6a7e1d..2666ca859e 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -1572,7 +1572,7 @@
/obj/machinery/door/firedoor/glass,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled,
+/turf/simulated/floor/wood,
/area/tether/surfacebase/reading_room)
"acV" = (
/turf/simulated/floor/tiled,
@@ -2543,14 +2543,14 @@
/obj/machinery/door/window/brigdoor/southright{
dir = 4;
icon_state = "rightsecure";
- req_access = list(55);
- req_one_access = list(47)
+ req_access = list(77);
+ req_one_access = newlist()
},
/obj/machinery/door/window/brigdoor/southright{
dir = 8;
icon_state = "rightsecure";
- req_access = list(55);
- req_one_access = list(47)
+ req_access = list(77);
+ req_one_access = newlist()
},
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled,
@@ -3347,9 +3347,15 @@
/turf/simulated/floor/tiled/techfloor/grid,
/area/maintenance/lower/medsec_maintenance)
"afX" = (
-/obj/structure/railing,
-/turf/simulated/floor/outdoors/grass/sif/virgo3b,
-/area/tether/surfacebase/outside/outside3)
+/obj/machinery/door/airlock{
+ id_tag = "ReadingRoom2";
+ name = "Room 2"
+ },
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/wood,
+/area/tether/surfacebase/reading_room)
"afY" = (
/obj/machinery/atmospherics/pipe/manifold/visible,
/obj/machinery/meter,
@@ -3598,8 +3604,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/door/airlock/glass_research{
name = "Xenoflora Research";
- req_access = newlist();
- req_one_access = list(77,30)
+ req_one_access = list(77)
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora_storage)
@@ -4271,9 +4276,15 @@
/turf/simulated/floor/tiled,
/area/tether/surfacebase/security/frontdesk)
"ahz" = (
-/obj/structure/catwalk,
-/turf/simulated/floor/outdoors/grass/sif/virgo3b,
-/area/tether/surfacebase/outside/outside3)
+/obj/machinery/door/airlock{
+ id_tag = "ReadingRoom3";
+ name = "Room 3"
+ },
+/obj/machinery/door/firedoor/glass,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/wood,
+/area/tether/surfacebase/reading_room)
"ahA" = (
/obj/structure/cable/green{
d1 = 2;
@@ -5288,8 +5299,8 @@
/area/maintenance/lower/medsec_maintenance)
"aiZ" = (
/obj/machinery/door/window/brigdoor/southright{
- req_access = list(55);
- req_one_access = list(47)
+ req_access = list(77);
+ req_one_access = newlist()
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora_storage)
@@ -6800,8 +6811,7 @@
},
/obj/machinery/door/airlock/glass_research{
name = "Xenoflora Research";
- req_access = newlist();
- req_one_access = list(77,30)
+ req_one_access = list(77)
},
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/steel_grid,
@@ -7830,16 +7840,10 @@
/turf/simulated/floor/tiled,
/area/crew_quarters/pool)
"anC" = (
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 4;
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 8
+ icon_state = "map-scrubbers";
+ dir = 4
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora_storage)
@@ -10003,8 +10007,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/door/airlock/glass_research{
name = "Xenoflora Research";
- req_access = newlist();
- req_one_access = list(77,30)
+ req_one_access = list(77)
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora_storage)
@@ -10262,8 +10265,7 @@
},
/obj/machinery/door/airlock/glass_research{
name = "Xenoflora Research";
- req_access = newlist();
- req_one_access = list(77,30)
+ req_one_access = list(77)
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora)
@@ -12220,7 +12222,6 @@
name = "Xenoflora Waste Buffer";
start_pressure = 0
},
-/obj/structure/catwalk,
/turf/simulated/floor/tiled/steel_dirty/virgo3b,
/area/tether/surfacebase/outside/outside3)
"avl" = (
@@ -14279,8 +14280,7 @@
"ayK" = (
/obj/machinery/door/airlock/glass_research{
name = "Xenoflora Research";
- req_access = newlist();
- req_one_access = list(77,30)
+ req_one_access = list(77)
},
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled,
@@ -16337,10 +16337,17 @@
/turf/simulated/floor/tiled,
/area/rnd/research/researchdivision)
"aBM" = (
-/obj/structure/shuttle/engine/propulsion,
-/turf/simulated/floor/reinforced,
-/turf/simulated/shuttle/plating/carry,
-/area/shuttle/tether)
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
+/turf/simulated/floor/tiled,
+/area/rnd/xenobiology/xenoflora_storage)
"aBN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -18847,9 +18854,6 @@
/turf/simulated/floor/lino,
/area/tether/surfacebase/entertainment/backstage)
"aFZ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
@@ -18861,9 +18865,8 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/visible/yellow{
- dir = 5;
- icon_state = "intact"
+/obj/machinery/atmospherics/pipe/simple/hidden/yellow{
+ dir = 5
},
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora_storage)
@@ -26390,25 +26393,22 @@
/turf/simulated/floor/wood,
/area/tether/surfacebase/reading_room)
"aTO" = (
-/obj/machinery/door/airlock{
- id_tag = "ReadingRoom2";
- name = "Room 2"
+/obj/effect/floor_decal/borderfloor,
+/obj/effect/floor_decal/corner/lightgrey/border,
+/obj/effect/floor_decal/steeldecal/steel_decals7{
+ dir = 8
},
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/floor_decal/steeldecal/steel_decals7{
+ dir = 1
+ },
+/obj/machinery/light,
/turf/simulated/floor/tiled,
-/area/tether/surfacebase/reading_room)
+/area/tether/surfacebase/surface_three_hall)
"aTP" = (
-/obj/machinery/door/airlock{
- id_tag = "ReadingRoom3";
- name = "Room 3"
- },
-/obj/machinery/door/firedoor/glass,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/tiled,
-/area/tether/surfacebase/reading_room)
+/obj/structure/shuttle/engine/propulsion,
+/turf/simulated/floor/reinforced,
+/turf/simulated/shuttle/plating/carry,
+/area/shuttle/tether)
"aTQ" = (
/obj/effect/floor_decal/industrial/warning{
dir = 8;
@@ -32860,12 +32860,12 @@
/turf/simulated/floor/tiled/white,
/area/crew_quarters/kitchen)
"bet" = (
-/obj/machinery/atmospherics/unary/engine{
- dir = 1
+/obj/effect/floor_decal/industrial/warning{
+ icon_state = "warning";
+ dir = 8
},
-/turf/simulated/floor/reinforced,
-/turf/simulated/shuttle/plating/carry,
-/area/shuttle/tourbus/engines)
+/turf/simulated/floor/tiled,
+/area/rnd/xenobiology/xenoflora_storage)
"beu" = (
/obj/effect/floor_decal/corner/grey/diagonal,
/obj/structure/cable/green{
@@ -34514,6 +34514,13 @@
},
/turf/simulated/floor/tiled/techmaint,
/area/rnd/outpost/xenobiology/outpost_storage)
+"bhg" = (
+/obj/machinery/atmospherics/unary/engine{
+ dir = 1
+ },
+/turf/simulated/floor/reinforced,
+/turf/simulated/shuttle/plating/carry,
+/area/shuttle/tourbus/engines)
"bhu" = (
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/lightgrey/border,
@@ -43886,7 +43893,7 @@ aac
agw
aVG
aWF
-akn
+aTO
akS
aly
amn
@@ -48769,7 +48776,7 @@ jML
jHw
jpB
qWU
-bet
+bhg
aKU
aOI
aPb
@@ -49621,7 +49628,7 @@ caw
jHw
gHh
qWU
-bet
+bhg
aKU
aOI
aPb
@@ -50819,8 +50826,8 @@ aab
aab
aab
aab
-aab
-aab
+aOm
+adG
aag
aag
aaD
@@ -50961,8 +50968,8 @@ aab
aab
aab
aab
-aab
-aab
+aOm
+adG
aac
aag
aaL
@@ -51104,7 +51111,7 @@ aab
aab
aab
aab
-aab
+aNM
aQW
aag
aag
@@ -51606,7 +51613,7 @@ aNk
uSA
aNJ
aNP
-aBM
+aTP
aKU
abg
aOk
@@ -51748,7 +51755,7 @@ aNl
aNl
aNK
aNP
-aBM
+aTP
aKU
abg
aOk
@@ -51890,7 +51897,7 @@ aNm
aNl
aNK
aNP
-aBM
+aTP
aKU
abg
aOk
@@ -52098,7 +52105,7 @@ aab
aab
aab
aab
-aac
+aab
aac
aac
aac
@@ -52240,7 +52247,7 @@ aab
aab
aab
aab
-aac
+aab
aac
aac
aac
@@ -52382,7 +52389,7 @@ aab
aab
aab
aab
-aac
+aab
aaq
aac
aac
@@ -52524,7 +52531,7 @@ aab
aab
aab
aab
-aac
+aab
aaq
aac
aac
@@ -52537,7 +52544,7 @@ aac
abf
abt
acS
-aTO
+afX
aeg
aTM
aeR
@@ -52666,7 +52673,7 @@ aab
aab
aab
aab
-aac
+aab
aaq
aac
aac
@@ -52808,7 +52815,7 @@ aab
aab
aab
aab
-aac
+aab
aac
aac
aac
@@ -52950,7 +52957,7 @@ aab
aab
aab
aab
-aac
+aab
aac
aac
aac
@@ -52963,7 +52970,7 @@ aac
abf
abt
acT
-aTP
+ahz
aeg
aTN
adC
@@ -53092,7 +53099,7 @@ aab
aab
aab
aab
-aac
+aab
aaq
aaq
aac
@@ -53234,8 +53241,8 @@ aab
aab
aab
aab
-aac
-aac
+aab
+aab
aaq
aaq
aac
@@ -53376,8 +53383,8 @@ aab
aab
aab
aab
-aac
-aac
+aab
+aab
aaq
aaq
aac
@@ -53518,12 +53525,12 @@ aab
aab
aab
aab
-aac
-aac
+aab
+aab
aaq
aaq
-afX
-ahz
+aac
+aac
afS
afr
acn
@@ -53660,12 +53667,12 @@ aab
aab
aab
aab
-aac
-aac
-aac
+aab
+aab
aaq
-afX
-ahz
+aaq
+aac
+aac
afS
aby
acZ
@@ -53802,12 +53809,12 @@ aab
aab
aab
aab
+aab
+aab
+aaq
aac
aac
aac
-aac
-afX
-ahz
afS
ait
aeE
@@ -53815,8 +53822,8 @@ afI
ags
agB
agB
-agB
anC
+aBM
amU
aoD
arb
@@ -53948,8 +53955,8 @@ aab
aac
aac
aac
-afX
-ahz
+aac
+aac
afS
ack
aeF
@@ -54090,12 +54097,12 @@ aab
aac
aac
aac
-afX
-ahz
+aac
+aac
afS
-afq
-afq
-afq
+bet
+bet
+bet
afS
agF
adK
@@ -54228,12 +54235,12 @@ aab
aab
aab
aab
-aab
aac
aac
aac
-afX
-ahz
+aac
+aac
+aac
afS
bay
afq
@@ -54370,12 +54377,12 @@ aab
aab
aab
aab
-aab
-aab
aac
aac
-afX
-ahz
+aac
+aac
+aac
+aac
afS
afq
afq
@@ -54512,12 +54519,12 @@ aab
aab
aab
aab
-aab
-aab
-aab
aac
-afX
-ahz
+aac
+aac
+aac
+aac
+aac
afS
afq
afq
@@ -54654,12 +54661,12 @@ aab
aab
aab
aab
-aab
-aab
-aab
-aab
-afX
-ahz
+aac
+aac
+aac
+aac
+aac
+aac
afS
aby
afq
@@ -54797,11 +54804,11 @@ aab
aab
aab
aab
-aab
-aab
-aab
-aOm
-adG
+aac
+aac
+aac
+aac
+aac
afS
afp
afq
@@ -54941,9 +54948,9 @@ aab
aab
aab
aab
-aab
-aOm
-adG
+aac
+aac
+aac
afS
afS
afS
@@ -55515,9 +55522,9 @@ aab
aab
aab
aab
+aNM
+aNM
aNW
-ajG
-ajG
amt
anO
aoR
@@ -55658,8 +55665,8 @@ aab
aab
aab
aab
-aNM
-aNW
+aab
+aOm
ajG
ajG
ajG
diff --git a/maps/tether/tether-04-transit.dmm b/maps/tether/tether-04-transit.dmm
index c9d69a263b..0966e00ca4 100644
--- a/maps/tether/tether-04-transit.dmm
+++ b/maps/tether/tether-04-transit.dmm
@@ -86,7 +86,6 @@
icon_state = "32-2"
},
/obj/structure/disposalpipe/down,
-/obj/effect/ceiling,
/obj/machinery/door/firedoor/glass,
/turf/simulated/open,
/area/maintenance/tether_midpoint)
@@ -260,6 +259,7 @@
},
/obj/structure/cable,
/obj/effect/ceiling,
+/obj/effect/ceiling,
/turf/simulated/floor/plating,
/area/maintenance/tether_midpoint)
"y" = (
@@ -284,6 +284,7 @@
/obj/structure/disposalpipe/up{
dir = 8
},
+/obj/effect/ceiling,
/turf/simulated/floor/plating,
/area/maintenance/tether_midpoint)
"B" = (
@@ -292,6 +293,7 @@
"C" = (
/obj/structure/disposalpipe/up,
/obj/effect/ceiling,
+/obj/effect/ceiling,
/turf/simulated/floor/plating,
/area/maintenance/tether_midpoint)
"D" = (
diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm
index fb137813e0..c4528b69a0 100644
--- a/maps/tether/tether-06-station2.dmm
+++ b/maps/tether/tether-06-station2.dmm
@@ -438,13 +438,19 @@
/turf/simulated/floor/tiled,
/area/security/brig/visitation)
"aW" = (
-/obj/structure/shuttle/engine/propulsion{
+/obj/structure/table/rack{
dir = 8;
- icon_state = "propulsion_l"
+ layer = 2.9
},
-/turf/space,
-/turf/simulated/shuttle/plating/airless/carry,
-/area/shuttle/large_escape_pod1)
+/obj/item/weapon/stock_parts/matter_bin,
+/obj/item/weapon/stock_parts/matter_bin,
+/obj/item/weapon/stock_parts/manipulator,
+/obj/item/weapon/stock_parts/manipulator,
+/obj/item/weapon/stock_parts/console_screen,
+/obj/item/weapon/circuitboard/autolathe,
+/obj/item/weapon/circuitboard/partslathe,
+/turf/simulated/floor,
+/area/storage/tech)
"aX" = (
/obj/effect/floor_decal/borderfloor{
dir = 8
@@ -781,7 +787,8 @@
/area/security/brig)
"bs" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8
+ dir = 8;
+ icon_state = "propulsion_l"
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
@@ -887,8 +894,7 @@
/area/security/brig)
"bC" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion_r"
+ dir = 8
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
@@ -2509,6 +2515,14 @@
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled,
/area/tether/exploration/crew)
+"dI" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 8;
+ icon_state = "propulsion_r"
+ },
+/turf/space,
+/turf/simulated/shuttle/plating/airless/carry,
+/area/shuttle/large_escape_pod1)
"dJ" = (
/obj/structure/bed/chair/office/dark{
dir = 8
@@ -2991,6 +3005,18 @@
},
/turf/simulated/floor/tiled,
/area/hallway/station/port)
+"ev" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 6
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 6
+ },
+/obj/effect/floor_decal/borderfloorwhite/corner2,
+/obj/effect/floor_decal/corner/white/bordercorner2,
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery2)
"ew" = (
/obj/machinery/door/firedoor/glass,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -3126,6 +3152,40 @@
},
/turf/simulated/floor/tiled,
/area/tether/exploration/crew)
+"eE" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 9
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 9
+ },
+/obj/effect/floor_decal/borderfloorwhite/corner2{
+ dir = 1
+ },
+/obj/effect/floor_decal/corner/white/bordercorner2{
+ dir = 1;
+ icon_state = "bordercolorcorner2"
+ },
+/obj/machinery/status_display{
+ density = 0;
+ layer = 4;
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery)
+"eF" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 10
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 10;
+ icon_state = "bordercolor"
+ },
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery)
"eG" = (
/turf/simulated/floor/tiled,
/area/tether/exploration/crew)
@@ -3329,6 +3389,15 @@
"eT" = (
/turf/simulated/floor,
/area/maintenance/station/micro)
+"eU" = (
+/obj/structure/table/standard,
+/obj/item/device/radio/intercom/department/medbay{
+ pixel_y = -24
+ },
+/obj/effect/floor_decal/borderfloorwhite,
+/obj/effect/floor_decal/corner/white/border,
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery)
"eV" = (
/obj/structure/table/wooden_reinforced,
/obj/item/weapon/paper_bin{
@@ -3360,6 +3429,12 @@
},
/turf/simulated/floor/tiled,
/area/tether/exploration/staircase)
+"eX" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite,
+/obj/effect/floor_decal/corner/white/border,
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery)
"eY" = (
/obj/structure/cable/green{
d1 = 4;
@@ -3717,6 +3792,22 @@
},
/turf/simulated/floor/tiled,
/area/tether/exploration/staircase)
+"fD" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 6
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 6
+ },
+/obj/item/weapon/reagent_containers/spray/cleaner{
+ desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back.";
+ name = "Surgery Cleaner";
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery2)
"fE" = (
/obj/effect/floor_decal/techfloor{
dir = 8
@@ -4517,6 +4608,29 @@
/obj/random/maintenance/research,
/turf/simulated/floor,
/area/maintenance/station/exploration)
+"gS" = (
+/obj/structure/table/standard,
+/obj/effect/floor_decal/borderfloorwhite{
+ dir = 5
+ },
+/obj/effect/floor_decal/corner/white/border{
+ dir = 5
+ },
+/obj/effect/floor_decal/borderfloorwhite/corner2{
+ dir = 4
+ },
+/obj/effect/floor_decal/corner/white/bordercorner2{
+ dir = 4;
+ icon_state = "bordercolorcorner2"
+ },
+/obj/machinery/status_display{
+ density = 0;
+ layer = 4;
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/white,
+/area/medical/surgery2)
"gV" = (
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/red/border,
@@ -7051,19 +7165,6 @@
/obj/item/device/analyzer,
/turf/simulated/floor/plating,
/area/storage/tech)
-"kN" = (
-/obj/structure/table/rack{
- dir = 8;
- layer = 2.9
- },
-/obj/item/weapon/stock_parts/matter_bin,
-/obj/item/weapon/stock_parts/matter_bin,
-/obj/item/weapon/stock_parts/manipulator,
-/obj/item/weapon/stock_parts/console_screen,
-/obj/item/weapon/circuitboard/autolathe,
-/obj/item/weapon/circuitboard/partslathe,
-/turf/simulated/floor,
-/area/storage/tech)
"kO" = (
/obj/structure/table/rack{
dir = 8;
@@ -15377,18 +15478,6 @@
/obj/effect/floor_decal/industrial/loading,
/turf/simulated/floor/tiled/white,
/area/medical/surgery2)
-"yx" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 6
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 6
- },
-/obj/effect/floor_decal/borderfloorwhite/corner2,
-/obj/effect/floor_decal/corner/white/bordercorner2,
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery2)
"yy" = (
/obj/structure/cable/green{
d1 = 1;
@@ -15910,32 +15999,6 @@
},
/turf/simulated/floor/plating,
/area/medical/patient_a)
-"zH" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 10
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 10;
- icon_state = "bordercolor"
- },
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery)
-"zI" = (
-/obj/structure/table/standard,
-/obj/item/device/radio/intercom/department/medbay{
- pixel_y = -24
- },
-/obj/effect/floor_decal/borderfloorwhite,
-/obj/effect/floor_decal/corner/white/border,
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery)
-"zJ" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite,
-/obj/effect/floor_decal/corner/white/border,
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery)
"zK" = (
/obj/structure/closet/crate/freezer,
/obj/item/weapon/reagent_containers/blood/OMinus,
@@ -16026,16 +16089,6 @@
/obj/effect/floor_decal/corner/white/border,
/turf/simulated/floor/tiled/white,
/area/medical/surgery2)
-"zQ" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 6
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 6
- },
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery2)
"zR" = (
/obj/structure/cable/green{
d1 = 1;
@@ -16304,29 +16357,6 @@
},
/turf/simulated/floor/tiled/white,
/area/medical/surgery_hallway)
-"An" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 9
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 9
- },
-/obj/effect/floor_decal/borderfloorwhite/corner2{
- dir = 1
- },
-/obj/effect/floor_decal/corner/white/bordercorner2{
- dir = 1;
- icon_state = "bordercolorcorner2"
- },
-/obj/machinery/status_display{
- density = 0;
- layer = 4;
- pixel_x = -32;
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery)
"Ao" = (
/obj/structure/filingcabinet/chestdrawer{
name = "Scan Records"
@@ -19235,29 +19265,6 @@
},
/turf/simulated/floor/airless,
/area/maintenance/station/sec_lower)
-"Fg" = (
-/obj/structure/table/standard,
-/obj/effect/floor_decal/borderfloorwhite{
- dir = 5
- },
-/obj/effect/floor_decal/corner/white/border{
- dir = 5
- },
-/obj/effect/floor_decal/borderfloorwhite/corner2{
- dir = 4
- },
-/obj/effect/floor_decal/corner/white/bordercorner2{
- dir = 4;
- icon_state = "bordercolorcorner2"
- },
-/obj/machinery/status_display{
- density = 0;
- layer = 4;
- pixel_x = 32;
- pixel_y = 0
- },
-/turf/simulated/floor/tiled/white,
-/area/medical/surgery2)
"Fh" = (
/obj/structure/bed/roller,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
@@ -28399,13 +28406,13 @@ fX
fX
fX
fX
-kJ
+lw
lw
lw
mF
lw
lw
-kJ
+lw
kJ
pG
pG
@@ -28967,7 +28974,7 @@ is
jb
jC
fX
-kN
+aW
kK
mj
mJ
@@ -31976,8 +31983,8 @@ xb
ya
xZ
yY
-An
-zH
+eE
+eF
xb
Ah
Aw
@@ -32119,7 +32126,7 @@ xp
yb
yZ
zq
-zI
+eU
xb
Ai
Ax
@@ -32261,7 +32268,7 @@ xq
yc
za
zr
-zJ
+eX
xb
Aj
Ax
@@ -33962,10 +33969,10 @@ wi
wI
xf
ys
-yx
+ev
zm
-Fg
-zQ
+gS
+fD
xf
pp
pp
@@ -37493,11 +37500,11 @@ hl
DI
RX
DL
-aW
-bs
-bs
bs
bC
+bC
+bC
+dI
oY
sW
ef
diff --git a/maps/yw/cryogaia-05-main.dmm b/maps/yw/cryogaia-05-main.dmm
index ef4618bc06..b1b479db1d 100644
--- a/maps/yw/cryogaia-05-main.dmm
+++ b/maps/yw/cryogaia-05-main.dmm
@@ -406,7 +406,7 @@
"ahV" = (/obj/structure/sign/warning/evac,/turf/simulated/wall,/area/hallway/secondary/entry/docking_lounge)
"ahW" = (/obj/machinery/door/firedoor/multi_tile,/obj/machinery/door/airlock/multi_tile/glass,/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"ahX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
-"ahY" = (/obj/machinery/seed_storage/garden{icon_state = "seeds"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
+"ahY" = (/obj/machinery/seed_storage/garden{dir = 4; icon_state = "seeds"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"ahZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"aia" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/obj/structure/table/standard,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"aib" = (/obj/effect/floor_decal/corner/green/diagonal{dir = 4},/obj/effect/floor_decal/corner/green/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
@@ -436,7 +436,7 @@
"aiA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/docking_lounge)
"aiB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/docking_lounge)
"aiC" = (/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,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry/docking_lounge)
-"aiD" = (/obj/machinery/vending/hydronutrients{icon_state = "nutri_generic"; dir = 4},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
+"aiD" = (/obj/machinery/vending/hydronutrients{dir = 4; icon_state = "nutri_generic"},/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"aiE" = (/obj/effect/floor_decal/corner/green/diagonal{dir = 4},/obj/effect/floor_decal/corner/green/diagonal,/obj/structure/bed/chair/wood/wings{dir = 4; icon_state = "wooden_chair_wings"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"aiF" = (/obj/effect/floor_decal/corner/green/diagonal,/obj/structure/table/woodentable,/turf/simulated/floor/tiled/yellow,/area/chapel/monastery/kitchen)
"aiG" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/steel,/area/chapel/monastery)
@@ -516,7 +516,7 @@
"akc" = (/obj/structure/bed/chair/shuttle{dir = 1; name = "pilot's chair"},/obj/machinery/button/remote/airlock{desiredstate = 1; id = "secsh_compartment"; name = "Compartment Access"; pixel_x = -22; pixel_y = 24; req_one_access = list(51); specialfunctions = 4},/obj/machinery/button/remote/airlock{desiredstate = 1; id = "secsh_cabin"; name = "Cabin Lockdown"; pixel_x = -22; pixel_y = 36; req_one_access = list(51); specialfunctions = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"akd" = (/turf/simulated/wall,/area/storage/emergency_storage/emergency5)
"ake" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/secondary/exit_link)
-"akf" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "Arrivals"; dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/cigarette{icon_state = "cigs"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
+"akf" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/camera/network/civilian{c_tag = "Arrivals"; dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/cigarette{dir = 4; icon_state = "cigs"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"akg" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/obj/item/clothing/head/soft/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"akh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"aki" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
@@ -573,7 +573,7 @@
"alh" = (/obj/machinery/door/airlock{name = "Emergency Storage"},/obj/structure/cable{icon_state = "1-2"},/turf/simulated/floor,/area/storage/emergency_storage/emergency5)
"ali" = (/obj/structure/cable{icon_state = "1-2"},/turf/simulated/floor,/area/storage/emergency_storage/emergency5)
"alj" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 32},/obj/effect/floor_decal/corner/pink{dir = 5},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/maintenance/medbay)
-"alk" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -25; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/cola{icon_state = "Soda_Machine"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
+"alk" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/alarm{dir = 4; pixel_x = -25; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/cola{dir = 4; icon_state = "Soda_Machine"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"all" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/device/communicator,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"alm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"aln" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
@@ -602,7 +602,7 @@
"alK" = (/obj/structure/bookcase,/turf/simulated/wall,/area/medical/psych)
"alL" = (/obj/structure/table/rack,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"; pixel_x = 2; pixel_y = 2},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/paleblue/full{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/equipstorage)
"alM" = (/obj/machinery/computer/transhuman/resleeving,/obj/effect/floor_decal/corner/lime/full{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/button/windowtint{id = "resleeve_tint"; pixel_x = 6; pixel_y = 25},/turf/simulated/floor/tiled,/area/medical/resleeving)
-"alN" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/snack{icon_state = "snack"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
+"alN" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/machinery/vending/snack{dir = 4; icon_state = "snack"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"alO" = (/obj/structure/table/reinforced,/obj/machinery/recharger,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"alP" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"alQ" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/corner/white{dir = 8},/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
@@ -761,7 +761,7 @@
"aoO" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/structure/extinguisher_cabinet{dir = 4; icon_state = "extinguisher_closed"; pixel_x = -30},/turf/simulated/floor/tiled/white,/area/medical/medbay3)
"aoP" = (/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/weapon/tool/screwdriver,/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/tiled/white,/area/medical/medbay3)
"aoQ" = (/obj/structure/medical_stand,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/effect/floor_decal/corner/paleblue/full,/turf/simulated/floor/tiled/white,/area/medical/medbay3)
-"aoR" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/item/device/geiger/wall{dir = 4; pixel_x = -30},/obj/machinery/vending/coffee{icon_state = "coffee"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
+"aoR" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/item/device/geiger/wall{dir = 4; pixel_x = -30},/obj/machinery/vending/coffee{dir = 4; icon_state = "coffee"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/docking_lounge)
"aoS" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet/blue,/area/medical/psych)
"aoT" = (/turf/simulated/wall,/area/medical/reception)
"aoU" = (/obj/machinery/disposal,/obj/effect/floor_decal/corner/paleblue{dir = 5},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medbay3)
@@ -1577,7 +1577,7 @@
"aET" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/corner/paleblue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/medical/medbay3)
"aEU" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/medical/medbaymain)
"aEV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/random/junk,/turf/simulated/floor/plating,/area/maintenance/bridge)
-"aEW" = (/obj/machinery/vending/nifsoft_shop{icon_state = "proj"; dir = 8},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
+"aEW" = (/obj/machinery/vending/nifsoft_shop{dir = 8; icon_state = "proj"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aEX" = (/obj/machinery/optable{name = "Robotics Operating Table"},/obj/machinery/oxygen_pump/anesthetic{pixel_x = 32},/turf/simulated/floor/tiled/white,/area/assembly/robotics)
"aEY" = (/obj/machinery/requests_console/preset/bridge{pixel_y = 32},/obj/machinery/camera/network/command{c_tag = "Command Meeting Room"},/obj/machinery/papershredder,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"aEZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
@@ -1593,8 +1593,8 @@
"aFj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/junction,/turf/simulated/floor/tiled,/area/bridge_hallway)
"aFk" = (/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/bridge_hallway)
"aFl" = (/obj/structure/closet/secure_closet/guncabinet{req_access = list(19); req_one_access = list(19)},/obj/item/weapon/gun/energy/gun/protector,/obj/item/weapon/gun/energy/gun/protector,/obj/item/weapon/gun/energy/gun/protector,/turf/simulated/floor/tiled/dark,/area/maintenance/bridge)
-"aFm" = (/obj/machinery/vending/cigarette{icon_state = "cigs"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"aFn" = (/obj/machinery/vending/coffee{icon_state = "coffee"; dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/captain)
+"aFm" = (/obj/machinery/vending/cigarette{dir = 1; icon_state = "cigs"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
+"aFn" = (/obj/machinery/vending/coffee{dir = 1; icon_state = "coffee"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aFo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aFp" = (/mob/living/simple_mob/animal/passive/fox/renault,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aFq" = (/obj/structure/bed/chair/office/light,/turf/simulated/floor/wood,/area/crew_quarters/captain)
@@ -1707,7 +1707,7 @@
"aHw" = (/obj/effect/floor_decal/corner/paleblue/full{dir = 8},/obj/machinery/recharge_station,/turf/simulated/floor/tiled/white,/area/medical/reception)
"aHx" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aHy" = (/obj/machinery/door/airlock/multi_tile/glass{req_access = list(); req_one_access = list()},/obj/machinery/door/firedoor/multi_tile,/turf/simulated/floor/tiled,/area/civilian/atrium/central)
-"aHz" = (/obj/machinery/vending/snack{icon_state = "snack"; dir = 4},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
+"aHz" = (/obj/machinery/vending/snack{dir = 4; icon_state = "snack"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aHA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aHB" = (/obj/structure/flora/pottedplant/fern,/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aHC" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop)
@@ -1739,7 +1739,7 @@
"aIc" = (/obj/structure/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet/bcarpet,/area/crew_quarters/meeting)
"aId" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aIe" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/weapon/folder/red,/obj/item/weapon/pen/multi,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads/hop)
-"aIf" = (/obj/machinery/vending/cigarette{icon_state = "cigs"; dir = 8},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
+"aIf" = (/obj/machinery/vending/cigarette{dir = 8; icon_state = "cigs"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aIg" = (/obj/machinery/account_database,/turf/simulated/floor/wood,/area/crew_quarters/heads/hop)
"aIh" = (/obj/machinery/alarm{dir = 4; pixel_x = -25; pixel_y = 0},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/bridge_hallway)
"aIi" = (/obj/machinery/door/airlock/maintenance/command{req_one_access = list(19)},/obj/machinery/door/firedoor/glass,/turf/simulated/floor,/area/bridge_hallway)
@@ -1792,7 +1792,7 @@
"aJe" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
"aJf" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/structure/sink/kitchen{pixel_x = -30},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"aJg" = (/obj/structure/table/standard,/obj/machinery/light,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/storage/art)
-"aJh" = (/obj/machinery/vending/cola{icon_state = "Soda_Machine"; dir = 4},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
+"aJh" = (/obj/machinery/vending/cola{dir = 4; icon_state = "Soda_Machine"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aJi" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"aJj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/ward)
"aJk" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
@@ -1811,7 +1811,7 @@
"aJx" = (/obj/structure/bed/double,/obj/item/weapon/bedsheet/captaindouble,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aJy" = (/obj/structure/closet/wardrobe/captain,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/captain)
"aJz" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/stool,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/snow/plating,/area/maintenance/auxsolarport)
-"aJC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/smes/buildable{charge = 0; cur_coils = 3; RCon_tag = "Solar Farm - SMES"},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating/snow/plating,/area/maintenance/auxsolarport)
+"aJC" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/power/smes/buildable{RCon_tag = "Solar Farm - SMES"; charge = 0; cur_coils = 3},/obj/structure/cable/heavyduty,/turf/simulated/floor/plating/snow/plating,/area/maintenance/auxsolarport)
"aJD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/handrail{dir = 8; pixel_x = -7},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"aJE" = (/obj/item/weapon/folder/red,/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/security/briefing_room)
"aJF" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = -30; pixel_y = 0},/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask{pixel_x = -4; pixel_y = 8},/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/megaphone,/obj/item/device/radio/off,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
@@ -2161,7 +2161,7 @@
"aQB" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/beanbags,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/weapon/paper{info = "This permit signifies that the Bartender is permitted to posess this firearm in the bar, and ONLY the bar. Failure to adhere to this permit will result in confiscation of the weapon and possibly arrest."; name = "Shotgun permit"},/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aQC" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"aQD" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
-"aQE" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/vending/dinnerware{icon_state = "dinnerware"; dir = 1},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
+"aQE" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/vending/dinnerware{dir = 1; icon_state = "dinnerware"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"aQF" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"aQG" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/effect/landmark/start{name = "Chef"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
"aQH" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
@@ -2610,7 +2610,7 @@
"aZm" = (/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/tiled,/area/storage/primary)
"aZn" = (/obj/machinery/camera/network/civilian{c_tag = "CIV - Primary Tool Storage"; dir = 2},/turf/simulated/floor/tiled,/area/storage/primary)
"aZo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/storage/primary)
-"aZp" = (/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/vending/assist{icon_state = "generic"; dir = 8},/turf/simulated/floor/tiled,/area/storage/primary)
+"aZp" = (/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/vending/assist{dir = 8; icon_state = "generic"},/turf/simulated/floor/tiled,/area/storage/primary)
"aZq" = (/obj/structure/table/standard,/obj/item/device/camera_film{pixel_x = -2; pixel_y = -2},/obj/item/device/camera_film{pixel_x = 2; pixel_y = 2},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/storage/art)
"aZr" = (/obj/structure/table/standard,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/simulated/floor/tiled,/area/storage/art)
"aZs" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/storage/art)
@@ -2681,7 +2681,7 @@
"baF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/storage/primary)
"baG" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled,/area/storage/primary)
"baH" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor/tiled,/area/storage/primary)
-"baI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/vending/tool{icon_state = "tool"; dir = 8},/turf/simulated/floor/tiled,/area/storage/primary)
+"baI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/vending/tool{dir = 8; icon_state = "tool"},/turf/simulated/floor/tiled,/area/storage/primary)
"baJ" = (/obj/structure/table/standard,/obj/item/device/camera,/obj/item/device/camera{pixel_x = 3; pixel_y = -4},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 5},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/storage/art)
"baK" = (/turf/simulated/floor/tiled,/area/storage/art)
"baL" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/storage/art)
@@ -2744,7 +2744,7 @@
"bbR" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/storage/primary)
"bbS" = (/turf/simulated/floor/tiled,/area/storage/primary)
"bbT" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/cell_charger,/turf/simulated/floor/tiled,/area/storage/primary)
-"bbU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/lapvend{icon_state = "robotics"; dir = 8},/turf/simulated/floor/tiled,/area/storage/primary)
+"bbU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/lapvend{dir = 8; icon_state = "robotics"},/turf/simulated/floor/tiled,/area/storage/primary)
"bbV" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; name = "Medbay"; sortType = "Medbay"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled/white,/area/medical/surgeryprep)
"bbW" = (/obj/structure/table/standard,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box{pixel_x = 3; pixel_y = 3},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/weapon/tape_roll{pixel_x = 4; pixel_y = 4},/obj/item/weapon/tape_roll,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/storage/art)
"bbX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/storage/art)
@@ -3000,7 +3000,7 @@
"bgP" = (/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; listening = 1; name = "Common Channel"; pixel_y = -21},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bgQ" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bgR" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple,/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
-"bgS" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/snack{icon_state = "snack"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
+"bgS" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/snack{dir = 1; icon_state = "snack"},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bgT" = (/turf/simulated/wall,/area/assembly/robotics)
"bgU" = (/obj/structure/cable{icon_state = "1-2"},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bgV" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/brown,/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
@@ -3030,7 +3030,7 @@
"bht" = (/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/circuitboard/autolathe,/obj/item/weapon/circuitboard/partslathe,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor,/area/storage/tech)
"bhu" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/barrestroom)
"bhv" = (/turf/simulated/wall,/area/storage/tech)
-"bhw" = (/obj/machinery/vending/assist{icon_state = "generic"; dir = 8},/turf/simulated/floor,/area/storage/tech)
+"bhw" = (/obj/machinery/vending/assist{dir = 8; icon_state = "generic"},/turf/simulated/floor,/area/storage/tech)
"bhx" = (/turf/simulated/wall/r_wall,/area/storage/tech)
"bhy" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "security_lockdown"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/maintenance/sec{name = "Security Maintenance"; req_access = list(1,12)},/obj/structure/cable{icon_state = "4-8"},/turf/simulated/floor,/area/security/detectives_office)
"bhz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled/steel,/area/security/airlock)
@@ -3172,7 +3172,7 @@
"bkh" = (/obj/machinery/button/remote/blast_door{id = "Cell 2 Blastdoor"; name = "Cell 2 Door"; pixel_x = 24; pixel_y = 28; req_access = list(2)},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/camera/network/security{c_tag = "Cell Hallway"; dir = 2},/obj/effect/floor_decal/corner/red{dir = 5},/obj/machinery/door_timer/cell_2{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled,/area/security/brig)
"bki" = (/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access = list(25)},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/crew_quarters/bar)
"bkj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/security)
-"bkk" = (/obj/machinery/vending/snack{icon_state = "snack"; dir = 4},/turf/simulated/floor/carpet,/area/engineering/foyer)
+"bkk" = (/obj/machinery/vending/snack{dir = 4; icon_state = "snack"},/turf/simulated/floor/carpet,/area/engineering/foyer)
"bkl" = (/obj/structure/cable{icon_state = "1-8"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/security)
"bkm" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled/steel,/area/security/brig)
"bkn" = (/obj/machinery/button/remote/blast_door{id = "Cell 3 Blastdoor"; name = "Cell 3 Door"; pixel_x = -24; pixel_y = 28; req_access = list(2)},/obj/machinery/door_timer/cell_3{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/tiled,/area/security/brig)
@@ -3771,7 +3771,7 @@
"bvJ" = (/turf/simulated/wall/r_wall,/area/rnd/research)
"bvK" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light/small{dir = 8; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/simulated/floor/tiled/freezer,/area/rnd/research)
"bvL" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/simulated/floor/tiled/freezer,/area/rnd/research)
-"bvM" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/obj/machinery/vending/cola{icon_state = "Soda_Machine"; dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/research)
+"bvM" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/obj/machinery/vending/cola{dir = 1; icon_state = "Soda_Machine"},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bvN" = (/obj/structure/table/rack/shelf,/obj/item/clothing/suit/storage/hooded/wintercoat/snowsuit/engineering,/obj/effect/floor_decal/corner/yellow/full{dir = 8; icon_state = "corner_white_full"},/obj/item/clothing/shoes/boots/winter/engineering,/obj/item/clothing/shoes/boots/winter/engineering,/obj/item/clothing/suit/storage/hooded/wintercoat/snowsuit/engineering,/obj/item/device/gps/engineering,/obj/item/device/geiger/wall{dir = 4; pixel_x = -30},/turf/simulated/floor/tiled,/area/engineering/hallway)
"bvO" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/effect/floor_decal/corner_oldtile/purple,/turf/simulated/floor/tiled/white,/area/rnd/research)
"bvP" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research)
@@ -4043,7 +4043,7 @@
"bAY" = (/obj/structure/closet/hydrant{pixel_x = 0; pixel_y = -32},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/rnd/research)
"bAZ" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/rnd/research)
"bBa" = (/obj/machinery/light/small{dir = 4},/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor,/area/rnd/research)
-"bBb" = (/obj/machinery/light/small{dir = 8; pixel_y = 0},/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/obj/machinery/vending/cigarette{icon_state = "cigs"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
+"bBb" = (/obj/machinery/light/small{dir = 8; pixel_y = 0},/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/obj/machinery/vending/cigarette{dir = 4; icon_state = "cigs"},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bBc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bBd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bBe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
@@ -4257,7 +4257,7 @@
"bFi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/cryogaia/station/explorer_meeting)
"bFj" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j1"},/turf/simulated/floor/plating,/area/cryogaia/station/explorer_meeting)
"bFk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/cryogaia/station/explorer_meeting)
-"bFl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 8},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/east)
+"bFl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/railing/grey{dir = 8; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/east)
"bFm" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/east)
"bFn" = (/turf/simulated/floor/tiled{icon_state = "techmaint"},/area/engineering/storage)
"bFo" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/tiled{icon_state = "techmaint"},/area/engineering/storage)
@@ -4469,7 +4469,7 @@
"bJn" = (/obj/structure/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Field Medic"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bJo" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bJp" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
-"bJq" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/snack{icon_state = "snack"; dir = 8},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
+"bJq" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/snack{dir = 8; icon_state = "snack"},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bJr" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/structure/closet/secure_closet/explorer,/obj/effect/floor_decal/steeldecal/steel_decals9,/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_prep)
"bJs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled{icon_state = "techmaint"},/area/engineering/storage)
"bJt" = (/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/structure/cable/orange{icon_state = "1-8"},/turf/simulated/floor/tiled,/area/engineering/hallway)
@@ -4512,7 +4512,7 @@
"bKe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"bKf" = (/obj/machinery/power/breakerbox/activated{RCon_tag = "Cargo Substation Bypass"},/turf/simulated/floor/plating,/area/maintenance/substation/cargo)
"bKg" = (/obj/machinery/power/smes/buildable{RCon_tag = "Substation - Cargo"; charge = 0},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/maintenance/substation/cargo)
-"bKh" = (/obj/structure/cable/green,/obj/machinery/power/sensor{name = "Powernet Sensor - Cargo Subgrid"; name_tag = "Cargo Subgrid"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{icon_state = "intact-scrubbers"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; icon_state = "intact-supply"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/substation/cargo)
+"bKh" = (/obj/structure/cable/green,/obj/machinery/power/sensor{name = "Powernet Sensor - Cargo Subgrid"; name_tag = "Cargo Subgrid"},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; icon_state = "intact-supply"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/substation/cargo)
"bKi" = (/turf/simulated/wall,/area/crew_quarters/locker/locker_toilet)
"bKj" = (/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/grounds)
"bKk" = (/obj/effect/floor_decal/snow/floor/edges2{dir = 8},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds)
@@ -4524,7 +4524,7 @@
"bKq" = (/obj/structure/table/woodentable,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bKr" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bKs" = (/obj/structure/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
-"bKt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/cola{icon_state = "Soda_Machine"; dir = 8},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
+"bKt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/vending/cola{dir = 8; icon_state = "Soda_Machine"},/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_meeting)
"bKu" = (/obj/machinery/portable_atmospherics/canister/phoron,/turf/simulated/floor,/area/engineering/storage)
"bKv" = (/obj/structure/closet/crate,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/circuitboard/smes,/obj/item/weapon/smes_coil,/obj/item/weapon/smes_coil,/obj/item/weapon/smes_coil/super_capacity,/obj/item/weapon/smes_coil/super_capacity,/obj/item/weapon/smes_coil/super_io,/obj/item/weapon/smes_coil/super_io,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/engineering/storage)
"bKw" = (/obj/effect/floor_decal/rust,/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor,/area/engineering/storage)
@@ -4639,7 +4639,7 @@
"bMB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/obj/effect/floor_decal/techfloor{dir = 4},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/device/radio/intercom{broadcasting = 0; dir = 4; listening = 1; name = "Common Channel"; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/tiled/techfloor,/area/server)
"bMC" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bMD" = (/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research)
-"bME" = (/obj/machinery/lapvend{icon_state = "robotics"; dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research)
+"bME" = (/obj/machinery/lapvend{dir = 8; icon_state = "robotics"},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bMF" = (/obj/item/device/radio/intercom{layer = 4; name = "Station Intercom (General)"; pixel_y = -27},/obj/machinery/camera/network/research{c_tag = "Research - Miscellaneous Test Chamber"; dir = 1; network = list("Research","Miscellaneous Reseach")},/turf/simulated/floor/reinforced,/area/rnd/phoronics)
"bMG" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/reinforced,/area/rnd/phoronics)
"bMH" = (/obj/structure/grille,/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/rnd/phoronics)
@@ -4760,7 +4760,7 @@
"bOT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; initialize_directions = 1; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0; use_power = 1},/turf/simulated/floor/greengrid,/area/server)
"bOU" = (/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner_oldtile/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/research)
"bOV" = (/obj/effect/floor_decal/corner_oldtile/purple,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner_oldtile/purple{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 26},/turf/simulated/floor/tiled/white,/area/rnd/research)
-"bOW" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/rnd/phoronics)
+"bOW" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 28},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/rnd/phoronics)
"bOX" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/rnd/phoronics)
"bOY" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/simulated/floor/tiled/white,/area/rnd/phoronics)
"bOZ" = (/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/simulated/floor/tiled/white,/area/rnd/phoronics)
@@ -4798,7 +4798,7 @@
"bPF" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine control room blast doors."; dir = 1; id = "EngineEmitterPortWest"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = -25; req_access = null; req_one_access = list(11,24)},/turf/simulated/floor,/area/engineering/engine_waste)
"bPG" = (/obj/machinery/atmospherics/pipe/simple/visible/black,/obj/machinery/door/blast/radproof{id = "EngineEmitterPortWest"; name = "Engine Waste Handling Access"},/turf/simulated/floor,/area/engineering/engine_waste)
"bPH" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = "engine_electrical_maintenance"; locked = 1; name = "Electrical Maintenance"; req_access = list(10)},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/radproof/open{dir = 1; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"},/turf/simulated/floor/plating,/area/engineering/engine_room)
-"bPI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced/full{dir = 9; icon_state = "fwindow"},/obj/machinery/door/blast/radproof/open{dir = 4; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{icon_state = "intact-scrubbers"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/engineering/engine_monitoring)
+"bPI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced/full{dir = 9; icon_state = "fwindow"},/obj/machinery/door/blast/radproof/open{dir = 4; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/engineering/engine_monitoring)
"bPJ" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "eng_al_c_snsr"; pixel_x = -25; pixel_y = 0},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "engine_airlock_pump"},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the engine control room blast doors."; id = "EngineEast"; name = "Engine Room Blast Doors"; pixel_x = 0; pixel_y = -25; req_access = null; req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/engineering/engine_airlock)
"bPK" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/door/blast/radproof{id = "EngineEmitterPortWest"; name = "Engine Waste Handling Access"},/turf/simulated/floor,/area/engineering/engine_waste)
"bPL" = (/obj/effect/floor_decal/corner/pink{dir = 10},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/floor_decal/corner/pink{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/exam_room)
@@ -4849,7 +4849,7 @@
"bQE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/borealis2/outdoors/grounds/traderpad)
"bQF" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_inner"; locked = 1; name = "Dock One Internal Access"; req_access = newlist()},/turf/simulated/floor/tiled/dark,/area/borealis2/outdoors/grounds/traderpad)
"bQG" = (/obj/effect/floor_decal/corner/yellow{dir = 9},/turf/simulated/floor/tiled,/area/engineering/engine_eva)
-"bQH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{icon_state = "intact-scrubbers"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/engineering/engine_eva)
+"bQH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/engineering/engine_eva)
"bQI" = (/obj/effect/floor_decal/corner/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/engineering/engine_eva)
"bQJ" = (/obj/structure/dispenser{phorontanks = 0},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/camera/network/engineering{c_tag = "ENG - EVA"; dir = 1},/obj/effect/floor_decal/corner/yellow/full{dir = 4; icon_state = "corner_white_full"},/turf/simulated/floor/tiled,/area/engineering/engine_eva)
"bQK" = (/obj/machinery/door/airlock/maintenance_hatch{frequency = 1379; icon_state = "door_closed"; id_tag = "engine_airlock_interior"; locked = 0; name = "Engine Airlock Interior"; req_access = list(11)},/obj/machinery/door/blast/radproof{id = "EngineEast"; name = "Engine Airlock"},/turf/simulated/floor/plating,/area/engineering/engine_airlock)
@@ -4967,12 +4967,12 @@
"bSS" = (/obj/structure/table/standard,/obj/item/weapon/coin/silver,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bST" = (/obj/structure/table/standard,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bSU" = (/obj/structure/table/standard,/obj/item/clothing/head/fedora,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
-"bSV" = (/obj/machinery/light{dir = 4},/obj/machinery/lapvend{icon_state = "robotics"; dir = 8},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
+"bSV" = (/obj/machinery/light{dir = 4},/obj/machinery/lapvend{dir = 8; icon_state = "robotics"},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bSW" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/alarm/nobreach{dir = 2; pixel_y = 22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet)
"bSX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet)
"bSY" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet)
"bSZ" = (/obj/structure/bed/chair,/obj/random/contraband,/turf/simulated/floor,/area/crew_quarters/locker/locker_toilet)
-"bTc" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
+"bTc" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; icon_state = "map-scrubbers"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
"bTd" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "west bump"; pixel_x = -28},/obj/structure/cable/green,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/flora/pottedplant/stoutbush,/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/turf/simulated/floor/tiled,/area/cryogaia/station/pathfinder_office)
"bTe" = (/obj/effect/floor_decal/borderfloorblack,/obj/effect/floor_decal/industrial/danger,/obj/machinery/camera/network/exploration{c_tag = "Exploration Hangar Fore West"},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
"bTf" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner_oldtile/purple,/obj/effect/floor_decal/corner_oldtile/purple{dir = 8},/turf/simulated/floor/tiled,/area/cryogaia/station/pathfinder_office)
@@ -5266,7 +5266,7 @@
"bYJ" = (/obj/structure/closet/wardrobe/suit,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bYK" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/secure_closet/personal,/obj/machinery/light,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bYL" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/industrial/outline/blue,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
-"bYM" = (/obj/machinery/computer/timeclock/premade/south,/obj/machinery/vending/cola{icon_state = "Soda_Machine"; dir = 1},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
+"bYM" = (/obj/machinery/computer/timeclock/premade/south,/obj/machinery/vending/cola{dir = 1; icon_state = "Soda_Machine"},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bYN" = (/obj/structure/closet/wardrobe/xenos,/obj/item/clothing/suit/tajaran/furs,/obj/item/device/radio/intercom{broadcasting = 0; dir = 2; listening = 1; name = "Common Channel"; pixel_y = -21},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bYO" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack/shelf,/obj/item/clothing/suit/storage/hooded/wintercoat/snowsuit,/obj/item/clothing/shoes/boots/winter/climbing,/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"bYP" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/table/rack/shelf,/obj/item/clothing/suit/storage/hooded/wintercoat/snowsuit,/obj/item/clothing/shoes/boots/winter/climbing,/obj/structure/noticeboard/airlock{pixel_y = -30},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
@@ -5276,8 +5276,8 @@
"bYT" = (/turf/simulated/wall/r_wall,/area/cryogaia/station/explorer_prep)
"bYU" = (/obj/machinery/door/airlock/multi_tile/glass{name = "Exploration Prep Room"; req_one_access = list(19,43,67,68)},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_prep)
"bYV" = (/turf/simulated/floor/tiled,/area/cryogaia/station/explorer_prep)
-"bYW" = (/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/machinery/vending/coffee{icon_state = "coffee"; dir = 1},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
-"bYX" = (/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/machinery/vending/cigarette{icon_state = "cigs"; dir = 1},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
+"bYW" = (/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/machinery/vending/coffee{dir = 1; icon_state = "coffee"},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
+"bYX" = (/obj/effect/floor_decal/steeldecal/steel_decals5,/obj/machinery/vending/cigarette{dir = 1; icon_state = "cigs"},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
"bYY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
"bYZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"bZa" = (/obj/effect/shuttle_landmark/premade/mercenary/station_sw,/turf/simulated/floor/outdoors/snow/snow/cryogaia/covered,/area/borealis2/outdoors/exterior/explore3)
@@ -5640,9 +5640,8 @@
"cgi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/blue,/obj/machinery/atm{pixel_x = 30},/turf/simulated/floor/tiled,/area/hallway/secondary/exit_link)
"cgj" = (/obj/machinery/atm,/turf/simulated/wall,/area/chapel/monastery)
"cgk" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/carbon/human/monkey/punpun,/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"cgl" = (/obj/machinery/vending/fitness{icon_state = "fitness"; dir = 4},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
+"cgl" = (/obj/machinery/vending/fitness{dir = 4; icon_state = "fitness"},/turf/simulated/floor/tiled,/area/crew_quarters/locker)
"cgn" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/bridge)
-"cgo" = (/obj/machinery/door/airlock/glass_external/freezable{req_one_access = list()},/turf/simulated/floor/plating/snow/plating,/area/borealis2/outdoors/grounds)
"cgp" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"cgq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled,/area/storage/primary)
"cgr" = (/obj/effect/floor_decal/corner/grey/diagonal,/obj/structure/table/standard,/obj/item/clothing/head/cakehat,/turf/simulated/floor/tiled/white,/area/crew_quarters/kitchen)
@@ -5743,7 +5742,7 @@
"cik" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/medbay)
"cil" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; icon_state = "map-scrubbers"},/obj/effect/floor_decal/corner/paleblue{dir = 6},/turf/simulated/floor/tiled/white,/area/medical/medbay)
"cim" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "Medbay Primary Hallway"},/obj/effect/floor_decal/corner/paleblue{dir = 9},/turf/simulated/floor/tiled/white,/area/medical/medbay)
-"cin" = (/obj/machinery/vending/medical{icon_state = "med"; dir = 1},/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
+"cin" = (/obj/machinery/vending/medical{dir = 1; icon_state = "med"},/turf/simulated/floor/tiled/white,/area/medical/medbay_emt_bay)
"cio" = (/obj/effect/floor_decal/corner/pink{dir = 10},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"cip" = (/obj/effect/floor_decal/corner/pink/full{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/sleeper)
"ciq" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/medical/sleeper)
@@ -5874,7 +5873,7 @@
"clm" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/structure/sign/warning/radioactive{name = "\improper OUTPOST RADIATION PROOF"; pixel_x = -30},/turf/simulated/floor/tiled/red,/area/security/outpost)
"clS" = (/obj/structure/ladder,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/west)
"cot" = (/obj/structure/stairs/south,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
-"crg" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/machinery/vending/coffee{icon_state = "coffee"; dir = 1},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
+"crg" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/machinery/vending/coffee{dir = 1; icon_state = "coffee"},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
"csf" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia/covered,/area/borealis2/outdoors/grounds)
"csz" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/blast/shutters{dir = 8; id = "secpilotoffice"; layer = 3.1; name = "Office Shutters"},/obj/structure/table/marble,/obj/structure/window/reinforced{dir = 8; layer = 3},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
"ctE" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northwest)
@@ -5900,7 +5899,7 @@
"cOv" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/table/steel,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
"cOF" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "secshuttle_sensor"; master_tag = "expshuttle_docker"; pixel_y = 28},/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "secshuttle_vent"},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"cQf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled/dark,/area/security/hangar)
-"cRi" = (/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 1},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/checkpoint)
+"cRi" = (/obj/structure/railing/grey{dir = 1; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/checkpoint)
"cRD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/security/hangar)
"cSk" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/railing{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/medbay)
"cVF" = (/obj/structure/ladder/up,/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/ert_arrival)
@@ -5911,7 +5910,6 @@
"cZS" = (/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southwest)
"dar" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/brown{dir = 5},/obj/machinery/holoposter{pixel_y = 32},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"dcv" = (/obj/machinery/camera/network/outside{c_tag = "Solar Array Shed - Exterior"},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
-"dlB" = (/obj/effect/floor_decal/rust,/obj/effect/step_trigger/teleporter/to_plains,/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"doX" = (/obj/structure/bed/chair/shuttle{dir = 8; icon_state = "shuttle_chair"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/closet/walllocker/emerglocker/east,/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"dxu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/solars)
"dym" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stairs/south,/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/explorer_meeting)
@@ -5929,7 +5927,7 @@
"dXr" = (/obj/effect/floor_decal/snow/floor/edges2{dir = 1; icon_state = "snow_edges2"},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior/explore1)
"dZD" = (/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior)
"eas" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/turf/simulated/floor/outdoors/snow/snow/cryogaia/covered,/area/borealis2/outdoors/exterior)
-"ecO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/west)
+"ecO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/railing/grey{dir = 4; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/west)
"eec" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/snow/cryogaia/covered,/area/borealis2/outdoors/exterior/explore3)
"eez" = (/obj/random/cutout,/turf/simulated/floor/plating,/area/maintenance/medbay)
"eeB" = (/obj/machinery/light/small{dir = 1; icon_state = "bulb1"},/turf/simulated/floor/tiled/dark,/area/maintenance/bridge)
@@ -5939,6 +5937,7 @@
"eie" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/security/armoury)
"ein" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"eiF" = (/obj/structure/catwalk,/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/structure/railing{dir = 8},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
+"eka" = (/obj/machinery/door/airlock/glass_external/freezable{req_one_access = list()},/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"eks" = (/obj/machinery/computer/ship/sensors{dir = 4; req_one_access = list(51)},/obj/machinery/power/terminal,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"emj" = (/obj/structure/catwalk,/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/structure/railing{dir = 2; flags = null},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
"eod" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/constructionsite/cryogaia)
@@ -5964,16 +5963,17 @@
"eQL" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 1; icon_state = "gravsnow_edges"},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior)
"eRh" = (/obj/structure/lattice,/obj/structure/grille,/obj/effect/floor_decal/snow/floor/edges2{dir = 4; icon_state = "snow_edges2"},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds)
"eRJ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{icon_state = "4-8"},/turf/simulated/floor/plating,/area/constructionsite/cryogaia)
-"eSB" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 1},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
+"eSB" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/railing/grey{dir = 1; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
"eTF" = (/obj/structure/stairs/east,/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds/wall)
"eUY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/maintenance/medbay)
"eVH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 28},/obj/structure/cable/green{icon_state = "0-2"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/west)
"eYR" = (/obj/structure/table/steel,/obj/machinery/recharger,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
"fat" = (/obj/item/device/geiger/wall{dir = 4; pixel_x = -30},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/security/airlock)
-"faU" = (/obj/item/weapon/material/shard,/obj/effect/overlay/snow/floor/pointy{icon_state = "snowfloorpointy"; dir = 1},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
+"faU" = (/obj/item/weapon/material/shard,/obj/effect/overlay/snow/floor/pointy{dir = 1; icon_state = "snowfloorpointy"},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"fce" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood,/area/chapel/monastery)
"fgB" = (/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/exterior/explore3)
"fii" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/security/hangar)
+"fiv" = (/obj/effect/floor_decal/rust,/obj/effect/map_effect/portal/master/side_a{dir = 8; icon_state = "portal_side_a"; portal_id = "cryogaia_plains_1"},/obj/effect/map_effect/perma_light,/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"flN" = (/obj/machinery/trailblazer/red,/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia/covered,/area/borealis2/outdoors/grounds)
"fmC" = (/obj/structure/closet/secure_closet/freezer/money,/obj/item/weapon/storage/secure/briefcase/money{desc = "An sleek tidy briefcase."; name = "secure briefcase"},/obj/machinery/camera/motion/command{c_tag = "Vault (Motion)"},/turf/simulated/floor/tiled/dark,/area/security/nuke_storage)
"fmO" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/medbay_aft)
@@ -5989,7 +5989,7 @@
"fDM" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"fIL" = (/obj/structure/sign/directions/science,/turf/simulated/wall,/area/storage/primary)
"fLP" = (/obj/structure/grille,/obj/structure/cable/green{icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/security/armoury)
-"fLS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/explorer_meeting)
+"fLS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/railing/grey{dir = 4; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/explorer_meeting)
"fMp" = (/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/tiled{icon_state = "monotile"},/area/engineering/workshop)
"fMW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/steel,/area/security/airlock)
"fQL" = (/obj/structure/ladder,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northeast)
@@ -6046,7 +6046,7 @@
"hIb" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior/explore3)
"hKW" = (/turf/simulated/wall/titanium,/area/borealis2/outdoors/grounds)
"hLS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/security/hangar)
-"hNs" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{icon_state = "up-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/zpipe/up/supply{icon_state = "up-supply"; dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/cryogaia/station/excursion_dock)
+"hNs" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{dir = 4; icon_state = "up-scrubbers"},/obj/machinery/atmospherics/pipe/zpipe/up/supply{dir = 4; icon_state = "up-supply"},/obj/effect/floor_decal/industrial/warning{dir = 1; icon_state = "warning"},/turf/simulated/floor/plating,/area/cryogaia/station/excursion_dock)
"hPr" = (/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/exterior)
"hQp" = (/obj/effect/zone_divider,/turf/simulated/wall,/area/borealis2/outdoors/grounds)
"hQz" = (/turf/simulated/wall/r_wall,/area/security/brig)
@@ -6074,6 +6074,7 @@
"iCz" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "secshuttle_docker"; pixel_x = 24; pixel_y = -24; req_one_access = list(1)},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"iDL" = (/obj/structure/cable{icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/medbay_aft)
"iGb" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/cryogaia/station/explorer_prep)
+"iGM" = (/obj/effect/floor_decal/rust,/obj/effect/map_effect/portal/line/side_a{dir = 8; icon_state = "portal_line_side_a"},/obj/effect/map_effect/perma_light,/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"iIB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/dark,/area/engineering/hallway)
"iJk" = (/obj/structure/cable{icon_state = "1-2"},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds)
"iLp" = (/obj/effect/floor_decal/snow/floor/edges,/obj/effect/floor_decal/snow/floor/edges{dir = 8},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia/covered,/area/borealis2/outdoors/grounds)
@@ -6085,7 +6086,7 @@
"iQS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"iRo" = (/obj/effect/floor_decal/snow/floor/edges,/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds)
"iTZ" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/structure/railing{dir = 1},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
-"iWi" = (/obj/effect/decal/cleanable/blood/tracks/footprints,/obj/effect/overlay/snow/floor/pointy{icon_state = "snowfloorpointy"; dir = 1},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
+"iWi" = (/obj/effect/decal/cleanable/blood/tracks/footprints,/obj/effect/overlay/snow/floor/pointy{dir = 1; icon_state = "snowfloorpointy"},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"jdu" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4; icon_state = "warning_dust"},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"jgc" = (/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
"jgt" = (/obj/effect/overlay/snow/floor/pointy,/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
@@ -6168,7 +6169,7 @@
"lCH" = (/obj/machinery/shipsensors{dir = 1},/turf/simulated/floor/plating,/area/shuttle/security)
"lDP" = (/obj/effect/floor_decal/snow/floor/edges,/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/solars)
"lED" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/explorer_meeting)
-"lGz" = (/obj/effect/floor_decal/rust,/obj/effect/overlay/snow/floor/pointy{icon_state = "snowfloorpointy"; dir = 8},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
+"lGz" = (/obj/effect/floor_decal/rust,/obj/effect/overlay/snow/floor/pointy{dir = 8; icon_state = "snowfloorpointy"},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"lGP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating,/area/constructionsite/cryogaia)
"lIl" = (/obj/effect/floor_decal/rust,/obj/machinery/light/small{dir = 8; pixel_x = 0},/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"lIM" = (/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
@@ -6189,7 +6190,6 @@
"mjD" = (/obj/machinery/photocopier,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/hos)
"mjH" = (/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds)
"mlo" = (/turf/simulated/wall/titanium,/area/borealis2/outdoors/grounds/tower/west)
-"mmd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_external/freezable{req_one_access = list()},/turf/simulated/floor/plating/snow/plating,/area/borealis2/outdoors/grounds)
"mnR" = (/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/floor_decal/snow/floor/edges,/obj/effect/overlay/snow/floor,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/solars)
"mou" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"mri" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/civilian/atrium/central)
@@ -6221,7 +6221,7 @@
"mSp" = (/obj/effect/floor_decal/snow/floor/edges2,/obj/effect/floor_decal/snow/floor/edges2{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior)
"mWX" = (/obj/effect/floor_decal/snow/floor/edges3,/turf/simulated/floor/plating/snow/plating,/area/borealis2/outdoors/exterior)
"nbz" = (/obj/structure/cable{icon_state = "4-8"},/turf/simulated/wall,/area/crew_quarters/showers)
-"ndl" = (/obj/machinery/vending/fitness{icon_state = "fitness"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/exit)
+"ndl" = (/obj/machinery/vending/fitness{dir = 1; icon_state = "fitness"},/turf/simulated/floor/tiled,/area/hallway/secondary/exit)
"ngK" = (/obj/machinery/camera/network/outside{c_tag = "Arrivals Access South"},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds)
"niy" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 4},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior)
"njR" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
@@ -6249,12 +6249,12 @@
"ocr" = (/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges3{dir = 8},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/exterior)
"odb" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 8},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior)
"ofi" = (/turf/simulated/floor/plating/snow/plating,/area/security/armoury)
-"ogB" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{icon_state = "intact-scrubbers"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/engine_room)
+"ogB" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engineering/engine_room)
"okQ" = (/obj/structure/cable{icon_state = "1-2"},/turf/simulated/wall,/area/maintenance/medbay)
"omp" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/dark,/area/security/briefing_room)
"omx" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark,/area/security/hangar)
"onp" = (/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/floor_decal/snow/floor/edges{dir = 8},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds)
-"orA" = (/obj/effect/overlay/snow/floor/pointy{icon_state = "snowfloorpointy"; dir = 8},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
+"orA" = (/obj/effect/overlay/snow/floor/pointy{dir = 8; icon_state = "snowfloorpointy"},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"osD" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"ouu" = (/obj/structure/sign/warning/radioactive{desc = "A sign denoting that this elevator shaft is not radiation proof"; name = "\improper NON-RADIATION SHIELDED AREA"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plating,/area/constructionsite/cryogaia)
"owi" = (/obj/item/device/geiger/wall{dir = 1; pixel_y = -30},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donkpockets,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
@@ -6269,7 +6269,7 @@
"oJX" = (/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior)
"oKj" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 4},/obj/effect/floor_decal/snow/floor/edges3{dir = 1; icon_state = "gravsnow_edges"},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"oMh" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/security)
-"oNc" = (/obj/structure/cable{icon_state = "16-0"},/obj/structure/cable,/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{icon_state = "up-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/zpipe/up/supply{icon_state = "up-supply"; dir = 1},/obj/structure/disposalpipe/up{dir = 1},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/maintenance/medbay)
+"oNc" = (/obj/structure/cable{icon_state = "16-0"},/obj/structure/cable,/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{dir = 1; icon_state = "up-scrubbers"},/obj/machinery/atmospherics/pipe/zpipe/up/supply{dir = 1; icon_state = "up-supply"},/obj/structure/disposalpipe/up{dir = 1},/obj/machinery/door/firedoor/glass,/turf/simulated/floor/plating,/area/maintenance/medbay)
"oQv" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/medbay)
"oQx" = (/obj/structure/catwalk,/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds/power)
"oQE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/maintenance/sec{name = "Security Maintenance"; req_access = list(63); req_one_access = list(1)},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/security)
@@ -6319,7 +6319,7 @@
"qiQ" = (/obj/structure/stairs/west,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"qjt" = (/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior)
"qjX" = (/obj/machinery/light/small{dir = 1; icon_state = "bulb1"},/turf/simulated/floor/plating,/area/construction/Storage)
-"qmy" = (/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 8},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southwest)
+"qmy" = (/obj/structure/railing/grey{dir = 8; icon_state = "grey_railing0"},/obj/structure/cable/green{icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southwest)
"qrc" = (/obj/machinery/recharge_station,/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/ert_arrival)
"qrH" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
"qvg" = (/obj/effect/floor_decal/rust,/obj/structure/closet/crate/large,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance,/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
@@ -6345,7 +6345,7 @@
"rkb" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 1; icon_state = "gravsnow_edges"},/turf/simulated/floor/outdoors/snow/snow/cryogaia/covered,/area/borealis2/outdoors/exterior/explore3)
"rkV" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
"rme" = (/obj/effect/floor_decal/snow/floor/edges2{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/exterior)
-"rpV" = (/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/machinery/vending/medical{icon_state = "med"; dir = 1},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
+"rpV" = (/obj/effect/floor_decal/corner/pink/full{dir = 4},/obj/machinery/vending/medical{dir = 1; icon_state = "med"},/turf/simulated/floor/tiled/white,/area/medical/patient_wing)
"rrd" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/titanium,/area/borealis2/outdoors/grounds/wall)
"rrE" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/structure/cable/heavyduty{icon_state = "1-4"},/obj/structure/railing{dir = 8},/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
"rrK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/maintenance/medbay)
@@ -6387,11 +6387,11 @@
"sEG" = (/obj/structure/stairs/west,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
"sFG" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/glass,/obj/machinery/door/blast/shutters{dir = 1; id = "secshut_cabinshut"; layer = 3.1; name = "Cabin Shutters"},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"sHg" = (/obj/effect/floor_decal/snow/floor/edges2{dir = 1; icon_state = "snow_edges2"},/obj/effect/floor_decal/snow/floor/edges2{dir = 8},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior/explore1)
-"sHv" = (/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 8},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northwest)
+"sHv" = (/obj/structure/railing/grey{dir = 8; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northwest)
"sHI" = (/obj/effect/floor_decal/snow/floor/edges,/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds)
"sJx" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -28},/obj/structure/cable/green,/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/dark,/area/security/hangar)
"sKG" = (/obj/item/device/geiger/wall{dir = 1; pixel_y = -30},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southwest)
-"sLk" = (/obj/machinery/door/firedoor/glass/hidden/steel{icon_state = "door_open"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
+"sLk" = (/obj/machinery/door/firedoor/glass/hidden/steel{dir = 8; icon_state = "door_open"},/turf/simulated/floor/tiled,/area/hallway/primary/starboard)
"sLL" = (/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/exterior)
"sMn" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/exterior)
"sOd" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{icon_state = "0-2"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
@@ -6399,7 +6399,7 @@
"sQc" = (/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia/covered,/area/borealis2/outdoors/grounds)
"sSi" = (/obj/structure/cable{icon_state = "4-8"},/turf/simulated/floor/tiled/techmaint,/area/cryogaia/station/ert_arrival)
"sTA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
-"taL" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
+"taL" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/railing/grey{dir = 4; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/southeast)
"tbF" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/sign/directions/engineering,/turf/simulated/floor/plating,/area/hallway/primary/central_one)
"tgh" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/engineering/engine_room)
"tgj" = (/obj/machinery/space_heater,/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/south)
@@ -6411,10 +6411,11 @@
"tsk" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/titanium,/area/borealis2/outdoors/grounds/tower/east)
"tuO" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"twl" = (/obj/effect/catwalk_plated/dark,/obj/structure/lattice{layer = 2},/obj/structure/closet/crate/large,/obj/random/maintenance,/obj/random/maintenance,/obj/random/maintenance,/turf/simulated/open{dynamic_lighting = 1},/area/borealis2/outdoors/exterior/explore1)
+"txz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/glass_external/freezable{req_one_access = list()},/turf/simulated/floor/plating/snow/plating,/area/cryogaia/outpost/exploration_shed)
"tzg" = (/obj/machinery/light_switch{dir = 8; pixel_x = 28},/turf/simulated/floor/wood,/area/chapel/monastery/recreation)
"tIj" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/structure/railing{dir = 8},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
"tIw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/solars)
-"tID" = (/obj/effect/floor_decal/corner/brown{icon_state = "corner_white"; dir = 4},/turf/simulated/floor/tiled,/area/quartermaster/miningwing)
+"tID" = (/obj/effect/floor_decal/corner/brown{dir = 4; icon_state = "corner_white"},/turf/simulated/floor/tiled,/area/quartermaster/miningwing)
"tKK" = (/obj/structure/bed/chair/shuttle{dir = 8; icon_state = "shuttle_chair"},/obj/structure/closet/medical_wall{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"tKM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled,/area/civilian/atrium/central)
"tME" = (/obj/effect/floor_decal/snow/floor/edges3{dir = 8},/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/exterior/explore3)
@@ -6438,13 +6439,13 @@
"uds" = (/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/structure/closet/crate/secure/phoron{desc = "A secure crate that contains spare canisters of phoron fuel, used by modern shuttles."; name = "spare fuel crate"; req_one_access = list(51,67)},/obj/item/weapon/tank/phoron,/obj/item/weapon/tank/phoron,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
"ufB" = (/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia,/area/borealis2/outdoors/grounds)
"ugG" = (/obj/effect/shuttle_landmark/automatic,/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,/area/borealis2/outdoors/grounds)
-"ugH" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/zpipe/up/supply{dir = 8},/obj/structure/disposalpipe/up{icon_state = "pipe-u"; dir = 8},/turf/simulated/floor,/area/maintenance/substation/cargo)
+"ugH" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/zpipe/up/supply{dir = 8},/obj/structure/disposalpipe/up{dir = 8; icon_state = "pipe-u"},/turf/simulated/floor,/area/maintenance/substation/cargo)
"ugV" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/obj/effect/floor_decal/snow/floor/edges{dir = 4},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
"uis" = (/obj/item/device/geiger/wall{dir = 8; pixel_x = 30},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/east)
"ujb" = (/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating,/area/borealis2/outdoors/grounds/traderpad)
"ujo" = (/obj/effect/floor_decal/borderfloorblack,/obj/effect/floor_decal/industrial/danger,/obj/machinery/camera/network/exploration{c_tag = "Exploration Hangar Fore East"},/turf/simulated/floor/tiled,/area/cryogaia/station/excursion_dock)
"uoN" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -28; req_access = newlist(); req_one_access = list(51)},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/hallway/primary/central_one)
-"uuO" = (/obj/structure/railing/grey{icon_state = "grey_railing0"; dir = 1},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northeast)
+"uuO" = (/obj/structure/railing/grey{dir = 1; icon_state = "grey_railing0"},/turf/simulated/floor/tiled/techmaint,/area/borealis2/outdoors/grounds/tower/northeast)
"uwC" = (/obj/effect/floor_decal/industrial/warning/dust/corner,/turf/simulated/floor/plating/snow/plating,/area/borealis2/outdoors/grounds)
"uwU" = (/obj/cryogaia_away_spawner/wilds,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/exterior)
"uyk" = (/obj/structure/cable{icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/medbay_aft)
@@ -6471,7 +6472,7 @@
"vhi" = (/turf/simulated/floor/outdoors/ice,/area/borealis2/outdoors/exterior)
"vjx" = (/obj/effect/floor_decal/borderfloorblack{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/dark,/area/security/hangar)
"vkc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/steel,/area/maintenance/medbay)
-"vkQ" = (/obj/effect/overlay/snow/floor/pointy{icon_state = "snowfloorpointy"; dir = 1},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
+"vkQ" = (/obj/effect/overlay/snow/floor/pointy{dir = 1; icon_state = "snowfloorpointy"},/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"vlC" = (/obj/structure/bookcase,/obj/machinery/camera/network/medbay{c_tag = "Medbay Psychiatrists Office"; dir = 2},/turf/simulated/wall,/area/medical/psych)
"vpw" = (/obj/machinery/holoposter{dir = 8; pixel_x = 30},/turf/simulated/floor/tiled,/area/hallway/primary/aft)
"vrr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/rshull,/area/shuttle/security)
@@ -6532,7 +6533,7 @@
"wQM" = (/obj/structure/railing{dir = 2; flags = null},/obj/structure/railing{dir = 1},/obj/structure/cable/heavyduty{icon_state = "4-8"},/obj/effect/floor_decal/snow/floor/edges{dir = 1},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/power)
"wRs" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/floor_decal/snow/floor/edges,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia/covered,/area/borealis2/outdoors/grounds)
"wRW" = (/obj/structure/table/glass,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/chapel/monastery)
-"wSq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/cryogaia/station/excursion_dock)
+"wSq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{dir = 5; icon_state = "warning"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; icon_state = "intact-scrubbers"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/cryogaia/station/excursion_dock)
"wTw" = (/obj/item/weapon/material/shard,/obj/effect/overlay/snow/floor/pointy,/turf/simulated/floor/tiled/old_tile/gray,/area/borealis2/outdoors/exterior/explore1)
"wUe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges{dir = 8},/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds/solars)
"wVl" = (/obj/effect/floor_decal/snow/floor/edges{dir = 8},/obj/effect/overlay/snow/floor,/obj/effect/floor_decal/snow/floor/edges{dir = 4},/turf/simulated/floor/plating/snow/plating,/area/borealis2/outdoors/grounds)
@@ -6553,7 +6554,7 @@
"xFE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/table/woodentable,/obj/machinery/camera/network/security{c_tag = "Pilot's Office"; dir = 8},/obj/item/weapon/paper{info = "So, you're part of the new Security Pilot detail huh? Welcome aboard. Keep this paper handy, but make sure you leave it where other Pilot-Officers can see. Some words of advice; your gun coverage is better starboard side, no thanks that sensor antenna, so keep that in mind when you're coming up close to something. Plus that starboard side is where your hookup line to the local fuel depot is, whenever they finish towing that thing into position. Don't try to land her in the expedition hangar though! The final approach software's dumb as a box of rocks and it miscalculates where you're supposed to land. See you starside! -K.H."; name = "Message to New Security Pilots"},/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/tiled/steel,/area/security/pilotroom)
"xGL" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/outdoors/snow/snow/cryogaia,/area/borealis2/outdoors/exterior/explore3)
"xGX" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced/full{dir = 9; icon_state = "fwindow"},/obj/machinery/door/blast/radproof/open{dir = 4; id = "EngineBlast"; name = "Engine Monitoring Room Blast Doors"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/plating,/area/engineering/engine_monitoring)
-"xJh" = (/obj/machinery/vending/coffee{icon_state = "coffee"; dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/research)
+"xJh" = (/obj/machinery/vending/coffee{dir = 8; icon_state = "coffee"},/turf/simulated/floor/tiled/white,/area/rnd/research)
"xLh" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/snow/gravsnow/cryogaia/covered,/area/borealis2/outdoors/exterior/explore3)
"xMK" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/door/window/brigdoor/southleft{layer = 3; req_access = newlist(); req_one_access = list(1,5)},/turf/simulated/floor/tiled/techfloor,/area/shuttle/security)
"xNH" = (/obj/structure/stairs/north,/turf/simulated/floor/plating/snow/plating/cryogaia,/area/borealis2/outdoors/grounds)
@@ -6717,15 +6718,15 @@ aaraadaadaadaadaadaadaadaaeaadaadaadaaeaadaadaaeaadaadaadaadaadaadaGiaadaadaadaa
aaraadaaeaadaadaaeaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaaeaadaadaaQaadaadaadaadaadaadaadvZDwlPwlPwlPwlPwlPwlPvZDaadaadaadaadaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafwFwvVGvVGvVGvVGvVGvVGwFwaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafcfaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafwFwbNubNubNubwNceHclibNubNubNubNuwFwaafaafaafaafaafaafaafwFweNweNweNweNweNweNwvZDaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadrCDlyavPHlyaaadaar
aaraadaadaadaadaadaadaaeaadaadaaeaadaadaadaaeaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadvZDvZDvZDvZDvZDvZDvZDvZDaadaaeaadaadaadaaeaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafceYaafaafaafwFwwFwwFwwFwwFwwFwwFwwFwaafaafaafaafaafaafaafaafaafaafaafaafcfbaafaafaafaafaafaafaafceYaafaafaafceYaafceYaafceYaafaafaafaafaafaafaafaafceYaafaafaafcfbaafaafaafaafaafcfbaafaafceYaafaafaafaafceYaafaafaafaafaafaafaafwFwwFwwFwbNubNubOIbNubNuwFwwFwwFwwFwaafaafaafaafaafaafaafwFwwFwwFweasvZDvZDvZDvZDaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadmDAgIBaafaafaafaaraar
aaraadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafwFwcfexPdmWXrhMcfewFwaafaafaafaafaafaafcfdaafaafaafaafaafaafgmqlyalyalyalyalyalyalyalyalyalyalyalyalyalyalyalyalyalyamDAaafgIBcffcffcffcffcff
-aaraadaadaadaadaadaaeaadaadaaeaadaadaadaaeaadaadaaeaadaaeaadaadaadaadaadaaeaadaadaaeaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafceYaafaafceYaafaafaafaafaafaafaafaafaafaafaafceYaafaafceYaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafceYaafceZaafaafaafaafaafaafaafcfgaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafceZaafceYaafaafaafceYaafaafaafgIBcffwHijrpcfidlB
-aaraafaafaafcfhaafaafaadaadaaeaadaadaaeaadaadaadaadaadaadcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaaeaadaadaadaGiaadaadaadaadaaeaadaadaadaadaadaaeaadaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafceZaafaafaafaafcfdaafaafaafcfbaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafcfbaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafcfhobPaafaafaafaafaafaafaafaafaafobPceYaafaafaafaafceYaafaafaafobPceYaafaafaafaafaafaafaafobPaafcfdaafaafaafaafobPbxscffnUBcficfidlB
-aaraafaafaafcfhaafaafaadaadaadaadcfkcfkcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaaeaadaafcflcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmoJXcfmcfmcfmdZDcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmgAqaafaafceYaafaafcfzmJDmmdxjhcficfidlB
-aaraafaafaafcfhaafaafaadaadaadaadcfkcfkcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaaeaadaadaadaaeaadaaeaadaaeaadaaeaadaadaadaadaadaadaadaadaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafcfbaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafceYaafcfhaafaafaafaafaafaafaafaafcdWobPaafaafaafaafaafaafaafaafaafobPaafaafaafaafaafaafaafaafaafobPaafaafaafaafcfhobPaafaafaafaafhcnbrncffcficficfidlB
-aaraafaafaafcfhaafaafaafaafaafaafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfncfocfocfocfocfocfocfocfocfocfpcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafceYaafaadaadaadaadaadaadaadaaeaadaadaadaaeaadaadaadaadaadaadaadaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafceYaafaafaafaafaafaafceZaafaafaafaafaafceYaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafcfdaafaafaafaafaafaafaafaafaafaafaafaafcfhaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafceYaafaafaafaafceYaafaafaafaafceYaafaafaafceYaafaafaafpGfcfmcfmcfmcfmcfmocrlyvcffcficficfidlB
-aaraafcfjcfjcfqcfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfrcfjcfjcfjcfjcfjcfjcfjcfjcfjcfqcfocfocfocfocfocfocfpcfjcfjcfjcfjaadaadaadaaeaadaadaadaaQaadaadaaeaadaadaadaadaadaadaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaaQaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafcfdaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafcfhaafceZaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafhcnbrncffcficficfidlB
-aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfscftcftcftcftcfucfjcfjcfjcfjcfjcfjcfjcfjcfjcfvcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaafcfdaafaafaafaafaafaafcfbaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafceYaafaafaafaafaafceYaafaafcfbaafcfdceYaafcfhaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafcfdaafaafaafaafceYaafaafaafaafceYaafaafaafcfbaafaafaafceZaafcfbaafaafaafceYaafsMnbrncgocficficfidlB
-aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfwcfxcfxcfxcfxcfxcfycfjcfjcfjcfjcfjcfjcfjcfjcfqcfocfocfocfpcfjcfjaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaafaafaafaafaafcfhaafaafaafaafaadaafaafaafaafaafaafaafcfaaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfbaafcfdaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafobPcjYcfflIlcficfidlB
-aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfscftcftcfycfjcfjcfjcfjcfjcfAcfxcfxcfxcfxcfxcfxcfxcftcfycfjcfBcfjcfjcfjcfBcfjcfjcfjcfjcfvcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaaeaadaadaadaafaafaafaafaafcfhaafaafaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadmbvaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafcffcficficfidlB
+aaraadaadaadaadaadaaeaadaadaaeaadaadaadaaeaadaadaaeaadaaeaadaadaadaadaadaaeaadaadaaeaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafceYaafaafceYaafaafaafaafaafaafaafaafaafaafaafceYaafaafceYaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafceYaafceZaafaafaafaafaafaafaafcfgaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafceZaafceYaafaafaafceYaafaafaafgIBcffwHijrpfivcfi
+aaraafaafaafcfhaafaafaadaadaaeaadaadaaeaadaadaadaadaadaadcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaaeaadaadaadaGiaadaadaadaadaaeaadaadaadaadaadaaeaadaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafceZaafaafaafaafcfdaafaafaafcfbaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafcfbaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafcfhobPaafaafaafaafaafaafaafaafaafobPceYaafaafaafaafceYaafaafaafobPceYaafaafaafaafaafaafaafobPaafcfdaafaafaafaafobPbxscffnUBcfiiGMcfi
+aaraafaafaafcfhaafaafaadaadaadaadcfkcfkcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaaeaadaafcflcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmoJXcfmcfmcfmdZDcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmcfmgAqaafaafceYaafaafcfzmJDtxzxjhcfiiGMcfi
+aaraafaafaafcfhaafaafaadaadaadaadcfkcfkcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaaeaadaadaadaaeaadaaeaadaaeaadaaeaadaadaadaadaadaadaadaadaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafcfbaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafceYaafcfhaafaafaafaafaafaafaafaafcdWobPaafaafaafaafaafaafaafaafaafobPaafaafaafaafaafaafaafaafaafobPaafaafaafaafcfhobPaafaafaafaafhcnbrncffcficfiiGMcfi
+aaraafaafaafcfhaafaafaafaafaafaafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfncfocfocfocfocfocfocfocfocfocfpcfjcfjcfjcfjcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafceYaafaadaadaadaadaadaadaadaaeaadaadaadaaeaadaadaadaadaadaadaadaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafceYaafaafaafaafaafaafceZaafaafaafaafaafceYaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafcfdaafaafaafaafaafaafaafaafaafaafaafaafcfhaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafceYaafaafaafaafceYaafaafaafaafceYaafaafaafceYaafaafaafpGfcfmcfmcfmcfmcfmocrlyvcffcficfiiGMcfi
+aaraafcfjcfjcfqcfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfocfrcfjcfjcfjcfjcfjcfjcfjcfjcfjcfqcfocfocfocfocfocfocfpcfjcfjcfjcfjaadaadaadaaeaadaadaadaaQaadaadaaeaadaadaadaadaadaadaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaaQaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafcfdaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafcfhaafceZaafaafaafaafaafaafaafaafaafceZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafhcnbrncffcficfiiGMcfi
+aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfscftcftcftcftcfucfjcfjcfjcfjcfjcfjcfjcfjcfjcfvcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaafcfdaafaafaafaafaafaafcfbaafaafaafaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafceYaafaafaafaafaafceYaafaafaafaafaafceYaafaafcfbaafcfdceYaafcfhaafaafaafaafcfdaafaafaafcfbaafaafaafaafaafcfdaafaafaafaafceYaafaafaafaafceYaafaafaafcfbaafaafaafceZaafcfbaafaafaafceYaafsMnbrnekacficfiiGMcfi
+aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfwcfxcfxcfxcfxcfxcfycfjcfjcfjcfjcfjcfjcfjcfjcfqcfocfocfocfpcfjcfjaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaafaafaafaafaafcfhaafaafaafaafaadaafaafaafaafaafaafaafcfaaafaafaafaafaafaafaafaafceYaafaafaafaafaafaafaafaafaafaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfbaafcfdaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafcfhaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafobPcjYcfflIlcfiiGMcfi
+aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfscftcftcfycfjcfjcfjcfjcfjcfAcfxcfxcfxcfxcfxcfxcfxcftcfycfjcfBcfjcfjcfjcfBcfjcfjcfjcfjcfvcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaaeaadaadaadaafaafaafaafaafcfhaafaafaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadmbvaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafcffcficfiiGMcfi
aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfAcfxcfxcfxcfxcftcdXcftcftcftcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcftcfCcfjcfjcfscfCcfjcfjcfjcfjcfvcfjcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaafaafaafaafaafcfhaafaafaafaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaaQaadaadaaeaadaadaadaadaadaadaaeaadaadaaAaadaGiaadaadaadaaeaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaGiaadaadaadaadaadaadaadaadaaAaadaadaadaadaadaaeaadaaeaadaadaadaadaaeaafaafcffcffcffcffcff
aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfwcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcftcftcfxcfxcfycfjcfjcfjcfvcfjcfjcfjcfjaadaGiaadaadcfjcfjaadaadaadaadcfjcfjcfjcfjcfjcfjcfjcfjcfvcfjcfjcfjaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaadaadaadaadaadaadaaQaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaQaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaGiaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaaeaadaadcfDaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaaQaadaadaadaadaadaadaadaadaadaadaadaafaafaafaafaaraar
aaraafcfjcfjcfjcfjcfjcfjcfjcfjcfjcfAcftcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfxcfCcfjcfjcfjcfvcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfjcfvcfjcfjcfjaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaAaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaQaadaadaadaadaaQaadaadaaeaadaaQaadaadaadaadaadaadaaAaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaeaadaadaadaadaadaadaadaadaadaar
diff --git a/maps/yw/submaps/cryogaia_plains/cryogaia_plains.dmm b/maps/yw/submaps/cryogaia_plains/cryogaia_plains.dmm
index 57cd665b39..89cfb776bd 100644
--- a/maps/yw/submaps/cryogaia_plains/cryogaia_plains.dmm
+++ b/maps/yw/submaps/cryogaia_plains/cryogaia_plains.dmm
@@ -48,11 +48,6 @@
"m" = (
/turf/simulated/wall/r_wall,
/area/cryogaia/outpost/exploration_shed)
-"n" = (
-/obj/effect/floor_decal/rust,
-/obj/effect/step_trigger/teleporter/from_plains,
-/turf/simulated/floor/plating/snow/plating,
-/area/cryogaia/outpost/exploration_shed)
"o" = (
/obj/effect/floor_decal/rust,
/turf/simulated/floor/plating/snow/plating,
@@ -100,6 +95,25 @@
/obj/structure/flora/tree/dead,
/turf/simulated/floor/outdoors/snow/snow/snow2/cryogaia,
/area/cryogaia/outpost/exploration_plains)
+"G" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 4;
+ icon_state = "portal_side_b";
+ portal_id = "cryogaia_plains_1"
+ },
+/obj/effect/map_effect/perma_light,
+/turf/simulated/floor/plating/snow/plating,
+/area/cryogaia/outpost/exploration_shed)
+"L" = (
+/obj/effect/floor_decal/rust,
+/obj/effect/map_effect/portal/line/side_b{
+ dir = 4;
+ icon_state = "portal_line_side_b"
+ },
+/obj/effect/map_effect/perma_light,
+/turf/simulated/floor/plating/snow/plating,
+/area/cryogaia/outpost/exploration_shed)
(1,1,1) = {"
a
@@ -247,15 +261,15 @@ a
a
a
m
-n
-n
-n
-n
-n
-n
-n
-n
-n
+o
+o
+o
+o
+o
+o
+o
+o
+o
m
a
a
@@ -499,15 +513,15 @@ a
a
a
m
-o
-o
-o
-o
-o
-o
-o
-o
-o
+G
+L
+L
+L
+L
+L
+L
+L
+L
m
a
a
diff --git a/tgui/.eslintrc.yml b/tgui/.eslintrc.yml
index 9fd4db9fd2..fe11b8a34c 100644
--- a/tgui/.eslintrc.yml
+++ b/tgui/.eslintrc.yml
@@ -369,7 +369,7 @@ rules:
# max-depth: error
## Enforce a maximum line length
max-len: [error, {
- code: 80,
+ code: 120, # Bump to 140 if this is still too in the way
## Ignore imports
ignorePattern: '^(import\s.+\sfrom\s|.*require\()',
ignoreUrls: true,
diff --git a/tgui/docs/tutorial-and-examples.md b/tgui/docs/tutorial-and-examples.md
index 00d5546d91..c0e32ebf8e 100644
--- a/tgui/docs/tutorial-and-examples.md
+++ b/tgui/docs/tutorial-and-examples.md
@@ -77,7 +77,7 @@ input. The input's `action` and `params` are passed to the proc.
```dm
/obj/machinery/my_machine/tgui_act(action, params)
if(..())
- return
+ return TRUE
if(action == "change_color")
var/new_color = params["color"]
if(!(color in allowed_coors))
@@ -305,7 +305,7 @@ upon code review):
/obj/copypasta/tgui_act(action, params)
if(..())
- return
+ return TRUE
switch(action)
if("copypasta")
var/newvar = params["var"]
diff --git a/tgui/packages/common/string.js b/tgui/packages/common/string.js
index d05dbfb6fc..1a06c67ecf 100644
--- a/tgui/packages/common/string.js
+++ b/tgui/packages/common/string.js
@@ -91,7 +91,7 @@ export const toTitleCase = str => {
return str;
}
// Handle string
- const WORDS_UPPER = ['Id', 'Tv'];
+ const WORDS_UPPER = ['Id', 'Tv', 'Rcd'];
const WORDS_LOWER = [
'A', 'An', 'And', 'As', 'At', 'But', 'By', 'For', 'For', 'From', 'In',
'Into', 'Near', 'Nor', 'Of', 'On', 'Onto', 'Or', 'The', 'To', 'With',
@@ -105,7 +105,7 @@ export const toTitleCase = str => {
}
for (let word of WORDS_UPPER) {
const regex = new RegExp('\\b' + word + '\\b', 'g');
- currentStr = currentStr.replace(regex, str => str.toLowerCase());
+ currentStr = currentStr.replace(regex, str => str.toUpperCase());
}
return currentStr;
};
diff --git a/tgui/packages/tgui/components/Dropdown.js b/tgui/packages/tgui/components/Dropdown.js
index c561a9557e..6296d7c55c 100644
--- a/tgui/packages/tgui/components/Dropdown.js
+++ b/tgui/packages/tgui/components/Dropdown.js
@@ -52,16 +52,18 @@ export class Dropdown extends Component {
{option}
));
- ops.unshift((
- {
- this.setSelected(null);
- }}>
- -- {placeholder} --
-
- ));
+ if (placeholder) {
+ ops.unshift((
+ {
+ this.setSelected(null);
+ }}>
+ -- {placeholder} --
+
+ ));
+ }
return ops;
}
@@ -73,6 +75,7 @@ export class Dropdown extends Component {
noscroll,
nochevron,
width,
+ maxHeight,
onClick,
selected,
disabled,
@@ -92,6 +95,7 @@ export class Dropdown extends Component {
tabIndex="-1"
style={{
'width': width,
+ 'max-height': maxHeight,
}}
className={classes([
noscroll && 'Dropdown__menu-noscroll' || 'Dropdown__menu',
diff --git a/tgui/packages/tgui/components/NanoMap.js b/tgui/packages/tgui/components/NanoMap.js
index 8ee21ef4a9..261fb8b1d3 100644
--- a/tgui/packages/tgui/components/NanoMap.js
+++ b/tgui/packages/tgui/components/NanoMap.js
@@ -2,16 +2,15 @@ import { Box, Icon, Tooltip } from '.';
import { Component } from 'inferno';
import { useBackend } from "../backend";
import { resolveAsset } from '../assets';
+import { logger } from '../logging';
export class NanoMap extends Component {
constructor(props) {
super(props);
// Auto center based on window size
- const Xcenter = (window.innerWidth / 2) - 256;
-
this.state = {
- offsetX: Xcenter,
+ offsetX: 0,
offsetY: 0,
transform: 'none',
dragging: false,
@@ -42,8 +41,8 @@ export class NanoMap extends Component {
const newOffsetX = e.screenX - state.originX;
const newOffsetY = e.screenY - state.originY;
if (prevState.dragging) {
- state.offsetX += newOffsetX;
- state.offsetY += newOffsetY;
+ state.offsetX += (newOffsetX / this.props.zoom);
+ state.offsetY += (newOffsetY / this.props.zoom);
state.originX = e.screenX;
state.originY = e.screenY;
} else {
@@ -71,11 +70,12 @@ export class NanoMap extends Component {
const { offsetX, offsetY } = this.state;
const { children, zoom, reset } = this.props;
+ let matrix
+ = `matrix(${zoom}, 0, 0, ${zoom}, ${offsetX * zoom}, ${offsetY * zoom})`;
+
const newStyle = {
- width: '512px',
- height: '512px',
- "margin-top": offsetY + 'px',
- "margin-left": offsetX + 'px',
+ width: '560px',
+ height: '560px',
"overflow": "hidden",
"position": "relative",
"padding": "0px",
@@ -83,8 +83,7 @@ export class NanoMap extends Component {
"url("+config.map+"_nanomap_z"+config.mapZLevel+".png)",
"background-size": "cover",
"text-align": "center",
- "transform-origin": "center center",
- "transform": "scale(" + zoom + ")",
+ "transform": matrix,
};
return (
@@ -110,32 +109,26 @@ const NanoMapMarker = (props, context) => {
icon,
tooltip,
color,
+ onClick,
} = props;
- // Please note, the horrifying `3.65714285714` is just the ratio of the
- // width/height of the minimap *element* (not image)
- // to the actual turf size of the map
- const rx = (-256 * (zoom - 1)
- + (x * (3.65714285714 * zoom))
- - 1.5 * zoom - 3);
- const ry = (512 * zoom
- - (y * (3.65714285714 * zoom))
- + zoom - 1.5);
+ const rx = (x * 4) - 5;
+ const ry = (y * 4) - 4;
+
return (
-
-
-
-
-
-
+
+
+
+
);
};
diff --git a/tgui/packages/tgui/components/Section.js b/tgui/packages/tgui/components/Section.js
index fb090fa81e..c5df9f6b5d 100644
--- a/tgui/packages/tgui/components/Section.js
+++ b/tgui/packages/tgui/components/Section.js
@@ -29,6 +29,7 @@ export const Section = props => {
'Section',
'Section--level--' + level,
fill && 'Section--fill',
+ scrollable && 'Section--scrollable',
flexGrow && 'Section--flex',
className,
...computeBoxClassName(rest),
diff --git a/tgui/packages/tgui/components/Tooltip.js b/tgui/packages/tgui/components/Tooltip.js
index c46f3c45f7..1cc6ed51cc 100644
--- a/tgui/packages/tgui/components/Tooltip.js
+++ b/tgui/packages/tgui/components/Tooltip.js
@@ -4,6 +4,7 @@ export const Tooltip = props => {
const {
content,
position = 'bottom',
+ scale,
} = props;
// Empirically calculated length of the string,
// at which tooltip text starts to overflow.
@@ -14,6 +15,7 @@ export const Tooltip = props => {
'Tooltip',
long && 'Tooltip--long',
position && 'Tooltip--' + position,
+ scale && 'Tooltip--scale--' + Math.floor(scale),
])}
data-tooltip={content} />
);
diff --git a/tgui/packages/tgui/components/index.js b/tgui/packages/tgui/components/index.js
index 0d2b2ddab6..71fe763ef8 100644
--- a/tgui/packages/tgui/components/index.js
+++ b/tgui/packages/tgui/components/index.js
@@ -26,4 +26,4 @@ export { Section } from './Section';
export { Slider } from './Slider';
export { Table } from './Table';
export { Tabs } from './Tabs';
-export { Tooltip } from './Tooltip';
+export { Tooltip } from './Tooltip';
\ No newline at end of file
diff --git a/tgui/packages/tgui/constants.js b/tgui/packages/tgui/constants.js
index 20ba00cb75..c8155e1229 100644
--- a/tgui/packages/tgui/constants.js
+++ b/tgui/packages/tgui/constants.js
@@ -4,6 +4,10 @@ export const UI_UPDATE = 1;
export const UI_DISABLED = 0;
export const UI_CLOSE = -1;
+// Atmospheric helpers
+/** 0.0 Degrees Celsius in Kelvin */
+export const T0C = 273.15;
+
// All game related colors are stored here
export const COLORS = {
// Department colors
@@ -48,77 +52,105 @@ export const CSS_COLORS = [
'label',
];
+
+// If you ever add a new radio channel, you can either manually update this, or
+// go use /client/verb/generate_tgui_radio_constants() in communications.dm.
export const RADIO_CHANNELS = [
{
- name: 'Syndicate',
- freq: 1213,
- color: '#a52a2a',
+ "name": "Mercenary",
+ "freq": 1213,
+ "color": "#6D3F40",
},
{
- name: 'Red Team',
- freq: 1215,
- color: '#ff4444',
+ "name": "Raider",
+ "freq": 1277,
+ "color": "#6D3F40",
},
{
- name: 'Blue Team',
- freq: 1217,
- color: '#3434fd',
+ "name": "Special Ops",
+ "freq": 1341,
+ "color": "#5C5C8A",
},
{
- name: 'CentCom',
- freq: 1337,
- color: '#2681a5',
+ "name": "AI Private",
+ "freq": 1343,
+ "color": "#FF00FF",
},
{
- name: 'Supply',
- freq: 1347,
- color: '#b88646',
+ "name": "Response Team",
+ "freq": 1345,
+ "color": "#5C5C8A",
},
{
- name: 'Service',
- freq: 1349,
- color: '#6ca729',
+ "name": "Supply",
+ "freq": 1347,
+ "color": "#5F4519",
},
{
- name: 'Science',
- freq: 1351,
- color: '#c68cfa',
+ "name": "Service",
+ "freq": 1349,
+ "color": "#6eaa2c",
},
{
- name: 'Command',
- freq: 1353,
- color: '#5177ff',
+ "name": "Science",
+ "freq": 1351,
+ "color": "#993399",
},
{
- name: 'Medical',
- freq: 1355,
- color: '#57b8f0',
+ "name": "Command",
+ "freq": 1353,
+ "color": "#193A7A",
},
{
- name: 'Engineering',
- freq: 1357,
- color: '#f37746',
+ "name": "Medical",
+ "freq": 1355,
+ "color": "#008160",
},
{
- name: 'Security',
- freq: 1359,
- color: '#dd3535',
+ "name": "Engineering",
+ "freq": 1357,
+ "color": "#A66300",
},
{
- name: 'AI Private',
- freq: 1447,
- color: '#d65d95',
+ "name": "Security",
+ "freq": 1359,
+ "color": "#A30000",
},
{
- name: 'Common',
- freq: 1459,
- color: '#1ecc43',
+ "name": "Explorer",
+ "freq": 1361,
+ "color": "#555555",
+ },
+ {
+ "name": "Talon",
+ "freq": 1363,
+ "color": "#555555",
+ },
+ {
+ "name": "Common",
+ "freq": 1459,
+ "color": "#008000",
+ },
+ {
+ "name": "Entertainment",
+ "freq": 1461,
+ "color": "#339966",
+ },
+ {
+ "name": "Security(I)",
+ "freq": 1475,
+ "color": "#008000",
+ },
+ {
+ "name": "Medical(I)",
+ "freq": 1485,
+ "color": "#008000",
},
];
const GASES = [
{
- 'id': 'o2',
+ 'id': 'oxygen',
'name': 'Oxygen',
'label': 'Oâ‚‚',
'color': 'blue',
@@ -130,15 +162,15 @@ const GASES = [
'color': 'red',
},
{
- 'id': 'co2',
+ 'id': 'carbon dioxide',
'name': 'Carbon Dioxide',
'label': 'COâ‚‚',
'color': 'grey',
},
{
- 'id': 'plasma',
- 'name': 'Plasma',
- 'label': 'Plasma',
+ 'id': 'phoron',
+ 'name': 'Phoron',
+ 'label': 'Phoron',
'color': 'pink',
},
{
@@ -201,6 +233,24 @@ const GASES = [
'label': 'Hâ‚‚',
'color': 'white',
},
+ {
+ 'id': 'other',
+ 'name': 'Other',
+ 'label': 'Other',
+ 'color': 'white',
+ },
+ {
+ 'id': 'pressure',
+ 'name': 'Pressure',
+ 'label': 'Pressure',
+ 'color': 'average',
+ },
+ {
+ 'id': 'temperature',
+ 'name': 'Temperature',
+ 'label': 'Temperature',
+ 'color': 'yellow',
+ },
];
export const getGasLabel = (gasId, fallbackValue) => {
diff --git a/tgui/packages/tgui/interfaces/BodyScanner.js b/tgui/packages/tgui/interfaces/BodyScanner.js
index c7207eaca5..b250082473 100644
--- a/tgui/packages/tgui/interfaces/BodyScanner.js
+++ b/tgui/packages/tgui/interfaces/BodyScanner.js
@@ -4,10 +4,6 @@ import { useBackend } from "../backend";
import { AnimatedNumber, Box, Button, Flex, Icon, LabeledList, ProgressBar, Section, Table, Tooltip } from "../components";
import { Window } from "../layouts";
-import { createLogger } from '../logging';
-
-const debugBodyScannerLogger = createLogger('debugBodyScanner');
-
const stats = [
['good', 'Alive'],
['average', 'Unconscious'],
@@ -219,7 +215,11 @@ const BodyScannerMainReagents = props => {
{reagent.name}
- {reagent.amount} Units
+ {reagent.amount} Units {
+ reagent.overdose
+ ? OVERDOSING
+ : null
+ }
))}
@@ -241,7 +241,11 @@ const BodyScannerMainReagents = props => {
{reagent.name}
- {reagent.amount} Units
+ {reagent.amount} Units {
+ reagent.overdose
+ ? OVERDOSING
+ : null
+ }
))}
diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js
index 2ef1b6f963..6250b1852f 100644
--- a/tgui/packages/tgui/interfaces/ChemMaster.js
+++ b/tgui/packages/tgui/interfaces/ChemMaster.js
@@ -250,7 +250,6 @@ const ChemMasterProduction = (props, context) => {
return (
{
color="label">
@@ -271,7 +271,7 @@ const ChemMasterProduction = (props, context) => {
}
return (
-
+
{!props.isCondiment ? (
) : (
@@ -390,11 +390,18 @@ const ChemMasterCustomization = (props, context) => {
disabled={!data.loaded_pill_bottle}
icon="eject"
content={data.loaded_pill_bottle
- ? data.loaded_pill_bottle_name
+ ? (
+ data.loaded_pill_bottle_name
+ + " ("
+ + data.loaded_pill_bottle_contents_len
+ + "/"
+ + data.loaded_pill_bottle_storage_slots
+ + ")"
+ )
: "None loaded"}
mb="0.5rem"
onClick={() => act('ejectp')}
- />
+ />
);
};
diff --git a/tgui/packages/tgui/interfaces/CrewMonitor.js b/tgui/packages/tgui/interfaces/CrewMonitor.js
index e5d8dff2ba..1776aa065e 100644
--- a/tgui/packages/tgui/interfaces/CrewMonitor.js
+++ b/tgui/packages/tgui/interfaces/CrewMonitor.js
@@ -103,6 +103,9 @@ export const CrewMonitorContent = (props, context) => {
);
} else if (tabIndex === 1) {
+ // Please note, if you ever change the zoom values,
+ // you MUST update styles/components/Tooltip.scss
+ // and change the @for scss to match.
body = (
Zoom Level:
@@ -113,7 +116,7 @@ export const CrewMonitorContent = (props, context) => {
stepPixelSize="5"
value={mapZoom}
minValue={1}
- maxValue={8}
+ maxValue={8}
onChange={(e, value) => setZoom(value)} />
Z-Level:
{data.map_levels
diff --git a/tgui/packages/tgui/interfaces/MedicalRecords.js b/tgui/packages/tgui/interfaces/MedicalRecords.js
index 0ece98c75e..c5da8480b5 100644
--- a/tgui/packages/tgui/interfaces/MedicalRecords.js
+++ b/tgui/packages/tgui/interfaces/MedicalRecords.js
@@ -6,6 +6,7 @@ import { Window } from "../layouts";
import { LoginInfo } from './common/LoginInfo';
import { LoginScreen } from './common/LoginScreen';
import { TemporaryNotice } from './common/TemporaryNotice';
+import { decodeHtmlEntities } from 'common/string';
const severities = {
"Minor": "good",
@@ -23,30 +24,45 @@ const doEdit = (context, field) => {
};
const virusModalBodyOverride = (modal, context) => {
+ const { act } = useBackend(context);
const virus = modal.args;
return (
+ title={virus.name || "Virus"}
+ buttons={
+ act('modal_close')} />
+ }>
-
- {virus.max_stages}
-
{virus.spread_text} Transmission
- {virus.cure}
+ {virus.antigen}
-
- {virus.desc}
+
+ {virus.rate}
-
- {virus.severity}
+
+ {virus.resistance}%
+
+
+ {virus.species}
+
+
+
+ {virus.symptoms.map(s => (
+
+ Strength: {s.strength}
+ Aggressiveness: {s.aggressiveness}
+
+ ))}
+
@@ -91,7 +107,7 @@ export const MedicalRecords = (_properties, context) => {
width={800}
height={380}
resizable>
-
+
diff --git a/tgui/packages/tgui/interfaces/ResleevingConsole.js b/tgui/packages/tgui/interfaces/ResleevingConsole.js
index a044443cb2..749a6fb261 100644
--- a/tgui/packages/tgui/interfaces/ResleevingConsole.js
+++ b/tgui/packages/tgui/interfaces/ResleevingConsole.js
@@ -24,7 +24,13 @@ const viewMindRecordModalBodyOverride = (modal, context) => {
level={2}
m="-1rem"
pb="1rem"
- title={"Mind Record (" + realname + ")"}>
+ title={"Mind Record (" + realname + ")"}
+ buttons={
+ act('modal_close')} />
+ }>
{realname}
@@ -52,7 +58,9 @@ const viewMindRecordModalBodyOverride = (modal, context) => {
/>
- {oocnotes}
+
@@ -76,7 +84,13 @@ const viewBodyRecordModalBodyOverride = (modal, context) => {
level={2}
m="-1rem"
pb="1rem"
- title={"Body Record (" + realname + ")"}>
+ title={"Body Record (" + realname + ")"}
+ buttons={
+ act('modal_close')} />
+ }>
{realname}
@@ -94,7 +108,9 @@ const viewBodyRecordModalBodyOverride = (modal, context) => {
{synthetic ? "Yes" : "No"}
- {oocnotes}
+
{
if (sleevers && sleevers.length) {
return sleevers.map((pod, i) => {
- let podAction;
- if (!pod.occupied) {
- podAction = (
-
- Sleever Empty.
-
- );
- } else {
- podAction = (
- act('selectsleever', {
- ref: pod.sleever,
- })}
- />
- );
- }
-
return (
{
"-ms-interpolation-mode": "nearest-neighbor",
}}
/>
-
+
{pod.name}
- {podAction}
+ act('selectsleever', {
+ ref: pod.sleever,
+ })}
+ />
);
});
@@ -519,7 +520,7 @@ const ResleevingConsoleRecords = (props, context) => {
} = props;
if (!records.length) {
return (
-
+
{
+ const { act, data } = useBackend(context);
+ return (
+
+
+ {data.unsaved_changes && (
+
+
+
+ Warning: Unsaved Changes!
+
+
+ act("saveprefs")} />
+
+
+
+ ) || null}
+
+
+
+
+
+ );
+};
+
+const VoreInsidePanel = (props, context) => {
+ const { act, data } = useBackend(context);
+
+ const {
+ absorbed,
+ belly_name,
+ belly_mode,
+ desc,
+ pred,
+ contents,
+ ref,
+ } = data.inside;
+
+ if (!belly_name) {
+ return (
+
+ You aren't inside anyone.
+
+ );
+ }
+
+ return (
+
+ You are currently {absorbed ? "absorbed into" : "inside"}
+ {pred}'s
+ {belly_name}
+ and you are
+ {digestModeToPreyMode[belly_mode]}
+
+ {desc}
+
+ {contents.length && (
+
+
+
+ ) || "There is nothing else around you."}
+
+ );
+};
+
+const VoreBellySelectionAndCustomization = (props, context) => {
+ const { act, data } = useBackend(context);
+
+ const {
+ our_bellies,
+ selected,
+ } = data;
+
+ return (
+
+
+ {our_bellies.map(belly => (
+ act("bellypick", { bellypick: belly.ref })}>
+
+ {belly.name} ({belly.contents})
+
+
+ ))}
+ act("newbelly")}>
+ New
+
+
+
+ {selected && }
+
+ );
+};
+
+/**
+ * Subtemplate of VoreBellySelectionAndCustomization
+ */
+const VoreSelectedBelly = (props, context) => {
+ const { act } = useBackend(context);
+
+ const { belly } = props;
+ const {
+ belly_name,
+ is_wet,
+ wet_loop,
+ mode,
+ item_mode,
+ verb,
+ desc,
+ fancy,
+ sound,
+ release_sound,
+ can_taste,
+ nutrition_percent,
+ digest_brute,
+ digest_burn,
+ bulge_size,
+ shrink_grow_size,
+ addons,
+ contaminates,
+ contaminate_flavor,
+ contaminate_color,
+ escapable,
+ interacts,
+ contents,
+ } = belly;
+
+ const [tabIndex, setTabIndex] = useLocalState(context, 'tabIndex', 0);
+
+ return (
+
+
+ setTabIndex(0)}>
+ Controls
+
+ setTabIndex(1)}>
+ Options
+
+ setTabIndex(2)}>
+ Contents ({contents.length})
+
+ setTabIndex(3)}>
+ Interactions
+
+
+ {tabIndex === 0 && (
+
+
+ act("set_attribute", { attribute: "b_name" })}
+ content={belly_name} />
+
+
+ act("set_attribute", { attribute: "b_mode" })}
+ content={mode} />
+
+ act("set_attribute", { attribute: "b_desc" })}
+ icon="pen" />
+ }>
+ {desc}
+
+
+ {addons.length && addons.join(", ") || "None"}
+ act("set_attribute", { attribute: "b_addons" })}
+ ml={1}
+ icon="plus" />
+
+
+ act("set_attribute", { attribute: "b_item_mode" })}
+ content={item_mode} />
+
+
+ act("set_attribute", { attribute: "b_verb" })}
+ content={verb} />
+
+
+ act("set_attribute", { attribute: "b_msgs", msgtype: "dmp" })}
+ content="Digest Message (to prey)" />
+ act("set_attribute", { attribute: "b_msgs", msgtype: "dmo" })}
+ content="Digest Message (to you)" />
+ act("set_attribute", { attribute: "b_msgs", msgtype: "smo" })}
+ content="Struggle Message (outside)" />
+ act("set_attribute", { attribute: "b_msgs", msgtype: "smi" })}
+ content="Struggle Message (inside)" />
+ act("set_attribute", { attribute: "b_msgs", msgtype: "em" })}
+ content="Examine Message (when full)" />
+ act("set_attribute", { attribute: "b_msgs", msgtype: "reset" })}
+ content="Reset Messages" />
+
+
+ ) || tabIndex === 1 && (
+
+
+
+
+ act("set_attribute", { attribute: "b_brute_dmg" })}
+ content={digest_brute} />
+
+
+ act("set_attribute", { attribute: "b_burn_dmg" })}
+ content={digest_burn} />
+
+
+ act("set_attribute", { attribute: "b_nutritionpercent" })}
+ content={nutrition_percent + "%"} />
+
+
+ act("set_attribute", { attribute: "b_contaminates" })}
+ icon={contaminates ? "toggle-on" : "toggle-off"}
+ selected={contaminates}
+ content={contaminates ? "Yes" : "No"} />
+
+ {contaminates && (
+
+
+ act("set_attribute", { attribute: "b_contamination_flavor" })}
+ icon="pen"
+ content={contaminate_flavor} />
+
+
+ act("set_attribute", { attribute: "b_contamination_color" })}
+ icon="pen"
+ content={capitalize(contaminate_color)} />
+
+
+ ) || null}
+
+ act("set_attribute", { attribute: "b_tastes" })}
+ icon={can_taste ? "toggle-on" : "toggle-off"}
+ selected={can_taste}
+ content={can_taste ? "Yes" : "No"} />
+
+
+
+
+
+
+ act("set_attribute", { attribute: "b_wetness" })}
+ icon={is_wet ? "toggle-on" : "toggle-off"}
+ selected={is_wet}
+ content={is_wet ? "Yes" : "No"} />
+
+
+ act("set_attribute", { attribute: "b_wetloop" })}
+ icon={wet_loop ? "toggle-on" : "toggle-off"}
+ selected={wet_loop}
+ content={wet_loop ? "Yes" : "No"} />
+
+
+ act("set_attribute", { attribute: "b_fancy_sound" })}
+ icon={fancy ? "toggle-on" : "toggle-off"}
+ selected={fancy}
+ content={fancy ? "Yes" : "No"} />
+
+
+ act("set_attribute", { attribute: "b_sound" })}
+ content={sound} />
+ act("set_attribute", { attribute: "b_soundtest" })}
+ icon="volume-up" />
+
+
+ act("set_attribute", { attribute: "b_release" })}
+ content={release_sound} />
+ act("set_attribute", { attribute: "b_releasesoundtest" })}
+ icon="volume-up" />
+
+
+ act("set_attribute", { attribute: "b_bulge_size" })}
+ content={bulge_size * 100 + "%"} />
+
+
+ act("set_attribute", { attribute: "b_grow_shrink" })}
+ content={shrink_grow_size * 100 + "%"} />
+
+
+
+
+ act("set_attribute", { attribute: "b_del" })} />
+
+
+ ) || tabIndex === 2 && (
+
+ ) || tabIndex === 3 && (
+ act("set_attribute", { attribute: "b_escapable" })}
+ icon={escapable ? "toggle-on" : "toggle-off"}
+ selected={escapable}
+ content={escapable ? "Interactions On" : "Interactions Off"} />
+ }>
+ {escapable ? (
+
+
+ act("set_attribute", { attribute: "b_escapechance" })} />
+
+
+ act("set_attribute", { attribute: "b_escapetime" })} />
+
+
+
+ act("set_attribute", { attribute: "b_transferchance" })} />
+
+
+ act("set_attribute", { attribute: "b_transferlocation" })} />
+
+
+
+ act("set_attribute", { attribute: "b_absorbchance" })} />
+
+
+ act("set_attribute", { attribute: "b_digestchance" })} />
+
+
+ ) : "These options only display while interactions are turned on."}
+
+ ) || "Error."}
+
+ );
+};
+const VoreContentsPanel = (props, context) => {
+ const { act } = useBackend(context);
+ const {
+ contents,
+ belly,
+ } = props;
+
+ return (
+
+ {contents.map(thing => (
+
+ act(thing.outside ? "pick_from_outside" : "pick_from_inside", {
+ "pick": thing.ref,
+ "belly": belly,
+ })}>
+
+
+ {thing.name}
+
+ ))}
+
+ );
+};
+
+const VoreUserPreferences = (props, context) => {
+ const { act, data } = useBackend(context);
+
+ const {
+ digestable,
+ devourable,
+ feeding,
+ absorbable,
+ digest_leave_remains,
+ allowmobvore,
+ permit_healbelly,
+ can_be_drop_prey,
+ can_be_drop_pred,
+ noisy,
+ } = data.prefs;
+
+ return (
+
+
+
+ act("toggle_digest")}
+ icon={digestable ? "toggle-on" : "toggle-off"}
+ selected={digestable}
+ fluid
+ tooltip={"This button is for those who don't like being digested. It can make you undigestable."
+ + (digestable ? " Click here to prevent digestion." : " Click here to allow digestion.")}
+ content={digestable ? "Digestion Allowed" : "No Digestion"} />
+
+
+ act("toggle_absorbable")}
+ icon={absorbable ? "toggle-on" : "toggle-off"}
+ selected={absorbable}
+ fluid
+ tooltip={"This button allows preds to know whether you prefer or don't prefer to be absorbed. "
+ + (absorbable ? "Click here to disallow being absorbed." : "Click here to allow being absorbed.")}
+ content={absorbable ? "Absorption Allowed" : "No Absorption"} />
+
+
+ act("toggle_devour")}
+ icon={devourable ? "toggle-on" : "toggle-off"}
+ selected={devourable}
+ fluid
+ tooltip={"This button is to toggle your ability to be devoured by others. "
+ + (devourable ? "Click here to prevent being devoured." : "Click here to allow being devoured.")}
+ content={devourable ? "Devouring Allowed" : "No Devouring"} />
+
+
+ act("toggle_mobvore")}
+ icon={allowmobvore ? "toggle-on" : "toggle-off"}
+ selected={allowmobvore}
+ fluid
+ tooltip={"This button is for those who don't like being eaten by mobs. "
+ + (allowmobvore
+ ? "Click here to prevent being eaten by mobs."
+ : "Click here to allow being eaten by mobs.")}
+ content={allowmobvore ? "Mobs eating you allowed" : "No Mobs eating you"} />
+
+
+ act("toggle_feed")}
+ icon={feeding ? "toggle-on" : "toggle-off"}
+ selected={feeding}
+ fluid
+ tooltip={"This button is to toggle your ability to be fed to or by others vorishly. "
+ + (feeding
+ ? "Click here to prevent being fed to/by other people."
+ : "Click here to allow being fed to/by other people.")}
+ content={feeding ? "Feeding Allowed" : "No Feeding"} />
+
+
+ act("toggle_healbelly")}
+ icon={permit_healbelly ? "toggle-on" : "toggle-off"}
+ selected={permit_healbelly}
+ fluid
+ tooltipPosition="top"
+ tooltip={"This button is for those who don't like healbelly used on them as a mechanic."
+ + " It does not affect anything, but is displayed under mechanical prefs for ease of quick checks. "
+ + (permit_healbelly
+ ? "Click here to prevent being heal-bellied."
+ : "Click here to allow being heal-bellied.")}
+ content={permit_healbelly ? "Heal-bellies Allowed" : "No Heal-bellies"} />
+
+
+ act("toggle_dropnom_prey")}
+ icon={can_be_drop_prey ? "toggle-on" : "toggle-off"}
+ selected={can_be_drop_prey}
+ fluid
+ tooltip={"This toggle is for spontaneous, environment related vore"
+ + " as prey, including drop-noms, teleporters, etc. "
+ + (can_be_drop_prey
+ ? "Click here to allow being spontaneous prey."
+ : "Click here to disable being spontaneous prey.")}
+ content={can_be_drop_prey ? "Spontaneous Prey Enabled" : "Spontaneous Prey Disabled"} />
+
+
+ act("toggle_dropnom_pred")}
+ icon={can_be_drop_pred ? "toggle-on" : "toggle-off"}
+ selected={can_be_drop_pred}
+ fluid
+ tooltip={"This toggle is for spontaneous, environment related vore"
+ + " as a predator, including drop-noms, teleporters, etc. "
+ + (can_be_drop_pred
+ ? "Click here to allow being spontaneous pred."
+ : "Click here to disable being spontaneous pred.")}
+ content={can_be_drop_pred ? "Spontaneous Pred Enabled" : "Spontaneous Pred Disabled"} />
+
+
+ act("toggle_noisy")}
+ icon={noisy ? "toggle-on" : "toggle-off"}
+ selected={noisy}
+ fluid
+ tooltip={"Toggle audible hunger noises. "
+ + (noisy
+ ? "Click here to turn off hunger noises."
+ : "Click here to turn on hunger noises.")}
+ content={noisy ? "Hunger Noises Enabled" : "Hunger Noises Disabled"} />
+
+
+ act("toggle_leaveremains")}
+ icon={digest_leave_remains ? "toggle-on" : "toggle-off"}
+ selected={digest_leave_remains}
+ fluid
+ tooltipPosition="top"
+ tooltip={digest_leave_remains
+ ? "Your Predator must have this setting enabled in their belly modes to allow remains to show up,"
+ + "if they do not, they will not leave your remains behind, even with this on. Click to disable remains"
+ : ("Regardless of Predator Setting, you will not leave remains behind."
+ + " Click this to allow leaving remains.")}
+ content={digest_leave_remains ? "Allow Leaving Remains Behind" : "Do Not Allow Leaving Remains Behind"} />
+
+
+ act("setflavor")} />
+
+
+ act("setsmell")} />
+
+
+
+
+
+ act("saveprefs")} />
+
+
+ act("reloadprefs")} />
+
+
+
+
+ );
+};
\ No newline at end of file
diff --git a/tgui/packages/tgui/interfaces/common/FullscreenNotice.js b/tgui/packages/tgui/interfaces/common/FullscreenNotice.js
new file mode 100644
index 0000000000..124318d0fb
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/common/FullscreenNotice.js
@@ -0,0 +1,20 @@
+import { Flex, Section } from '../../components';
+
+/**
+ * Just a generic wrapper for fullscreen notices.
+ */
+export const FullscreenNotice = (props, context) => {
+ const {
+ children,
+ title = 'Welcome',
+ } = props;
+ return (
+
+ );
+};
diff --git a/tgui/packages/tgui/interfaces/common/LoginScreen.js b/tgui/packages/tgui/interfaces/common/LoginScreen.js
index ada5c2d89d..441705e6a0 100644
--- a/tgui/packages/tgui/interfaces/common/LoginScreen.js
+++ b/tgui/packages/tgui/interfaces/common/LoginScreen.js
@@ -1,5 +1,6 @@
import { useBackend } from '../../backend';
import { Box, Button, Flex, Icon, Section } from '../../components';
+import { FullscreenNotice } from './FullscreenNotice';
/**
* Displays a login screen that users can interact with
@@ -30,55 +31,51 @@ export const LoginScreen = (_properties, context) => {
isRobot,
} = data;
return (
-
-
-
-
-
- Guest
-
-
- ID:
- act('scan')}
- />
-
- act('login', {
- login_type: 1,
- })}
- />
- {!!isAI && (
- act('login', {
- login_type: 2,
- })}
- />
- )}
- {!!isRobot && (
- act('login', {
- login_type: 3,
- })}
- />
- )}
-
-
-
+
+
+
+ Guest
+
+
+ ID:
+ act('scan')}
+ />
+
+ act('login', {
+ login_type: 1,
+ })}
+ />
+ {!!isAI && (
+ act('login', {
+ login_type: 2,
+ })}
+ />
+ )}
+ {!!isRobot && (
+ act('login', {
+ login_type: 3,
+ })}
+ />
+ )}
+
);
};
diff --git a/tgui/packages/tgui/public/tgui.bundle.css b/tgui/packages/tgui/public/tgui.bundle.css
index 7eebf48114..8662e6c9b1 100644
--- a/tgui/packages/tgui/public/tgui.bundle.css
+++ b/tgui/packages/tgui/public/tgui.bundle.css
@@ -1 +1 @@
-body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#0d0d0d!important}.color-white{color:#fff!important}.color-red{color:#d33!important}.color-orange{color:#f37827!important}.color-yellow{color:#fbd814!important}.color-olive{color:#c0d919!important}.color-green{color:#22be47!important}.color-teal{color:#00c5bd!important}.color-blue{color:#238cdc!important}.color-violet{color:#6c3fcc!important}.color-purple{color:#a93bcd!important}.color-pink{color:#e2439c!important}.color-brown{color:#af6d43!important}.color-grey{color:#7d7d7d!important}.color-good{color:#62b62a!important}.color-average{color:#f1951d!important}.color-bad{color:#d33!important}.color-label{color:#8496ab!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #0d0d0d!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #d33!important}.outline-color-orange{outline:.167rem solid #f37827!important}.outline-color-yellow{outline:.167rem solid #fbd814!important}.outline-color-olive{outline:.167rem solid #c0d919!important}.outline-color-green{outline:.167rem solid #22be47!important}.outline-color-teal{outline:.167rem solid #00c5bd!important}.outline-color-blue{outline:.167rem solid #238cdc!important}.outline-color-violet{outline:.167rem solid #6c3fcc!important}.outline-color-purple{outline:.167rem solid #a93bcd!important}.outline-color-pink{outline:.167rem solid #e2439c!important}.outline-color-brown{outline:.167rem solid #af6d43!important}.outline-color-grey{outline:.167rem solid #7d7d7d!important}.outline-color-good{outline:.167rem solid #62b62a!important}.outline-color-average{outline:.167rem solid #f1951d!important}.outline-color-bad{outline:.167rem solid #d33!important}.outline-color-label{outline:.167rem solid #8496ab!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8496ab;border-left:.1666666667em solid #8496ab;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0}.Button .fa,.Button .far,.Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:.25em}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#323232;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5px 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 .5px}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.5em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:#444;transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table!important}.Flex--iefix--column{display:block!important}.Flex--iefix--column>.Flex__item{display:block!important;margin-left:.5em;margin-right:.5em}.Flex__item--iefix{display:table-cell!important}.Flex--spacing--1{margin:0 -.25em}.Flex--spacing--1>.Flex__item{margin:0 .25em}.Flex--spacingPrecise--1{margin:-1px}.Flex--spacingPrecise--1>.Flex__item{margin:1px}.Flex--spacing--2{margin:0 -.5em}.Flex--spacing--2>.Flex__item{margin:0 .5em}.Flex--spacingPrecise--2{margin:-2px}.Flex--spacingPrecise--2>.Flex__item{margin:2px}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue,.Knob__popupValue--right{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__popupValue--right{top:.25rem;right:-50%}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#0d0d0d}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#d33}.Knob--color--orange .Knob__ringFill{stroke:#f37827}.Knob--color--yellow .Knob__ringFill{stroke:#fbd814}.Knob--color--olive .Knob__ringFill{stroke:#c0d919}.Knob--color--green .Knob__ringFill{stroke:#22be47}.Knob--color--teal .Knob__ringFill{stroke:#00c5bd}.Knob--color--blue .Knob__ringFill{stroke:#238cdc}.Knob--color--violet .Knob__ringFill{stroke:#6c3fcc}.Knob--color--purple .Knob__ringFill{stroke:#a93bcd}.Knob--color--pink .Knob__ringFill{stroke:#e2439c}.Knob--color--brown .Knob__ringFill{stroke:#af6d43}.Knob--color--grey .Knob__ringFill{stroke:#7d7d7d}.Knob--color--good .Knob__ringFill{stroke:#62b62a}.Knob--color--average .Knob__ringFill{stroke:#f1951d}.Knob--color--bad .Knob__ringFill{stroke:#d33}.Knob--color--label .Knob__ringFill{stroke:#8496ab}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hidden;width:100%;height:100vh;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__title{padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__content{padding:.66em .5em}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill .Section__content{flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Section--level--1 .Section__titleText{font-size:1.1666666667em}.Section--level--2 .Section__titleText{font-size:1.0833333333em}.Section--level--3 .Section__titleText{font-size:1em}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs--horizontal{border-bottom:.1666666667em solid hsla(0,0%,100%,.1);margin-bottom:.5em}.Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:.1666666667em;width:100%;background-color:#fff;border-radius:.16em}.Tabs--vertical{margin-right:.75em}.Tabs--vertical .Tabs__tabBox{border-right:.1666666667em solid hsla(0,0%,100%,.1);vertical-align:top}.Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:.0833333333em .75em 0 .5em;border-bottom:.1666666667em solid hsla(0,0%,100%,.1)}.Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:.25em;background-color:#fff;border-radius:.16em}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:20.8333333333em;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{left:0;margin:.25em 1em 0}.CameraConsole__toolbar,.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em}.CameraConsole__toolbarRight{margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.Roulette{font-family:Palatino}.Roulette__board{display:table;width:100%;border-collapse:collapse;border:2px solid #fff;margin:0}.Roulette__board-row{padding:0;margin:0}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:2px solid #fff;font-family:Palatino}.Roulette__board-cell:first-child{padding-left:0}.Roulette__board-cell:last-child{padding-right:0}.Roulette__board-extrabutton{text-align:center;font-size:20px;font-weight:700;height:28px;border:none!important;margin:0!important;padding-top:4px!important;color:#fff!important}.Roulette__lowertable{margin-top:8px;margin-left:80px;margin-right:80px;border-collapse:collapse;border:2px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:20px;font-weight:700}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Layout__content--scrollable{overflow-y:auto}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content>.Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#363636;transition:color .25s,background-color .25s}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.TitleBar__statusIcon{top:0;left:12px;left:1rem;transition:color .5s;line-height:32px!important;line-height:2.6666666667rem!important}.TitleBar__close,.TitleBar__statusIcon{position:absolute;font-size:20px;font-size:1.6666666667rem}.TitleBar__close{top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.Window{bottom:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(180deg,#2a2a2a 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0}.theme-abductor .Button .fa,.theme-abductor .Button .far,.theme-abductor .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .far,.theme-abductor .Button--hasContent .fas{margin-right:.25em}.theme-abductor .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:focus,.theme-abductor .Button--color--default:hover{background-color:#c42f60;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:focus,.theme-abductor .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:focus,.theme-abductor .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:hsla(0,0%,100%,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:focus,.theme-abductor .Button--color--transparent:hover{background-color:#373e59;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:focus,.theme-abductor .Button--selected:hover{background-color:#5569ad;color:#fff}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:transparent}.theme-abductor .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__title{padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--fill .Section__content{flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-abductor .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section--level--3 .Section__titleText{font-size:1em}.theme-abductor .Section--level--2,.theme-abductor .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-abductor .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-abductor .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#a82d55;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px}.theme-abductor .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-abductor .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-abductor .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-abductor .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-abductor .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-abductor .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-abductor .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-abductor .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-abductor .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-abductor .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-abductor .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-abductor .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-abductor .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-abductor .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-abductor .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-abductor .Tooltip--left:hover:after,.theme-abductor .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-abductor .Tooltip--right:after{top:50%;left:100%}.theme-abductor .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Layout__content--scrollable{overflow-y:auto}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(180deg,#353e5e 0,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-abductor .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#9e1b46;transition:color .25s,background-color .25s}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-abductor .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-abductor .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .far,.theme-cardtable .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .far,.theme-cardtable .Button--hasContent .fas{margin-right:.25em}.theme-cardtable .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:focus,.theme-cardtable .Button--color--default:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:focus,.theme-cardtable .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:focus,.theme-cardtable .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:hsla(0,0%,100%,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:focus,.theme-cardtable .Button--color--transparent:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:focus,.theme-cardtable .Button--selected:hover{background-color:#b31212;color:#fff}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:transparent}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid hsla(0,0%,100%,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__title{padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--fill .Section__content{flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-cardtable .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section--level--3 .Section__titleText{font-size:1em}.theme-cardtable .Section--level--2,.theme-cardtable .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Layout__content--scrollable{overflow-y:auto}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(180deg,#117039 0,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#381608;transition:color .25s,background-color .25s}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-cardtable .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .far,.theme-hackerman .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .far,.theme-hackerman .Button--hasContent .fas{margin-right:.25em}.theme-hackerman .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:focus,.theme-hackerman .Button--color--default:hover{background-color:#26ff26;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:focus,.theme-hackerman .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:focus,.theme-hackerman .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:hsla(0,0%,100%,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:focus,.theme-hackerman .Button--color--transparent:hover{background-color:#1d271d;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:focus,.theme-hackerman .Button--selected:hover{background-color:#26ff26;color:#000}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #0f0;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:transparent}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__title{padding:.5em;border-bottom:.1666666667em solid #0f0}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--fill .Section__content{flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-hackerman .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section--level--3 .Section__titleText{font-size:1em}.theme-hackerman .Section--level--2,.theme-hackerman .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Layout__content--scrollable{overflow-y:auto}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(180deg,#121b12 0,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#223d22;transition:color .25s,background-color .25s}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-hackerman .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border:.1666666667em outset #0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .far,.theme-malfunction .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .far,.theme-malfunction .Button--hasContent .fas{margin-right:.25em}.theme-malfunction .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:focus,.theme-malfunction .Button--color--default:hover{background-color:#a60b0b;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:focus,.theme-malfunction .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:focus,.theme-malfunction .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:hsla(0,0%,100%,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:focus,.theme-malfunction .Button--color--transparent:hover{background-color:#274252;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:focus,.theme-malfunction .Button--selected:hover{background-color:#2a6894;color:#fff}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:transparent}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__title{padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--fill .Section__content{flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-malfunction .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section--level--3 .Section__titleText{font-size:1em}.theme-malfunction .Section--level--2,.theme-malfunction .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-malfunction .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#235577;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.theme-malfunction .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-malfunction .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-malfunction .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-malfunction .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-malfunction .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-malfunction .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-malfunction .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-malfunction .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-malfunction .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-malfunction .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-malfunction .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-malfunction .Tooltip--left:hover:after,.theme-malfunction .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-malfunction .Tooltip--right:after{top:50%;left:100%}.theme-malfunction .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Layout__content--scrollable{overflow-y:auto}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(180deg,#244559 0,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#1a3f57;transition:color .25s,background-color .25s}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-malfunction .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-ntos .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0}.theme-ntos .Button .fa,.theme-ntos .Button .far,.theme-ntos .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .far,.theme-ntos .Button--hasContent .fas{margin-right:.25em}.theme-ntos .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:focus,.theme-ntos .Button--color--default:hover{background-color:#465e7a;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:focus,.theme-ntos .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:focus,.theme-ntos .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:focus,.theme-ntos .Button--color--transparent:hover{background-color:#2b3847;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:focus,.theme-ntos .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__title{padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--fill .Section__content{flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-ntos .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section--level--3 .Section__titleText{font-size:1em}.theme-ntos .Section--level--2,.theme-ntos .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Layout__content--scrollable{overflow-y:auto}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(180deg,#223040 0,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#2a3b4e;transition:color .25s,background-color .25s}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-ntos .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .Tabs--horizontal{border-bottom:.1666666667em solid hsla(0,0%,100%,.1);margin-bottom:.5em}.theme-paper .Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:.1666666667em;width:100%;background-color:#fff;border-radius:.16em}.theme-paper .Tabs--vertical{margin-right:.75em}.theme-paper .Tabs--vertical .Tabs__tabBox{border-right:.1666666667em solid hsla(0,0%,100%,.1);vertical-align:top}.theme-paper .Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:.0833333333em .75em 0 .5em;border-bottom:.1666666667em solid hsla(0,0%,100%,.1)}.theme-paper .Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.theme-paper .Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:.25em;background-color:#fff;border-radius:.16em}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.1);box-shadow:inset 0 0 5px rgba(0,0,0,.2);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__title{padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--fill .Section__content{flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-paper .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-paper .Section--level--3 .Section__titleText{font-size:1em}.theme-paper .Section--level--2,.theme-paper .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-paper .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-paper .Button:last-child{margin-right:0}.theme-paper .Button .fa,.theme-paper .Button .far,.theme-paper .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .far,.theme-paper .Button--hasContent .fas{margin-right:.25em}.theme-paper .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:focus,.theme-paper .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:focus,.theme-paper .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:focus,.theme-paper .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:hsla(0,0%,100%,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:focus,.theme-paper .Button--color--transparent:hover{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:focus,.theme-paper .Button--selected:hover{background-color:#b31212;color:#fff}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Layout__content--scrollable{overflow-y:auto}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;background-color:#fff;background-image:linear-gradient(180deg,#fff 0,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:hsla(0,0%,100%,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s,background-color .25s}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-paper .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-paper .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .PaperInput{position:relative;display:inline-block;width:120px;background:transparent;border:none;border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:transparent}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-paper .Layout__content,.theme-paper .Window{background-image:none}.theme-paper .Window{color:#000}.theme-paper .paper-field,.theme-paper .paper-field input:disabled,.theme-paper .paper-text input,.theme-paper .paper-text input:disabled{position:relative;display:inline-block;background:transparent;border:none;border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-retro .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0}.theme-retro .Button .fa,.theme-retro .Button .far,.theme-retro .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .far,.theme-retro .Button--hasContent .fas{margin-right:.25em}.theme-retro .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:focus,.theme-retro .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:focus,.theme-retro .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:focus,.theme-retro .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:hsla(0,0%,100%,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:focus,.theme-retro .Button--color--transparent:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:focus,.theme-retro .Button--selected:hover{background-color:#b31212;color:#fff}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__title{padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--fill .Section__content{flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-retro .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-retro .Section--level--3 .Section__titleText{font-size:1em}.theme-retro .Section--level--2,.theme-retro .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Layout__content--scrollable{overflow-y:auto}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(180deg,#e8e4c9 0,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#585337;transition:color .25s,background-color .25s}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .far,.theme-syndicate .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .far,.theme-syndicate .Button--hasContent .fas{margin-right:.25em}.theme-syndicate .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:focus,.theme-syndicate .Button--color--default:hover{background-color:#478647;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:focus,.theme-syndicate .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:focus,.theme-syndicate .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:hsla(0,0%,100%,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:focus,.theme-syndicate .Button--color--transparent:hover{background-color:#650c0c;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:focus,.theme-syndicate .Button--selected:hover{background-color:#b31212;color:#fff}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:transparent}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__title{padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--fill .Section__content{flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-syndicate .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section--level--3 .Section__titleText{font-size:1em}.theme-syndicate .Section--level--2,.theme-syndicate .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-syndicate .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#4a0202;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.theme-syndicate .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-syndicate .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-syndicate .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-syndicate .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-syndicate .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-syndicate .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-syndicate .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-syndicate .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-syndicate .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-syndicate .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-syndicate .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-syndicate .Tooltip--left:hover:after,.theme-syndicate .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-syndicate .Tooltip--right:after{top:50%;left:100%}.theme-syndicate .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;margin:.5em}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Layout__content--scrollable{overflow-y:auto}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(180deg,#730303 0,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#910101;transition:color .25s,background-color .25s}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-syndicate .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDIwMCAyODkuNzQyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGQ9Ik05My41MzggMGMtMTguMTEzIDAtMzQuMjIgMy4xMTItNDguMzI0IDkuMzM0LTEzLjk2NSA2LjIyMi0yNC42MTIgMTUuMDcyLTMxLjk0IDI2LjU0N0M2LjA4NCA0Ny4yMiAyLjk3MiA2MC42MzEgMi45NzIgNzYuMTE2YzAgMTAuNjQ3IDIuNzI1IDIwLjQ2NSA4LjE3NSAyOS40NTMgNS42MTYgOC45ODcgMTQuMDM5IDE3LjM1MiAyNS4yNyAyNS4wOTQgMTEuMjMgNy42MDYgMjYuNTA3IDE1LjQxOSA0NS44MyAyMy40MzggMTkuOTg0IDguMjk2IDM0Ljg0OSAxNS41NTUgNDQuNTkzIDIxLjc3NiA5Ljc0NCA2LjIyMyAxNi43NjEgMTIuODU5IDIxLjA1NSAxOS45MSA0LjI5NSA3LjA1MiA2LjQ0MiAxNS43NjQgNi40NDIgMjYuMTM0IDAgMTYuMTc4LTUuMjAyIDI4LjQ4My0xNS42MDYgMzYuOTE3LTEwLjI0IDguNDM1LTI1LjAyMiAxMi42NTMtNDQuMzQ1IDEyLjY1My0xNC4wMzkgMC0yNS41MTYtMS42Ni0zNC40MzQtNC45NzgtOC45MTgtMy40NTctMTYuMTg2LTguNzExLTIxLjgtMTUuNzYzLTUuNjE2LTcuMDUyLTEwLjA3Ni0xNi42NjEtMTMuMzc5LTI4LjgyOUgwdjU2LjgyN2MzMy44NTcgNy4zMjggNjMuNzQ5IDEwLjk5NCA4OS42NzggMTAuOTk0IDE2LjAyIDAgMzAuNzItMS4zODMgNDQuMDk4LTQuMTQ4IDEzLjU0Mi0yLjkwNCAyNS4xMDQtNy40NjcgMzQuNjgzLTEzLjY5IDkuNzQ0LTYuMzU5IDE3LjM0LTE0LjUxOSAyMi43OS0yNC40NzQgNS40NS0xMC4wOTMgOC4xNzUtMjIuNCA4LjE3NS0zNi45MTcgMC0xMi45OTctMy4zMDItMjQuMzM1LTkuOTA4LTM0LjAxNC02LjQ0LTkuODE4LTE1LjUyNS0xOC41MjctMjcuMjUxLTI2LjEzMi0xMS41NjEtNy42MDQtMjcuOTExLTE1LjgzMS00OS4wNTEtMjQuNjgtMTcuNTA2LTcuMTktMzAuNzItMTMuNjktMzkuNjM4LTE5LjQ5N1M1NC45NjkgOTMuNzU2IDQ5LjQ3OSA4Ny4zMTZjLTUuNDI2LTYuMzY2LTkuNjU4LTE1LjA3LTkuNjU4LTI0Ljg4NyAwLTkuMjY0IDIuMDc1LTE3LjIxNCA2LjIyMy0yMy44NUM1Ny4xNDIgMjQuMTggODcuMzMxIDM2Ljc4MiA5MS4xMiA2Mi45MjVjNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NyAxMi4wMyAyOC40MTVoMjAuNTMydi01NmMtNC40NzktNS45MjQtOS45NTUtMTAuNjMxLTE1LjkwOS0xNC4zNzMgMS42NC40NzkgMy4xOSAxLjAyMyA0LjYzOSAxLjY0IDYuNDk4IDIuNjI2IDEyLjE2OCA3LjMyNyAxNy4wMDcgMTQuMTAzIDQuODQgNi43NzUgOC44NSAxNi4yNDYgMTIuMDMgMjguNDE0IDAgMCA4LjQ4LS4xMjkgOC40OS0uMDAyLjQxNyA2LjQxNS0xLjc1NCA5LjQ1My00LjEyNCAxMi41NjEtMi40MTcgMy4xNy01LjE0NSA2Ljc5LTQuMDAzIDEzLjAwMyAxLjUwOCA4LjIwMyAxMC4xODQgMTAuNTk3IDE0LjYyMiA5LjMxMi0zLjMxOC0uNS01LjMxOC0xLjc1LTUuMzE4LTEuNzVzMS44NzYuOTk5IDUuNjUtMS4zNmMtMy4yNzYuOTU2LTEwLjcwNC0uNzk3LTExLjgtNi43NjMtLjk1OC01LjIwOC45NDYtNy4yOTUgMy40LTEwLjUxNCAyLjQ1NS0zLjIyIDUuMjg1LTYuOTU5IDQuNjg1LTE0LjQ4OWwuMDAzLjAwMmg4LjkyN3YtNTZjLTE1LjA3Mi0zLjg3MS0yNy42NTMtNi4zNi0zNy43NDctNy40NjVDMTE0LjI3OS41NTIgMTA0LjA0NiAwIDkzLjUzNyAwem03MC4zMjEgMTcuMzA5bC4yMzggNDAuMzA1YzEuMzE4IDEuMjI2IDIuNDQgMi4yNzggMy4zNDEgMy4xMDYgNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NiAxMi4wMyAyOC40MTRIMjAwdi01NmMtNi42NzctNC41OTQtMTkuODM2LTEwLjQ3My0zNi4xNC0xNS44MjV6bS0yOC4xMiA1LjYwNWw4LjU2NSAxNy43MTdjLTExLjk3LTYuNDY3LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTd6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE3bDQuNDk0LTE3LjcxN3ptMTUuMjIyIDI0LjAwOWw4LjU2NSAxNy43MTZjLTExLjk3LTYuNDY2LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTZ6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE2bDQuNDk0LTE3LjcxNnpNOTcuNDQgNDkuMTNsOC41NjUgMTcuNzE2Yy0xMS45Ny02LjQ2Ny0xMy44NDctOS43MTctOC41NjUtMTcuNzE2em0yMi43OTUgMGMyLjc3MiA3Ljk5OSAxLjc4OCAxMS4yNS00LjQ5MyAxNy43MTZsNC40OTMtMTcuNzE2eiIvPjwvc3ZnPg==)}
\ No newline at end of file
+body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#0d0d0d!important}.color-white{color:#fff!important}.color-red{color:#d33!important}.color-orange{color:#f37827!important}.color-yellow{color:#fbd814!important}.color-olive{color:#c0d919!important}.color-green{color:#22be47!important}.color-teal{color:#00c5bd!important}.color-blue{color:#238cdc!important}.color-violet{color:#6c3fcc!important}.color-purple{color:#a93bcd!important}.color-pink{color:#e2439c!important}.color-brown{color:#af6d43!important}.color-grey{color:#7d7d7d!important}.color-good{color:#62b62a!important}.color-average{color:#f1951d!important}.color-bad{color:#d33!important}.color-label{color:#8496ab!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #0d0d0d!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #d33!important}.outline-color-orange{outline:.167rem solid #f37827!important}.outline-color-yellow{outline:.167rem solid #fbd814!important}.outline-color-olive{outline:.167rem solid #c0d919!important}.outline-color-green{outline:.167rem solid #22be47!important}.outline-color-teal{outline:.167rem solid #00c5bd!important}.outline-color-blue{outline:.167rem solid #238cdc!important}.outline-color-violet{outline:.167rem solid #6c3fcc!important}.outline-color-purple{outline:.167rem solid #a93bcd!important}.outline-color-pink{outline:.167rem solid #e2439c!important}.outline-color-brown{outline:.167rem solid #af6d43!important}.outline-color-grey{outline:.167rem solid #7d7d7d!important}.outline-color-good{outline:.167rem solid #62b62a!important}.outline-color-average{outline:.167rem solid #f1951d!important}.outline-color-bad{outline:.167rem solid #d33!important}.outline-color-label{outline:.167rem solid #8496ab!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8496ab;border-left:.1666666667em solid #8496ab;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0}.Button .fa,.Button .far,.Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:.25em}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#323232;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5px 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 .5px}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.5em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:#444;transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table!important}.Flex--iefix--column{display:block!important}.Flex--iefix--column>.Flex__item{display:block!important;margin-left:.5em;margin-right:.5em}.Flex__item--iefix{display:table-cell!important}.Flex--spacing--1{margin:0 -.25em}.Flex--spacing--1>.Flex__item{margin:0 .25em}.Flex--spacingPrecise--1{margin:-1px}.Flex--spacingPrecise--1>.Flex__item{margin:1px}.Flex--spacing--2{margin:0 -.5em}.Flex--spacing--2>.Flex__item{margin:0 .5em}.Flex--spacingPrecise--2{margin:-2px}.Flex--spacingPrecise--2>.Flex__item{margin:2px}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue,.Knob__popupValue--right{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__popupValue--right{top:.25rem;right:-50%}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#0d0d0d}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#d33}.Knob--color--orange .Knob__ringFill{stroke:#f37827}.Knob--color--yellow .Knob__ringFill{stroke:#fbd814}.Knob--color--olive .Knob__ringFill{stroke:#c0d919}.Knob--color--green .Knob__ringFill{stroke:#22be47}.Knob--color--teal .Knob__ringFill{stroke:#00c5bd}.Knob--color--blue .Knob__ringFill{stroke:#238cdc}.Knob--color--violet .Knob__ringFill{stroke:#6c3fcc}.Knob--color--purple .Knob__ringFill{stroke:#a93bcd}.Knob--color--pink .Knob__ringFill{stroke:#e2439c}.Knob--color--brown .Knob__ringFill{stroke:#af6d43}.Knob--color--grey .Knob__ringFill{stroke:#7d7d7d}.Knob--color--good .Knob__ringFill{stroke:#62b62a}.Knob--color--average .Knob__ringFill{stroke:#f1951d}.Knob--color--bad .Knob__ringFill{stroke:#d33}.Knob--color--label .Knob__ringFill{stroke:#8496ab}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hidden;width:100%;height:100vh;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__title{padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__content{padding:.66em .5em}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.Section--fill .Section__content{flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Section--level--1 .Section__titleText{font-size:1.1666666667em}.Section--level--2 .Section__titleText{font-size:1.0833333333em}.Section--level--3 .Section__titleText{font-size:1em}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs--horizontal{border-bottom:.1666666667em solid hsla(0,0%,100%,.1);margin-bottom:.5em}.Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:.1666666667em;width:100%;background-color:#fff;border-radius:.16em}.Tabs--vertical{margin-right:.75em}.Tabs--vertical .Tabs__tabBox{border-right:.1666666667em solid hsla(0,0%,100%,.1);vertical-align:top}.Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:.0833333333em .75em 0 .5em;border-bottom:.1666666667em solid hsla(0,0%,100%,.1)}.Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:.25em;background-color:#fff;border-radius:.16em}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:20.8333333333em;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.Tooltip--scale--1:after{top:30%;left:50%}.Tooltip--scale--1:after,.Tooltip--scale--1:hover:after{transform:translateX(-50%) scale(1)}.Tooltip--scale--2:after{top:30%;left:50%}.Tooltip--scale--2:after,.Tooltip--scale--2:hover:after{transform:translateX(-50%) scale(.5)}.Tooltip--scale--3:after{top:30%;left:50%}.Tooltip--scale--3:after,.Tooltip--scale--3:hover:after{transform:translateX(-50%) scale(.3333333333)}.Tooltip--scale--4:after{top:30%;left:50%}.Tooltip--scale--4:after,.Tooltip--scale--4:hover:after{transform:translateX(-50%) scale(.25)}.Tooltip--scale--5:after{top:30%;left:50%}.Tooltip--scale--5:after,.Tooltip--scale--5:hover:after{transform:translateX(-50%) scale(.2)}.Tooltip--scale--6:after{top:30%;left:50%}.Tooltip--scale--6:after,.Tooltip--scale--6:hover:after{transform:translateX(-50%) scale(.1666666667)}.Tooltip--scale--7:after{top:30%;left:50%}.Tooltip--scale--7:after,.Tooltip--scale--7:hover:after{transform:translateX(-50%) scale(.1428571429)}.Tooltip--scale--8:after{top:30%;left:50%}.Tooltip--scale--8:after,.Tooltip--scale--8:hover:after{transform:translateX(-50%) scale(.125)}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{left:0;margin:.25em 1em 0}.CameraConsole__toolbar,.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em}.CameraConsole__toolbarRight{margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.Roulette{font-family:Palatino}.Roulette__board{display:table;width:100%;border-collapse:collapse;border:2px solid #fff;margin:0}.Roulette__board-row{padding:0;margin:0}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:2px solid #fff;font-family:Palatino}.Roulette__board-cell:first-child{padding-left:0}.Roulette__board-cell:last-child{padding-right:0}.Roulette__board-extrabutton{text-align:center;font-size:20px;font-weight:700;height:28px;border:none!important;margin:0!important;padding-top:4px!important;color:#fff!important}.Roulette__lowertable{margin-top:8px;margin-left:80px;margin-right:80px;border-collapse:collapse;border:2px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:20px;font-weight:700}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.Layout__content--scrollable{overflow-y:auto}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content>.Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#363636;transition:color .25s,background-color .25s}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.TitleBar__statusIcon{top:0;left:12px;left:1rem;transition:color .5s;line-height:32px!important;line-height:2.6666666667rem!important}.TitleBar__close,.TitleBar__statusIcon{position:absolute;font-size:20px;font-size:1.6666666667rem}.TitleBar__close{top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.Window{bottom:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(180deg,#2a2a2a 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQyNSAyMDAiIG9wYWNpdHk9Ii4zMyI+PHBhdGggZD0iTTE3OC4wMDQuMDM5SDEwNi44YTYuNzYxIDYuMDI2IDAgMDAtNi43NjEgNi4wMjV2MTg3Ljg3MmE2Ljc2MSA2LjAyNiAwIDAwNi43NjEgNi4wMjVoNTMuMTA3YTYuNzYxIDYuMDI2IDAgMDA2Ljc2Mi02LjAyNVY5Mi4zOTJsNzIuMjE2IDEwNC43YTYuNzYxIDYuMDI2IDAgMDA1Ljc2IDIuODdIMzE4LjJhNi43NjEgNi4wMjYgMCAwMDYuNzYxLTYuMDI2VjYuMDY0QTYuNzYxIDYuMDI2IDAgMDAzMTguMi4wNGgtNTQuNzE3YTYuNzYxIDYuMDI2IDAgMDAtNi43NiA2LjAyNXYxMDIuNjJMMTgzLjc2MyAyLjkwOWE2Ljc2MSA2LjAyNiAwIDAwLTUuNzYtMi44N3pNNC44NDUgMjIuMTA5QTEzLjQxMiAxMi41MDIgMCAwMTEzLjQ3OC4wMzloNjYuMTE4QTUuMzY1IDUgMCAwMTg0Ljk2IDUuMDR2NzkuODh6TTQyMC4xNTUgMTc3Ljg5MWExMy40MTIgMTIuNTAyIDAgMDEtOC42MzMgMjIuMDdoLTY2LjExOGE1LjM2NSA1IDAgMDEtNS4zNjUtNS4wMDF2LTc5Ljg4eiIvPjwvc3ZnPg==);background-size:70%;background-position:50%;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0}.theme-abductor .Button .fa,.theme-abductor .Button .far,.theme-abductor .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .far,.theme-abductor .Button--hasContent .fas{margin-right:.25em}.theme-abductor .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:focus,.theme-abductor .Button--color--default:hover{background-color:#c42f60;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:focus,.theme-abductor .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:focus,.theme-abductor .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:hsla(0,0%,100%,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:focus,.theme-abductor .Button--color--transparent:hover{background-color:#373e59;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:focus,.theme-abductor .Button--selected:hover{background-color:#5569ad;color:#fff}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:transparent}.theme-abductor .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__title{padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-abductor .Section--fill .Section__content{flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-abductor .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section--level--3 .Section__titleText{font-size:1em}.theme-abductor .Section--level--2,.theme-abductor .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-abductor .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-abductor .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#a82d55;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px}.theme-abductor .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-abductor .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-abductor .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-abductor .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-abductor .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-abductor .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-abductor .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-abductor .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-abductor .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-abductor .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-abductor .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-abductor .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-abductor .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-abductor .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-abductor .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-abductor .Tooltip--left:hover:after,.theme-abductor .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-abductor .Tooltip--right:after{top:50%;left:100%}.theme-abductor .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-abductor .Tooltip--scale--1:after{top:30%;left:50%;transform:translateX(-50%) scale(1)}.theme-abductor .Tooltip--scale--1:hover:after{transform:translateX(-50%) scale(1)}.theme-abductor .Tooltip--scale--2:after{top:30%;left:50%;transform:translateX(-50%) scale(.5)}.theme-abductor .Tooltip--scale--2:hover:after{transform:translateX(-50%) scale(.5)}.theme-abductor .Tooltip--scale--3:after{top:30%;left:50%}.theme-abductor .Tooltip--scale--3:after,.theme-abductor .Tooltip--scale--3:hover:after{transform:translateX(-50%) scale(.3333333333)}.theme-abductor .Tooltip--scale--4:after{top:30%;left:50%;transform:translateX(-50%) scale(.25)}.theme-abductor .Tooltip--scale--4:hover:after{transform:translateX(-50%) scale(.25)}.theme-abductor .Tooltip--scale--5:after{top:30%;left:50%;transform:translateX(-50%) scale(.2)}.theme-abductor .Tooltip--scale--5:hover:after{transform:translateX(-50%) scale(.2)}.theme-abductor .Tooltip--scale--6:after{top:30%;left:50%}.theme-abductor .Tooltip--scale--6:after,.theme-abductor .Tooltip--scale--6:hover:after{transform:translateX(-50%) scale(.1666666667)}.theme-abductor .Tooltip--scale--7:after{top:30%;left:50%}.theme-abductor .Tooltip--scale--7:after,.theme-abductor .Tooltip--scale--7:hover:after{transform:translateX(-50%) scale(.1428571429)}.theme-abductor .Tooltip--scale--8:after{top:30%;left:50%;transform:translateX(-50%) scale(.125)}.theme-abductor .Tooltip--scale--8:hover:after{transform:translateX(-50%) scale(.125)}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Layout__content--scrollable{overflow-y:auto}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(180deg,#353e5e 0,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-abductor .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#9e1b46;transition:color .25s,background-color .25s}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-abductor .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-abductor .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .far,.theme-cardtable .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .far,.theme-cardtable .Button--hasContent .fas{margin-right:.25em}.theme-cardtable .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:focus,.theme-cardtable .Button--color--default:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:focus,.theme-cardtable .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:focus,.theme-cardtable .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:hsla(0,0%,100%,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:focus,.theme-cardtable .Button--color--transparent:hover{background-color:#1c8247;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:focus,.theme-cardtable .Button--selected:hover{background-color:#b31212;color:#fff}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:transparent}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid hsla(0,0%,100%,.75);border-radius:0;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__title{padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-cardtable .Section--fill .Section__content{flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-cardtable .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section--level--3 .Section__titleText{font-size:1em}.theme-cardtable .Section--level--2,.theme-cardtable .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Layout__content--scrollable{overflow-y:auto}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(180deg,#117039 0,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#381608;transition:color .25s,background-color .25s}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-cardtable .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .far,.theme-hackerman .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .far,.theme-hackerman .Button--hasContent .fas{margin-right:.25em}.theme-hackerman .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:focus,.theme-hackerman .Button--color--default:hover{background-color:#26ff26;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:focus,.theme-hackerman .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:focus,.theme-hackerman .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:hsla(0,0%,100%,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:focus,.theme-hackerman .Button--color--transparent:hover{background-color:#1d271d;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:focus,.theme-hackerman .Button--selected:hover{background-color:#26ff26;color:#000}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #0f0;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:transparent}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__title{padding:.5em;border-bottom:.1666666667em solid #0f0}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-hackerman .Section--fill .Section__content{flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-hackerman .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section--level--3 .Section__titleText{font-size:1em}.theme-hackerman .Section--level--2,.theme-hackerman .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Layout__content--scrollable{overflow-y:auto}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(180deg,#121b12 0,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#223d22;transition:color .25s,background-color .25s}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-hackerman .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border:.1666666667em outset #0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .far,.theme-malfunction .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .far,.theme-malfunction .Button--hasContent .fas{margin-right:.25em}.theme-malfunction .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:focus,.theme-malfunction .Button--color--default:hover{background-color:#a60b0b;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:focus,.theme-malfunction .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:focus,.theme-malfunction .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:hsla(0,0%,100%,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:focus,.theme-malfunction .Button--color--transparent:hover{background-color:#274252;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:focus,.theme-malfunction .Button--selected:hover{background-color:#2a6894;color:#fff}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:transparent}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__title{padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-malfunction .Section--fill .Section__content{flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-malfunction .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section--level--3 .Section__titleText{font-size:1em}.theme-malfunction .Section--level--2,.theme-malfunction .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-malfunction .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#235577;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.theme-malfunction .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-malfunction .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-malfunction .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-malfunction .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-malfunction .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-malfunction .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-malfunction .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-malfunction .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-malfunction .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-malfunction .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-malfunction .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-malfunction .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-malfunction .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-malfunction .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-malfunction .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-malfunction .Tooltip--left:hover:after,.theme-malfunction .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-malfunction .Tooltip--right:after{top:50%;left:100%}.theme-malfunction .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-malfunction .Tooltip--scale--1:after{top:30%;left:50%;transform:translateX(-50%) scale(1)}.theme-malfunction .Tooltip--scale--1:hover:after{transform:translateX(-50%) scale(1)}.theme-malfunction .Tooltip--scale--2:after{top:30%;left:50%;transform:translateX(-50%) scale(.5)}.theme-malfunction .Tooltip--scale--2:hover:after{transform:translateX(-50%) scale(.5)}.theme-malfunction .Tooltip--scale--3:after{top:30%;left:50%}.theme-malfunction .Tooltip--scale--3:after,.theme-malfunction .Tooltip--scale--3:hover:after{transform:translateX(-50%) scale(.3333333333)}.theme-malfunction .Tooltip--scale--4:after{top:30%;left:50%;transform:translateX(-50%) scale(.25)}.theme-malfunction .Tooltip--scale--4:hover:after{transform:translateX(-50%) scale(.25)}.theme-malfunction .Tooltip--scale--5:after{top:30%;left:50%;transform:translateX(-50%) scale(.2)}.theme-malfunction .Tooltip--scale--5:hover:after{transform:translateX(-50%) scale(.2)}.theme-malfunction .Tooltip--scale--6:after{top:30%;left:50%}.theme-malfunction .Tooltip--scale--6:after,.theme-malfunction .Tooltip--scale--6:hover:after{transform:translateX(-50%) scale(.1666666667)}.theme-malfunction .Tooltip--scale--7:after{top:30%;left:50%}.theme-malfunction .Tooltip--scale--7:after,.theme-malfunction .Tooltip--scale--7:hover:after{transform:translateX(-50%) scale(.1428571429)}.theme-malfunction .Tooltip--scale--8:after{top:30%;left:50%;transform:translateX(-50%) scale(.125)}.theme-malfunction .Tooltip--scale--8:hover:after{transform:translateX(-50%) scale(.125)}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Layout__content--scrollable{overflow-y:auto}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(180deg,#244559 0,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#1a3f57;transition:color .25s,background-color .25s}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-malfunction .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-ntos .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0}.theme-ntos .Button .fa,.theme-ntos .Button .far,.theme-ntos .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .far,.theme-ntos .Button--hasContent .fas{margin-right:.25em}.theme-ntos .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:focus,.theme-ntos .Button--color--default:hover{background-color:#465e7a;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:focus,.theme-ntos .Button--color--caution:hover{background-color:#f3d00e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:focus,.theme-ntos .Button--color--danger:hover{background-color:#d52b2b;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:focus,.theme-ntos .Button--color--transparent:hover{background-color:#2b3847;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:focus,.theme-ntos .Button--selected:hover{background-color:#27ab46;color:#fff}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__title{padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-ntos .Section--fill .Section__content{flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-ntos .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section--level--3 .Section__titleText{font-size:1em}.theme-ntos .Section--level--2,.theme-ntos .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Layout__content--scrollable{overflow-y:auto}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(180deg,#223040 0,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#2a3b4e;transition:color .25s,background-color .25s}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-ntos .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .Tabs--horizontal{border-bottom:.1666666667em solid hsla(0,0%,100%,.1);margin-bottom:.5em}.theme-paper .Tabs--horizontal .Tabs__tab--altSelection:after{content:"";position:absolute;bottom:0;right:0;left:0;height:.1666666667em;width:100%;background-color:#fff;border-radius:.16em}.theme-paper .Tabs--vertical{margin-right:.75em}.theme-paper .Tabs--vertical .Tabs__tabBox{border-right:.1666666667em solid hsla(0,0%,100%,.1);vertical-align:top}.theme-paper .Tabs--vertical .Tabs__tab{display:block!important;margin-right:0!important;margin-bottom:0;padding:.0833333333em .75em 0 .5em;border-bottom:.1666666667em solid hsla(0,0%,100%,.1)}.theme-paper .Tabs--vertical .Tabs__tab:last-child{border-bottom:0}.theme-paper .Tabs--vertical .Tabs__tab--altSelection:after{content:"";position:absolute;top:0;bottom:0;right:0;height:100%;width:.25em;background-color:#fff;border-radius:.16em}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.1);box-shadow:inset 0 0 5px rgba(0,0,0,.2);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__title{padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-paper .Section--fill .Section__content{flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-paper .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-paper .Section--level--3 .Section__titleText{font-size:1em}.theme-paper .Section--level--2,.theme-paper .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-paper .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-paper .Button:last-child{margin-right:0}.theme-paper .Button .fa,.theme-paper .Button .far,.theme-paper .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .far,.theme-paper .Button--hasContent .fas{margin-right:.25em}.theme-paper .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:focus,.theme-paper .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:focus,.theme-paper .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:focus,.theme-paper .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:hsla(0,0%,100%,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:focus,.theme-paper .Button--color--transparent:hover{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:focus,.theme-paper .Button--selected:hover{background-color:#b31212;color:#fff}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Layout__content--scrollable{overflow-y:auto}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;background-color:#fff;background-image:linear-gradient(180deg,#fff 0,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:hsla(0,0%,100%,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s,background-color .25s}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-paper .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-paper .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .PaperInput{position:relative;display:inline-block;width:120px;background:transparent;border:none;border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:transparent}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-paper .Layout__content,.theme-paper .Window{background-image:none}.theme-paper .Window{color:#000}.theme-paper .paper-field,.theme-paper .paper-field input:disabled,.theme-paper .paper-text input,.theme-paper .paper-text input:disabled{position:relative;display:inline-block;background:transparent;border:none;border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-retro .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0}.theme-retro .Button .fa,.theme-retro .Button .far,.theme-retro .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .far,.theme-retro .Button--hasContent .fas{margin-right:.25em}.theme-retro .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:focus,.theme-retro .Button--color--default:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:focus,.theme-retro .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:focus,.theme-retro .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:hsla(0,0%,100%,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:focus,.theme-retro .Button--color--transparent:hover{background-color:#f7f6ee;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:focus,.theme-retro .Button--selected:hover{background-color:#b31212;color:#fff}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__title{padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-retro .Section--fill .Section__content{flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-retro .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-retro .Section--level--3 .Section__titleText{font-size:1em}.theme-retro .Section--level--2,.theme-retro .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Layout__content--scrollable{overflow-y:auto}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(180deg,#e8e4c9 0,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#585337;transition:color .25s,background-color .25s}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .Button{position:relative;display:inline-block;line-height:1.6666666667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .far,.theme-syndicate .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.3333333333em;text-align:center}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .far,.theme-syndicate .Button--hasContent .fas{margin-right:.25em}.theme-syndicate .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:focus,.theme-syndicate .Button--color--default:hover{background-color:#478647;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:focus,.theme-syndicate .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:focus,.theme-syndicate .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:hsla(0,0%,100%,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:focus,.theme-syndicate .Button--color--transparent:hover{background-color:#650c0c;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:focus,.theme-syndicate .Button--selected:hover{background-color:#b31212;color:#fff}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:transparent}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#000;background-color:rgba(0,0,0,.75);padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#000;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .5s}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#1a1a1a;background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__title{padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--scrollable .Section__content{overflow-y:auto;height:100%;overflow-x:hidden}.theme-syndicate .Section--fill .Section__content{flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-syndicate .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section--level--3 .Section__titleText{font-size:1em}.theme-syndicate .Section--level--2,.theme-syndicate .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.theme-syndicate .Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#4a0202;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.theme-syndicate .Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.theme-syndicate .Tooltip--long:after{width:20.8333333333em;white-space:normal}.theme-syndicate .Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.theme-syndicate .Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.theme-syndicate .Tooltip--top-left:after{bottom:100%;right:50%;transform:translateX(12px) translateY(-8px)}.theme-syndicate .Tooltip--top-left:hover:after{transform:translateX(12px) translateY(8px)}.theme-syndicate .Tooltip--top-right:after{bottom:100%;left:50%;transform:translateX(-12px) translateY(-8px)}.theme-syndicate .Tooltip--top-right:hover:after{transform:translateX(-12px) translateY(8px)}.theme-syndicate .Tooltip--bottom:after{top:100%;left:50%;transform:translateX(-50%) translateY(-.5em)}.theme-syndicate .Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.theme-syndicate .Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.theme-syndicate .Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.theme-syndicate .Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.theme-syndicate .Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.theme-syndicate .Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.theme-syndicate .Tooltip--left:hover:after,.theme-syndicate .Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.theme-syndicate .Tooltip--right:after{top:50%;left:100%}.theme-syndicate .Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.theme-syndicate .Tooltip--scale--1:after{top:30%;left:50%;transform:translateX(-50%) scale(1)}.theme-syndicate .Tooltip--scale--1:hover:after{transform:translateX(-50%) scale(1)}.theme-syndicate .Tooltip--scale--2:after{top:30%;left:50%;transform:translateX(-50%) scale(.5)}.theme-syndicate .Tooltip--scale--2:hover:after{transform:translateX(-50%) scale(.5)}.theme-syndicate .Tooltip--scale--3:after{top:30%;left:50%}.theme-syndicate .Tooltip--scale--3:after,.theme-syndicate .Tooltip--scale--3:hover:after{transform:translateX(-50%) scale(.3333333333)}.theme-syndicate .Tooltip--scale--4:after{top:30%;left:50%;transform:translateX(-50%) scale(.25)}.theme-syndicate .Tooltip--scale--4:hover:after{transform:translateX(-50%) scale(.25)}.theme-syndicate .Tooltip--scale--5:after{top:30%;left:50%;transform:translateX(-50%) scale(.2)}.theme-syndicate .Tooltip--scale--5:hover:after{transform:translateX(-50%) scale(.2)}.theme-syndicate .Tooltip--scale--6:after{top:30%;left:50%}.theme-syndicate .Tooltip--scale--6:after,.theme-syndicate .Tooltip--scale--6:hover:after{transform:translateX(-50%) scale(.1666666667)}.theme-syndicate .Tooltip--scale--7:after{top:30%;left:50%}.theme-syndicate .Tooltip--scale--7:after,.theme-syndicate .Tooltip--scale--7:hover:after{transform:translateX(-50%) scale(.1428571429)}.theme-syndicate .Tooltip--scale--8:after{top:30%;left:50%;transform:translateX(-50%) scale(.125)}.theme-syndicate .Tooltip--scale--8:hover:after{transform:translateX(-50%) scale(.125)}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Layout__content--scrollable{overflow-y:auto}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(180deg,#730303 0,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:hsla(0,0%,100%,.5);background-color:#910101;transition:color .25s,background-color .25s}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:hsla(0,0%,100%,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-syndicate .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDIwMCAyODkuNzQyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGQ9Ik05My41MzggMGMtMTguMTEzIDAtMzQuMjIgMy4xMTItNDguMzI0IDkuMzM0LTEzLjk2NSA2LjIyMi0yNC42MTIgMTUuMDcyLTMxLjk0IDI2LjU0N0M2LjA4NCA0Ny4yMiAyLjk3MiA2MC42MzEgMi45NzIgNzYuMTE2YzAgMTAuNjQ3IDIuNzI1IDIwLjQ2NSA4LjE3NSAyOS40NTMgNS42MTYgOC45ODcgMTQuMDM5IDE3LjM1MiAyNS4yNyAyNS4wOTQgMTEuMjMgNy42MDYgMjYuNTA3IDE1LjQxOSA0NS44MyAyMy40MzggMTkuOTg0IDguMjk2IDM0Ljg0OSAxNS41NTUgNDQuNTkzIDIxLjc3NiA5Ljc0NCA2LjIyMyAxNi43NjEgMTIuODU5IDIxLjA1NSAxOS45MSA0LjI5NSA3LjA1MiA2LjQ0MiAxNS43NjQgNi40NDIgMjYuMTM0IDAgMTYuMTc4LTUuMjAyIDI4LjQ4My0xNS42MDYgMzYuOTE3LTEwLjI0IDguNDM1LTI1LjAyMiAxMi42NTMtNDQuMzQ1IDEyLjY1My0xNC4wMzkgMC0yNS41MTYtMS42Ni0zNC40MzQtNC45NzgtOC45MTgtMy40NTctMTYuMTg2LTguNzExLTIxLjgtMTUuNzYzLTUuNjE2LTcuMDUyLTEwLjA3Ni0xNi42NjEtMTMuMzc5LTI4LjgyOUgwdjU2LjgyN2MzMy44NTcgNy4zMjggNjMuNzQ5IDEwLjk5NCA4OS42NzggMTAuOTk0IDE2LjAyIDAgMzAuNzItMS4zODMgNDQuMDk4LTQuMTQ4IDEzLjU0Mi0yLjkwNCAyNS4xMDQtNy40NjcgMzQuNjgzLTEzLjY5IDkuNzQ0LTYuMzU5IDE3LjM0LTE0LjUxOSAyMi43OS0yNC40NzQgNS40NS0xMC4wOTMgOC4xNzUtMjIuNCA4LjE3NS0zNi45MTcgMC0xMi45OTctMy4zMDItMjQuMzM1LTkuOTA4LTM0LjAxNC02LjQ0LTkuODE4LTE1LjUyNS0xOC41MjctMjcuMjUxLTI2LjEzMi0xMS41NjEtNy42MDQtMjcuOTExLTE1LjgzMS00OS4wNTEtMjQuNjgtMTcuNTA2LTcuMTktMzAuNzItMTMuNjktMzkuNjM4LTE5LjQ5N1M1NC45NjkgOTMuNzU2IDQ5LjQ3OSA4Ny4zMTZjLTUuNDI2LTYuMzY2LTkuNjU4LTE1LjA3LTkuNjU4LTI0Ljg4NyAwLTkuMjY0IDIuMDc1LTE3LjIxNCA2LjIyMy0yMy44NUM1Ny4xNDIgMjQuMTggODcuMzMxIDM2Ljc4MiA5MS4xMiA2Mi45MjVjNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NyAxMi4wMyAyOC40MTVoMjAuNTMydi01NmMtNC40NzktNS45MjQtOS45NTUtMTAuNjMxLTE1LjkwOS0xNC4zNzMgMS42NC40NzkgMy4xOSAxLjAyMyA0LjYzOSAxLjY0IDYuNDk4IDIuNjI2IDEyLjE2OCA3LjMyNyAxNy4wMDcgMTQuMTAzIDQuODQgNi43NzUgOC44NSAxNi4yNDYgMTIuMDMgMjguNDE0IDAgMCA4LjQ4LS4xMjkgOC40OS0uMDAyLjQxNyA2LjQxNS0xLjc1NCA5LjQ1My00LjEyNCAxMi41NjEtMi40MTcgMy4xNy01LjE0NSA2Ljc5LTQuMDAzIDEzLjAwMyAxLjUwOCA4LjIwMyAxMC4xODQgMTAuNTk3IDE0LjYyMiA5LjMxMi0zLjMxOC0uNS01LjMxOC0xLjc1LTUuMzE4LTEuNzVzMS44NzYuOTk5IDUuNjUtMS4zNmMtMy4yNzYuOTU2LTEwLjcwNC0uNzk3LTExLjgtNi43NjMtLjk1OC01LjIwOC45NDYtNy4yOTUgMy40LTEwLjUxNCAyLjQ1NS0zLjIyIDUuMjg1LTYuOTU5IDQuNjg1LTE0LjQ4OWwuMDAzLjAwMmg4LjkyN3YtNTZjLTE1LjA3Mi0zLjg3MS0yNy42NTMtNi4zNi0zNy43NDctNy40NjVDMTE0LjI3OS41NTIgMTA0LjA0NiAwIDkzLjUzNyAwem03MC4zMjEgMTcuMzA5bC4yMzggNDAuMzA1YzEuMzE4IDEuMjI2IDIuNDQgMi4yNzggMy4zNDEgMy4xMDYgNC44NCA2Ljc3NSA4Ljg1IDE2LjI0NiAxMi4wMyAyOC40MTRIMjAwdi01NmMtNi42NzctNC41OTQtMTkuODM2LTEwLjQ3My0zNi4xNC0xNS44MjV6bS0yOC4xMiA1LjYwNWw4LjU2NSAxNy43MTdjLTExLjk3LTYuNDY3LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTd6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE3bDQuNDk0LTE3LjcxN3ptMTUuMjIyIDI0LjAwOWw4LjU2NSAxNy43MTZjLTExLjk3LTYuNDY2LTEzLjg0Ny05LjcxNy04LjU2NS0xNy43MTZ6bTIyLjc5NyAwYzIuNzcxIDggMS43ODcgMTEuMjUtNC40OTQgMTcuNzE2bDQuNDk0LTE3LjcxNnpNOTcuNDQgNDkuMTNsOC41NjUgMTcuNzE2Yy0xMS45Ny02LjQ2Ny0xMy44NDctOS43MTctOC41NjUtMTcuNzE2em0yMi43OTUgMGMyLjc3MiA3Ljk5OSAxLjc4OCAxMS4yNS00LjQ5MyAxNy43MTZsNC40OTMtMTcuNzE2eiIvPjwvc3ZnPg==)}
\ No newline at end of file
diff --git a/tgui/packages/tgui/public/tgui.bundle.js b/tgui/packages/tgui/public/tgui.bundle.js
index 6aae8d5e69..5f1d466f43 100644
--- a/tgui/packages/tgui/public/tgui.bundle.js
+++ b/tgui/packages/tgui/public/tgui.bundle.js
@@ -1,22 +1,22 @@
-!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=175)}([function(e,t,n){"use strict";var r=n(3),o=n(19).f,i=n(27),a=n(21),c=n(89),u=n(129),l=n(60);e.exports=function(e,t){var n,s,d,f,p,m=e.target,h=e.global,v=e.stat;if(n=h?r:v?r[m]||c(m,{}):(r[m]||{}).prototype)for(s in t){if(f=t[s],d=e.noTargetGet?(p=o(n,s))&&p.value:n[s],!l(h?s:m+(v?".":"#")+s,e.forced)&&d!==undefined){if(typeof f==typeof d)continue;u(f,d)}(e.sham||d&&d.sham)&&i(f,"sham",!0),a(n,s,f,e)}}},function(e,t,n){"use strict";t.__esModule=!0;var r=n(390);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=r[e])}))},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(69))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var r=n(2);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){"use strict";var r=n(4);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var r,o=n(103),i=n(5),a=n(3),c=n(4),u=n(16),l=n(73),s=n(27),d=n(21),f=n(12).f,p=n(33),m=n(49),h=n(10),v=n(57),g=a.Int8Array,b=g&&g.prototype,y=a.Uint8ClampedArray,C=y&&y.prototype,N=g&&p(g),x=b&&p(b),V=Object.prototype,w=V.isPrototypeOf,_=h("toStringTag"),k=v("TYPED_ARRAY_TAG"),S=o&&!!m&&"Opera"!==l(a.opera),E=!1,B={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},L=function(e){var t=l(e);return"DataView"===t||u(B,t)},I=function(e){return c(e)&&u(B,l(e))};for(r in B)a[r]||(S=!1);if((!S||"function"!=typeof N||N===Function.prototype)&&(N=function(){throw TypeError("Incorrect invocation")},S))for(r in B)a[r]&&m(a[r],N);if((!S||!x||x===V)&&(x=N.prototype,S))for(r in B)a[r]&&m(a[r].prototype,x);if(S&&p(C)!==x&&m(C,x),i&&!u(x,_))for(r in E=!0,f(x,_,{get:function(){return c(this)?this[k]:undefined}}),B)a[r]&&s(a[r],k,r);e.exports={NATIVE_ARRAY_BUFFER_VIEWS:S,TYPED_ARRAY_TAG:E&&k,aTypedArray:function(e){if(I(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(m){if(w.call(N,e))return e}else for(var t in B)if(u(B,r)){var n=a[t];if(n&&(e===n||w.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(i){if(n)for(var r in B){var o=a[r];o&&u(o.prototype,e)&&delete o.prototype[e]}x[e]&&!n||d(x,e,n?t:S&&b[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,o;if(i){if(m){if(n)for(r in B)(o=a[r])&&u(o,e)&&delete o[e];if(N[e]&&!n)return;try{return d(N,e,n?t:S&&g[e]||t)}catch(c){}}for(r in B)!(o=a[r])||o[e]&&!n||d(o,e,t)}},isView:L,isTypedArray:I,TypedArray:N,TypedArrayPrototype:x}},function(e,t,n){"use strict";var r=n(28),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n=0||(o[n]=e[n]);return o}(t,["payload"]),o=Object.assign({tgui:1,window_id:window.__windowId__},r);null!==n&&n!==undefined&&(o.payload=JSON.stringify(n)),Byond.topic(o)};t.sendMessage=l;var s=function(e,t){void 0===t&&(t={}),"object"!=typeof t||null===t||Array.isArray(t)?a.error("Payload for act() must be an object, got this:",t):l({type:"act/"+e,payload:t})};t.sendAct=s;var d=function(e){return e.backend||{}};t.selectBackend=d;t.useBackend=function(e){var t=e.store,n=d(t.getState());return Object.assign({},n,{act:s})};t.useLocalState=function(e,t,n){var r,o=e.store,i=null!=(r=d(o.getState()).shared)?r:{},a=t in i?i[t]:n;return[a,function(e){o.dispatch(c(t,"function"==typeof e?e(a):e))}]};t.useSharedState=function(e,t,n){var r,o=e.store,i=null!=(r=d(o.getState()).shared)?r:{},a=t in i?i[t]:n;return[a,function(e){l({type:"setSharedState",key:t,value:JSON.stringify("function"==typeof e?e(a):e)||""})}]}}).call(this,n(406).setImmediate)},function(e,t,n){"use strict";var r=n(5),o=n(126),i=n(6),a=n(31),c=Object.defineProperty;t.f=r?c:function(e,t,n){if(i(e),t=a(t,!0),i(n),o)try{return c(e,t,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=t.Tabs=t.Table=t.Slider=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.Modal=t.NanoMap=t.LabeledList=t.LabeledControls=t.Knob=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.DraggableControl=t.Divider=t.Dimmer=t.ColorBox=t.Collapsible=t.Chart=t.ByondUi=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var r=n(120);t.AnimatedNumber=r.AnimatedNumber;var o=n(416);t.BlockQuote=o.BlockQuote;var i=n(15);t.Box=i.Box;var a=n(121);t.Button=a.Button;var c=n(417);t.ByondUi=c.ByondUi;var u=n(419);t.Chart=u.Chart;var l=n(420);t.Collapsible=l.Collapsible;var s=n(421);t.ColorBox=s.ColorBox;var d=n(167);t.Dimmer=d.Dimmer;var f=n(168);t.Divider=f.Divider;var p=n(123);t.DraggableControl=p.DraggableControl;var m=n(422);t.Dropdown=m.Dropdown;var h=n(169);t.Flex=h.Flex;var v=n(423);t.Grid=v.Grid;var g=n(122);t.Icon=g.Icon;var b=n(424);t.Input=b.Input;var y=n(425);t.Knob=y.Knob;var C=n(426);t.LabeledControls=C.LabeledControls;var N=n(427);t.LabeledList=N.LabeledList;var x=n(428);t.NanoMap=x.NanoMap;var V=n(429);t.Modal=V.Modal;var w=n(430);t.NoticeBox=w.NoticeBox;var _=n(125);t.NumberInput=_.NumberInput;var k=n(431);t.ProgressBar=k.ProgressBar;var S=n(432);t.Section=S.Section;var E=n(433);t.Slider=E.Slider;var B=n(124);t.Table=B.Table;var L=n(434);t.Tabs=L.Tabs;var I=n(166);t.Tooltip=I.Tooltip},function(e,t,n){"use strict";var r=n(20);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxClassName=t.computeBoxProps=t.halfUnit=t.unit=void 0;var r=n(9),o=n(1),i=n(414),a=n(55);var c=function(e){return"string"==typeof e?e.endsWith("px")&&!Byond.IS_LTE_IE8?parseFloat(e)/12+"rem":e:"number"==typeof e?Byond.IS_LTE_IE8?12*e+"px":e+"rem":void 0};t.unit=c;var u=function(e){return"string"==typeof e?c(e):"number"==typeof e?c(.5*e):void 0};t.halfUnit=u;var l=function(e){return"string"==typeof e&&a.CSS_COLORS.includes(e)},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},d=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t(o))}},f=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},p=function(e,t,n){return function(o,i){if(!(0,r.isFalsy)(i))for(var a=0;a0&&(t.style=u),t};t.computeBoxProps=v;var g=function(e){var t=e.textColor||e.color,n=e.backgroundColor;return(0,r.classes)([l(t)&&"color-"+t,l(n)&&"color-bg-"+n])};t.computeBoxClassName=g;var b=function(e){var t=e.as,n=void 0===t?"div":t,r=e.className,a=e.children,c=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["as","className","children"]);if("function"==typeof a)return a(v(e));var u="string"==typeof r?r+" "+g(c):g(c),l=v(c);return(0,o.createVNode)(i.VNodeFlags.HtmlElement,n,u,a,i.ChildFlags.UnknownChildren,l)};t.Box=b,b.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Window=t.NtosWindow=t.refocusLayout=t.Layout=void 0;var r=n(119);t.Layout=r.Layout,t.refocusLayout=r.refocusLayout;var o=n(415);t.NtosWindow=o.NtosWindow;var i=n(170);t.Window=i.Window},function(e,t,n){"use strict";var r=n(47),o=n(56),i=n(14),a=n(8),c=n(62),u=[].push,l=function(e){var t=1==e,n=2==e,l=3==e,s=4==e,d=6==e,f=5==e||d;return function(p,m,h,v){for(var g,b,y=i(p),C=o(y),N=r(m,h,3),x=a(C.length),V=0,w=v||c,_=t?w(p,x):n?w(p,0):undefined;x>V;V++)if((f||V in C)&&(b=N(g=C[V],V,y),e))if(t)_[V]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return V;case 2:u.call(_,g)}else if(s)return!1;return d?-1:l||s?s:_}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},function(e,t,n){"use strict";var r=n(5),o=n(70),i=n(45),a=n(23),c=n(31),u=n(16),l=n(126),s=Object.getOwnPropertyDescriptor;t.f=r?s:function(e,t){if(e=a(e),t=c(t,!0),l)try{return s(e,t)}catch(n){}if(u(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(3),o=n(27),i=n(16),a=n(89),c=n(90),u=n(32),l=u.get,s=u.enforce,d=String(String).split("String");(e.exports=function(e,t,n,c){var u=!!c&&!!c.unsafe,l=!!c&&!!c.enumerable,f=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||i(n,"name")||o(n,"name",t),s(n).source=d.join("string"==typeof t?t:"")),e!==r?(u?!f&&e[t]&&(l=!0):delete e[t],l?e[t]=n:o(e,t,n)):l?e[t]=n:a(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||c(this)}))},function(e,t,n){"use strict";var r=n(5),o=n(2),i=n(16),a=Object.defineProperty,c={},u=function(e){throw e};e.exports=function(e,t){if(i(c,e))return c[e];t||(t={});var n=[][e],l=!!i(t,"ACCESSORS")&&t.ACCESSORS,s=i(t,0)?t[0]:u,d=i(t,1)?t[1]:undefined;return c[e]=!!n&&!o((function(){if(l&&!r)return!0;var e={length:-1};l?a(e,1,{enumerable:!0,get:u}):e[1]=1,n.call(e,s,d)}))}},function(e,t,n){"use strict";var r=n(56),o=n(20);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(130),o=n(16),i=n(136),a=n(12).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},function(e,t,n){"use strict";var r=n(20),o=/"/g;e.exports=function(e,t,n,i){var a=String(r(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(i).replace(o,""")+'"'),c+">"+a+""+t+">"}},function(e,t,n){"use strict";var r=n(2);e.exports=function(e){return r((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var r=n(5),o=n(12),i=n(45);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var r=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:r)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=n(4);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r,o,i,a=n(128),c=n(3),u=n(4),l=n(27),s=n(16),d=n(71),f=n(58),p=c.WeakMap;if(a){var m=new p,h=m.get,v=m.has,g=m.set;r=function(e,t){return g.call(m,e,t),t},o=function(e){return h.call(m,e)||{}},i=function(e){return v.call(m,e)}}else{var b=d("state");f[b]=!0,r=function(e,t){return l(e,b,t),t},o=function(e){return s(e,b)?e[b]:{}},i=function(e){return s(e,b)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!u(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var r=n(16),o=n(14),i=n(71),a=n(102),c=i("IE_PROTO"),u=Object.prototype;e.exports=a?Object.getPrototypeOf:function(e){return e=o(e),r(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},function(e,t,n){"use strict";t.__esModule=!0,t.keyOfMatchingRange=t.inRange=t.toFixed=t.round=t.scale=t.clamp01=t.clamp=void 0;t.clamp=function(e,t,n){return en?n:e};t.clamp01=function(e){return e<0?0:e>1?1:e};t.scale=function(e,t,n){return(e-t)/(n-t)};t.round=function(e,t){return!e||isNaN(e)?e:(t|=0,i=(e*=n=Math.pow(10,t))>0|-(e<0),o=Math.abs(e%1)>=.4999999999854481,r=Math.floor(e),o&&(e=r+(i>0)),(o?e:Math.round(e))/n);var n,r,o,i};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(Math.max(t,0))};var r=function(e,t){return t&&e>=t[0]&&e<=t[1]};t.inRange=r;t.keyOfMatchingRange=function(e,t){for(var n=0,o=Object.keys(t);n0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["payload"]),r=Object.assign({tgui:1,window_id:window.__windowId__},o);null!==n&&n!==undefined&&(r.payload=JSON.stringify(n)),Byond.topic(r)};t.sendMessage=u;var s=function(e,t){void 0===t&&(t={}),"object"!=typeof t||null===t||Array.isArray(t)?a.error("Payload for act() must be an object, got this:",t):u({type:"act/"+e,payload:t})};t.sendAct=s;var d=function(e){return e.backend||{}};t.selectBackend=d;t.useBackend=function(e){var t=e.store,n=d(t.getState());return Object.assign({},n,{act:s})};t.useLocalState=function(e,t,n){var o,r=e.store,i=null!=(o=d(r.getState()).shared)?o:{},a=t in i?i[t]:n;return[a,function(e){r.dispatch(c(t,"function"==typeof e?e(a):e))}]};t.useSharedState=function(e,t,n){var o,r=e.store,i=null!=(o=d(r.getState()).shared)?o:{},a=t in i?i[t]:n;return[a,function(e){u({type:"setSharedState",key:t,value:JSON.stringify("function"==typeof e?e(a):e)||""})}]}}).call(this,n(406).setImmediate)},function(e,t,n){"use strict";var o=n(3),r=n(92),i=n(17),a=n(57),c=n(96),l=n(133),u=r("wks"),s=o.Symbol,d=l?s:s&&s.withoutSetter||a;e.exports=function(e){return i(u,e)||(c&&i(s,e)?u[e]=s[e]:u[e]=d("Symbol."+e)),u[e]}},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=t.Tabs=t.Table=t.Slider=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.Modal=t.NanoMap=t.LabeledList=t.LabeledControls=t.Knob=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.DraggableControl=t.Divider=t.Dimmer=t.ColorBox=t.Collapsible=t.Chart=t.ByondUi=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(121);t.AnimatedNumber=o.AnimatedNumber;var r=n(416);t.BlockQuote=r.BlockQuote;var i=n(15);t.Box=i.Box;var a=n(122);t.Button=a.Button;var c=n(417);t.ByondUi=c.ByondUi;var l=n(419);t.Chart=l.Chart;var u=n(420);t.Collapsible=u.Collapsible;var s=n(421);t.ColorBox=s.ColorBox;var d=n(168);t.Dimmer=d.Dimmer;var f=n(169);t.Divider=f.Divider;var p=n(124);t.DraggableControl=p.DraggableControl;var m=n(422);t.Dropdown=m.Dropdown;var h=n(170);t.Flex=h.Flex;var g=n(423);t.Grid=g.Grid;var v=n(123);t.Icon=v.Icon;var b=n(424);t.Input=b.Input;var y=n(425);t.Knob=y.Knob;var C=n(426);t.LabeledControls=C.LabeledControls;var N=n(427);t.LabeledList=N.LabeledList;var V=n(428);t.NanoMap=V.NanoMap;var x=n(429);t.Modal=x.Modal;var _=n(430);t.NoticeBox=_.NoticeBox;var w=n(126);t.NumberInput=w.NumberInput;var k=n(431);t.ProgressBar=k.ProgressBar;var S=n(432);t.Section=S.Section;var E=n(433);t.Slider=E.Slider;var B=n(125);t.Table=B.Table;var L=n(434);t.Tabs=L.Tabs;var I=n(167);t.Tooltip=I.Tooltip},function(e,t,n){"use strict";var o=n(5),r=n(127),i=n(6),a=n(32),c=Object.defineProperty;t.f=o?c:function(e,t,n){if(i(e),t=a(t,!0),i(n),r)try{return c(e,t,n)}catch(o){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var o=n(20);e.exports=function(e){return Object(o(e))}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxClassName=t.computeBoxProps=t.halfUnit=t.unit=void 0;var o=n(9),r=n(1),i=n(414),a=n(55);var c=function(e){return"string"==typeof e?e.endsWith("px")&&!Byond.IS_LTE_IE8?parseFloat(e)/12+"rem":e:"number"==typeof e?Byond.IS_LTE_IE8?12*e+"px":e+"rem":void 0};t.unit=c;var l=function(e){return"string"==typeof e?c(e):"number"==typeof e?c(.5*e):void 0};t.halfUnit=l;var u=function(e){return"string"==typeof e&&a.CSS_COLORS.includes(e)},s=function(e){return function(t,n){(0,o.isFalsy)(n)||(t[e]=n)}},d=function(e,t){return function(n,r){(0,o.isFalsy)(r)||(n[e]=t(r))}},f=function(e,t){return function(n,r){(0,o.isFalsy)(r)||(n[e]=t)}},p=function(e,t,n){return function(r,i){if(!(0,o.isFalsy)(i))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=g;var v=function(e){var t=e.textColor||e.color,n=e.backgroundColor;return(0,o.classes)([u(t)&&"color-"+t,u(n)&&"color-bg-"+n])};t.computeBoxClassName=v;var b=function(e){var t=e.as,n=void 0===t?"div":t,o=e.className,a=e.children,c=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["as","className","children"]);if("function"==typeof a)return a(g(e));var l="string"==typeof o?o+" "+v(c):v(c),u=g(c);return(0,r.createVNode)(i.VNodeFlags.HtmlElement,n,l,a,i.ChildFlags.UnknownChildren,u)};t.Box=b,b.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Window=t.NtosWindow=t.refocusLayout=t.Layout=void 0;var o=n(120);t.Layout=o.Layout,t.refocusLayout=o.refocusLayout;var r=n(415);t.NtosWindow=r.NtosWindow;var i=n(171);t.Window=i.Window},function(e,t,n){"use strict";var o={}.hasOwnProperty;e.exports=function(e,t){return o.call(e,t)}},function(e,t,n){"use strict";var o=n(47),r=n(56),i=n(14),a=n(8),c=n(62),l=[].push,u=function(e){var t=1==e,n=2==e,u=3==e,s=4==e,d=6==e,f=5==e||d;return function(p,m,h,g){for(var v,b,y=i(p),C=r(y),N=o(m,h,3),V=a(C.length),x=0,_=g||c,w=t?_(p,V):n?_(p,0):undefined;V>x;x++)if((f||x in C)&&(b=N(v=C[x],x,y),e))if(t)w[x]=b;else if(b)switch(e){case 3:return!0;case 5:return v;case 6:return x;case 2:l.call(w,v)}else if(s)return!1;return d?-1:u||s?s:w}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";var o=n(5),r=n(70),i=n(45),a=n(23),c=n(32),l=n(17),u=n(127),s=Object.getOwnPropertyDescriptor;t.f=o?s:function(e,t){if(e=a(e),t=c(t,!0),u)try{return s(e,t)}catch(n){}if(l(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(3),r=n(27),i=n(17),a=n(90),c=n(91),l=n(33),u=l.get,s=l.enforce,d=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,f=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||i(n,"name")||r(n,"name",t),s(n).source=d.join("string"==typeof t?t:"")),e!==o?(l?!f&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:a(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";var o=n(5),r=n(2),i=n(17),a=Object.defineProperty,c={},l=function(e){throw e};e.exports=function(e,t){if(i(c,e))return c[e];t||(t={});var n=[][e],u=!!i(t,"ACCESSORS")&&t.ACCESSORS,s=i(t,0)?t[0]:l,d=i(t,1)?t[1]:undefined;return c[e]=!!n&&!r((function(){if(u&&!o)return!0;var e={length:-1};u?a(e,1,{enumerable:!0,get:l}):e[1]=1,n.call(e,s,d)}))}},function(e,t,n){"use strict";var o=n(56),r=n(20);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(131),r=n(17),i=n(137),a=n(13).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||a(t,e,{value:i.f(e)})}},function(e,t,n){"use strict";var o=n(20),r=/"/g;e.exports=function(e,t,n,i){var a=String(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(i).replace(r,""")+'"'),c+">"+a+""+t+">"}},function(e,t,n){"use strict";var o=n(2);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";var o=n(5),r=n(13),i=n(45);e.exports=o?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";t.__esModule=!0,t.keyOfMatchingRange=t.inRange=t.toFixed=t.round=t.scale=t.clamp01=t.clamp=void 0;t.clamp=function(e,t,n){return en?n:e};t.clamp01=function(e){return e<0?0:e>1?1:e};t.scale=function(e,t,n){return(e-t)/(n-t)};t.round=function(e,t){return!e||isNaN(e)?e:(t|=0,i=(e*=n=Math.pow(10,t))>0|-(e<0),r=Math.abs(e%1)>=.4999999999854481,o=Math.floor(e),r&&(e=o+(i>0)),(r?e:Math.round(e))/n);var n,o,r,i};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(Math.max(t,0))};var o=function(e,t){return t&&e>=t[0]&&e<=t[1]};t.inRange=o;t.keyOfMatchingRange=function(e,t){for(var n=0,r=Object.keys(t);n2?n-2:0),o=2;o=i){var a=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.topic({tgui:1,window_id:window.__windowId__,type:"log",message:a})}},l=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;on;)o[n]=t[n++];return o},W=function(e,t){I(e,t,{get:function(){return B(this)[t]}})},Y=function(e){var t;return e instanceof M||"ArrayBuffer"==(t=g(e))||"SharedArrayBuffer"==t},H=function(e,t){return K(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},$=function(e,t){return H(e,t=h(t,!0))?s(2,e[t]):O(e,t)},G=function(e,t,n){return!(H(e,t=h(t,!0))&&b(n)&&v(n,"value"))||v(n,"get")||v(n,"set")||n.configurable||v(n,"writable")&&!n.writable||v(n,"enumerable")&&!n.enumerable?I(e,t,n):(e[t]=n.value,e)};i?(P||(k.f=$,_.f=G,W(D,"buffer"),W(D,"byteOffset"),W(D,"byteLength"),W(D,"length")),r({target:"Object",stat:!0,forced:!P},{getOwnPropertyDescriptor:$,defineProperty:G}),e.exports=function(e,t,n){var i=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",u="get"+e,s="set"+e,h=o[c],v=h,g=v&&v.prototype,_={},k=function(e,t){I(e,t,{get:function(){return function(e,t){var n=B(e);return n.view[u](t*i+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,r){var o=B(e);n&&(r=(r=T(r))<0?0:r>255?255:255&r),o.view[s](t*i+o.byteOffset,r,!0)}(this,t,e)},enumerable:!0})};P?a&&(v=t((function(e,t,n,r){return l(e,v,c),E(b(t)?Y(t)?r!==undefined?new h(t,m(n,i),r):n!==undefined?new h(t,m(n,i)):new h(t):K(t)?U(v,t):x.call(v,t):new h(p(t)),e,v)})),C&&C(v,F),V(N(h),(function(e){e in v||d(v,e,h[e])})),v.prototype=g):(v=t((function(e,t,n,r){l(e,v,c);var o,a,u,s=0,d=0;if(b(t)){if(!Y(t))return K(t)?U(v,t):x.call(v,t);o=t,d=m(n,i);var h=t.byteLength;if(r===undefined){if(h%i)throw A("Wrong length");if((a=h-d)<0)throw A("Wrong length")}else if((a=f(r)*i)+d>h)throw A("Wrong length");u=a/i}else u=p(t),o=new M(a=u*i);for(L(e,{buffer:o,byteOffset:d,byteLength:a,length:u,view:new j(o)});s"+e+"<\/script>"},m=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(o){}var e,t;m=r?function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t}(r):((t=l("iframe")).style.display="none",u.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F);for(var n=a.length;n--;)delete m.prototype[a[n]];return m()};c[d]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(f.prototype=o(e),n=new f,f.prototype=null,n[d]=e):n=m(),t===undefined?n:i(n,t)}},function(e,t,n){"use strict";var r=n(12).f,o=n(16),i=n(10)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(10),o=n(41),i=n(12),a=r("unscopables"),c=Array.prototype;c[a]==undefined&&i.f(c,a,{configurable:!0,value:o(null)}),e.exports=function(e){c[a][e]=!0}},function(e,t,n){"use strict";var r=n(6),o=n(29),i=n(10)("species");e.exports=function(e,t){var n,a=r(e).constructor;return a===undefined||(n=r(a)[i])==undefined?t:o(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(131),o=n(93).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(29);e.exports=function(e,t,n){if(r(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r=n(31),o=n(12),i=n(45);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},function(e,t,n){"use strict";var r=n(6),o=n(142);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(i){}return function(n,i){return r(n),o(i),t?e.call(n,i):n.__proto__=i,n}}():undefined)},function(e,t,n){"use strict";var r=n(58),o=n(4),i=n(16),a=n(12).f,c=n(57),u=n(66),l=c("meta"),s=0,d=Object.isExtensible||function(){return!0},f=function(e){a(e,l,{value:{objectID:"O"+ ++s,weakData:{}}})},p=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,l)){if(!d(e))return"F";if(!t)return"E";f(e)}return e[l].objectID},getWeakData:function(e,t){if(!i(e,l)){if(!d(e))return!0;if(!t)return!1;f(e)}return e[l].weakData},onFreeze:function(e){return u&&p.REQUIRED&&d(e)&&!i(e,l)&&f(e),e}};r[l]=!0},function(e,t,n){"use strict";var r=n(30);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){"use strict";var r=n(35),o=n(12),i=n(10),a=n(5),c=i("species");e.exports=function(e){var t=r(e),n=o.f;a&&t&&!t[c]&&n(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var r=n(20),o="["+n(80)+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),c=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(a,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var r=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"},{id:"hydrogen",name:"Hydrogen",label:"H\u2082",color:"white"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),o=r.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return o&&o.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=r.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";var r=n(2),o=n(30),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},function(e,t,n){"use strict";var r=0,o=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++r+o).toString(36)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(23),o=n(8),i=n(40),a=function(e){return function(t,n,a){var c,u=r(t),l=o(u.length),s=i(a,l);if(e&&n!=n){for(;l>s;)if((c=u[s++])!=c)return!0}else for(;l>s;s++)if((e||s in u)&&u[s]===n)return e||s||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var r=n(2),o=/#|\.prototype\./,i=function(e,t){var n=c[a(e)];return n==l||n!=u&&("function"==typeof t?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},c=i.data={},u=i.NATIVE="N",l=i.POLYFILL="P";e.exports=i},function(e,t,n){"use strict";var r=n(131),o=n(93);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){"use strict";var r=n(4),o=n(51),i=n(10)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var r=n(2),o=n(10),i=n(96),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(21);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(2);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var r=n(6),o=n(98),i=n(8),a=n(47),c=n(99),u=n(139),l=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,s,d){var f,p,m,h,v,g,b,y=a(t,n,s?2:1);if(d)f=e;else{if("function"!=typeof(p=c(e)))throw TypeError("Target is not iterable");if(o(p)){for(m=0,h=i(e.length);h>m;m++)if((v=s?y(r(b=e[m])[0],b[1]):y(e[m]))&&v instanceof l)return v;return new l(!1)}f=p.call(e)}for(g=f.next;!(b=g.call(f)).done;)if("object"==typeof(v=u(f,y,b.value,s))&&v&&v instanceof l)return v;return new l(!1)}).stop=function(e){return new l(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.ComplexModal=t.modalRegisterBodyOverride=t.modalOpen=void 0;var r=n(1),o=n(11),i=n(13),a={};t.modalOpen=function(e,t,n){var r=(0,o.useBackend)(e),i=r.act,a=r.data,c=Object.assign(a.modal?a.modal.args:{},n||{});i("modal_open",{id:t,arguments:JSON.stringify(c)})};t.modalRegisterBodyOverride=function(e,t){a[e]=t};var c=function(e,t,n,r){var i=(0,o.useBackend)(e),a=i.act,c=i.data;if(c.modal){var u=Object.assign(c.modal.args||{},r||{});a("modal_answer",{id:t,answer:n,arguments:JSON.stringify(u)})}},u=function(e,t){(0,(0,o.useBackend)(e).act)("modal_close",{id:t})};t.ComplexModal=function(e,t){var n=(0,o.useBackend)(t).data;if(n.modal){var l,s,d=n.modal,f=d.id,p=d.text,m=d.type,h=(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return u(t)}});if(a[f])s=a[f](n.modal,t);else if("input"===m){var v=n.modal.value;l=function(e){return c(t,f,v)},s=(0,r.createComponentVNode)(2,i.Input,{value:n.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(e,t){v=t}}),h=(0,r.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:[(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return u(t)}}),(0,r.createComponentVNode)(2,i.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){return c(t,f,v)}}),(0,r.createComponentVNode)(2,i.Box,{clear:"both"})]})}else if("choice"===m){var g="object"==typeof n.modal.choices?Object.values(n.modal.choices):n.modal.choices;s=(0,r.createComponentVNode)(2,i.Dropdown,{options:g,selected:n.modal.value,width:"100%",my:"0.5rem",onSelected:function(e){return c(t,f,e)}})}else"bento"===m?s=(0,r.createComponentVNode)(2,i.Flex,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:n.modal.choices.map((function(e,o){return(0,r.createComponentVNode)(2,i.Flex.Item,{flex:"1 1 auto",children:(0,r.createComponentVNode)(2,i.Button,{selected:o+1===parseInt(n.modal.value,10),onClick:function(){return c(t,f,o+1)},children:(0,r.createVNode)(1,"img",null,null,1,{src:e})})},o)}))}):"boolean"===m&&(h=(0,r.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:[(0,r.createComponentVNode)(2,i.Button,{icon:"times",content:n.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){return c(t,f,0)}}),(0,r.createComponentVNode)(2,i.Button,{icon:"check",content:n.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){return c(t,f,1)}}),(0,r.createComponentVNode)(2,i.Box,{clear:"both"})]}));return(0,r.createComponentVNode)(2,i.Modal,{maxWidth:e.maxWidth||window.innerWidth/2+"px",maxHeight:e.maxHeight||window.innerHeight/2+"px",onEnter:l,mx:"auto",children:[(0,r.createComponentVNode)(2,i.Box,{display:"inline",children:p}),s,h]})}}},function(e,t,n){"use strict";var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(o){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},function(e,t,n){"use strict";var r=n(91),o=n(57),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){"use strict";var r=n(35);e.exports=r("navigator","userAgent")||""},function(e,t,n){"use strict";var r=n(100),o=n(30),i=n(10)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t,n){"use strict";var r=n(10)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},"return":function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(c){}return n}},function(e,t,n){"use strict";var r=n(29),o=n(14),i=n(56),a=n(8),c=function(e){return function(t,n,c,u){r(n);var l=o(t),s=i(l),d=a(l.length),f=e?d-1:0,p=e?-1:1;if(c<2)for(;;){if(f in s){u=s[f],f+=p;break}if(f+=p,e?f<0:d<=f)throw TypeError("Reduce of empty array with no initial value")}for(;e?f>=0:d>f;f+=p)f in s&&(u=n(u,s[f],f,l));return u}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var r=n(3),o=n(5),i=n(103),a=n(27),c=n(65),u=n(2),l=n(53),s=n(28),d=n(8),f=n(144),p=n(222),m=n(33),h=n(49),v=n(46).f,g=n(12).f,b=n(97),y=n(42),C=n(32),N=C.get,x=C.set,V=r.ArrayBuffer,w=V,_=r.DataView,k=_&&_.prototype,S=Object.prototype,E=r.RangeError,B=p.pack,L=p.unpack,I=function(e){return[255&e]},O=function(e){return[255&e,e>>8&255]},T=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},A=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},M=function(e){return B(e,23,4)},j=function(e){return B(e,52,8)},P=function(e,t){g(e.prototype,t,{get:function(){return N(this)[t]}})},R=function(e,t,n,r){var o=f(n),i=N(e);if(o+t>i.byteLength)throw E("Wrong index");var a=N(i.buffer).bytes,c=o+i.byteOffset,u=a.slice(c,c+t);return r?u:u.reverse()},F=function(e,t,n,r,o,i){var a=f(n),c=N(e);if(a+t>c.byteLength)throw E("Wrong index");for(var u=N(c.buffer).bytes,l=a+c.byteOffset,s=r(+o),d=0;dU;)(D=K[U++])in w||a(w,D,V[D]);z.constructor=w}h&&m(k)!==S&&h(k,S);var W=new _(new w(2)),Y=k.setInt8;W.setInt8(0,2147483648),W.setInt8(1,2147483649),!W.getInt8(0)&&W.getInt8(1)||c(k,{setInt8:function(e,t){Y.call(this,e,t<<24>>24)},setUint8:function(e,t){Y.call(this,e,t<<24>>24)}},{unsafe:!0})}else w=function(e){l(this,w,"ArrayBuffer");var t=f(e);x(this,{bytes:b.call(new Array(t),0),byteLength:t}),o||(this.byteLength=t)},_=function(e,t,n){l(this,_,"DataView"),l(e,w,"DataView");var r=N(e).byteLength,i=s(t);if(i<0||i>r)throw E("Wrong offset");if(i+(n=n===undefined?r-i:d(n))>r)throw E("Wrong length");x(this,{buffer:e,byteLength:n,byteOffset:i}),o||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},o&&(P(w,"byteLength"),P(_,"buffer"),P(_,"byteLength"),P(_,"byteOffset")),c(_.prototype,{getInt8:function(e){return R(this,1,e)[0]<<24>>24},getUint8:function(e){return R(this,1,e)[0]},getInt16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return A(R(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return A(R(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return L(R(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return L(R(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){F(this,1,e,I,t)},setUint8:function(e,t){F(this,1,e,I,t)},setInt16:function(e,t){F(this,2,e,O,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){F(this,2,e,O,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){F(this,4,e,T,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){F(this,4,e,T,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){F(this,4,e,M,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){F(this,8,e,j,t,arguments.length>2?arguments[2]:undefined)}});y(w,"ArrayBuffer"),y(_,"DataView"),e.exports={ArrayBuffer:w,DataView:_}},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(60),a=n(21),c=n(50),u=n(67),l=n(53),s=n(4),d=n(2),f=n(74),p=n(42),m=n(78);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),g=h?"set":"add",b=o[e],y=b&&b.prototype,C=b,N={},x=function(e){var t=y[e];a(y,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(v&&!s(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!s(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(v&&!s(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(i(e,"function"!=typeof b||!(v||y.forEach&&!d((function(){(new b).entries().next()})))))C=n.getConstructor(t,e,h,g),c.REQUIRED=!0;else if(i(e,!0)){var V=new C,w=V[g](v?{}:-0,1)!=V,_=d((function(){V.has(1)})),k=f((function(e){new b(e)})),S=!v&&d((function(){for(var e=new b,t=5;t--;)e[g](t,t);return!e.has(-0)}));k||((C=t((function(t,n){l(t,C,e);var r=m(new b,t,C);return n!=undefined&&u(n,r[g],r,h),r}))).prototype=y,y.constructor=C),(_||S)&&(x("delete"),x("has"),h&&x("get")),(S||w)&&x(g),v&&y.clear&&delete y.clear}return N[e]=C,r({global:!0,forced:C!=b},N),p(C,e),v||n.setStrong(C,e,h),C}},function(e,t,n){"use strict";var r=n(4),o=n(49);e.exports=function(e,t,n){var i,a;return o&&"function"==typeof(i=t.constructor)&&i!==n&&r(a=i.prototype)&&a!==n.prototype&&o(e,a),e}},function(e,t,n){"use strict";var r=Math.expm1,o=Math.exp;e.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:o(e)-1}:r},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(37),o=n(3),i=n(2);e.exports=r||!i((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete o[e]}))},function(e,t,n){"use strict";var r=n(6);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var r,o,i=n(82),a=n(109),c=RegExp.prototype.exec,u=String.prototype.replace,l=c,s=(r=/a/,o=/b*/g,c.call(r,"a"),c.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),d=a.UNSUPPORTED_Y||a.BROKEN_CARET,f=/()??/.exec("")[1]!==undefined;(s||f||d)&&(l=function(e){var t,n,r,o,a=this,l=d&&a.sticky,p=i.call(a),m=a.source,h=0,v=e;return l&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),v=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(m="(?: "+m+")",v=" "+v,h++),n=new RegExp("^(?:"+m+")",p)),f&&(n=new RegExp("^"+m+"$(?!\\s)",p)),s&&(t=a.lastIndex),r=c.call(l?n:a,v),l?r?(r.input=r.input.slice(h),r[0]=r[0].slice(h),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:s&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),f&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o")})),s="$0"==="a".replace(/./,"$0"),d=i("replace"),f=!!/./[d]&&""===/./[d]("a","$0"),p=!o((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,d){var m=i(e),h=!o((function(){var t={};return t[m]=function(){return 7},7!=""[e](t)})),v=h&&!o((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[m]=/./[m]),n.exec=function(){return t=!0,null},n[m](""),!t}));if(!h||!v||"replace"===e&&(!l||!s||f)||"split"===e&&!p){var g=/./[m],b=n(m,""[e],(function(e,t,n,r,o){return t.exec===a?h&&!o?{done:!0,value:g.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:s,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),y=b[0],C=b[1];r(String.prototype,e,y),r(RegExp.prototype,m,2==t?function(e,t){return C.call(e,this,t)}:function(e){return C.call(e,this)})}d&&c(RegExp.prototype[m],"sham",!0)}},function(e,t,n){"use strict";var r=n(30),o=n(83);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},function(e,t,n){"use strict";function r(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=48&&r<=90?String.fromCharCode(r):r>=112&&r<=123?"F"+(r-111):"["+r+"]"},s=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,r=e.altKey,o=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:r,shiftKey:o,hasModifierKeys:n||r||o,keyString:l(n,r,o,t)}},d=function(){for(var e=0,t=Object.keys(u);e=112&&c<=123){i.log(l);for(var d,p=r(f);!(d=p()).done;)(0,d.value)(n,o)}}}(t,n,e)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),u[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),u[n]=!1})),Byond.IS_LTE_IE8||function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){d()})),function(e){return function(t){return e(t)}}}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.uniqBy=t.reduce=t.sortBy=t.map=t.filter=t.toKeyedArray=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var r in e)t.call(e,r)&&n.push(e[r]);return n}return[]};t.toKeyedArray=function(e,t){return void 0===t&&(t="key"),r((function(e,n){var r;return Object.assign(((r={})[t]=n,r),e)}))(e)};t.filter=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],r=0;rc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},function(e,t,n){"use strict";var r=n(14),o=n(40),i=n(8);e.exports=function(e){for(var t=r(this),n=i(t.length),a=arguments.length,c=o(a>1?arguments[1]:undefined,n),u=a>2?arguments[2]:undefined,l=u===undefined?n:o(u,n);l>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var r=n(10),o=n(64),i=r("iterator"),a=Array.prototype;e.exports=function(e){return e!==undefined&&(o.Array===e||a[i]===e)}},function(e,t,n){"use strict";var r=n(73),o=n(64),i=n(10)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){"use strict";var r={};r[n(10)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,t,n){"use strict";var r=n(0),o=n(207),i=n(33),a=n(49),c=n(42),u=n(27),l=n(21),s=n(10),d=n(37),f=n(64),p=n(141),m=p.IteratorPrototype,h=p.BUGGY_SAFARI_ITERATORS,v=s("iterator"),g=function(){return this};e.exports=function(e,t,n,s,p,b,y){o(n,t,s);var C,N,x,V=function(e){if(e===p&&E)return E;if(!h&&e in k)return k[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},w=t+" Iterator",_=!1,k=e.prototype,S=k[v]||k["@@iterator"]||p&&k[p],E=!h&&S||V(p),B="Array"==t&&k.entries||S;if(B&&(C=i(B.call(new e)),m!==Object.prototype&&C.next&&(d||i(C)===m||(a?a(C,m):"function"!=typeof C[v]&&u(C,v,g)),c(C,w,!0,!0),d&&(f[w]=g))),"values"==p&&S&&"values"!==S.name&&(_=!0,E=function(){return S.call(this)}),d&&!y||k[v]===E||u(k,v,E),f[t]=E,p)if(N={values:V("values"),keys:b?E:V("keys"),entries:V("entries")},y)for(x in N)(h||_||!(x in k))&&l(k,x,N[x]);else r({target:t,proto:!0,forced:h||_},N);return N}},function(e,t,n){"use strict";var r=n(2);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var r=n(8),o=n(105),i=n(20),a=Math.ceil,c=function(e){return function(t,n,c){var u,l,s=String(i(t)),d=s.length,f=c===undefined?" ":String(c),p=r(n);return p<=d||""==f?s:(u=p-d,(l=o.call(f,a(u/f.length))).length>u&&(l=l.slice(0,u)),e?s+l:l+s)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var r=n(28),o=n(20);e.exports="".repeat||function(e){var t=String(o(this)),n="",i=r(e);if(i<0||i==Infinity)throw RangeError("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var r,o,i,a=n(3),c=n(2),u=n(30),l=n(47),s=n(134),d=n(88),f=n(153),p=a.location,m=a.setImmediate,h=a.clearImmediate,v=a.process,g=a.MessageChannel,b=a.Dispatch,y=0,C={},N=function(e){if(C.hasOwnProperty(e)){var t=C[e];delete C[e],t()}},x=function(e){return function(){N(e)}},V=function(e){N(e.data)},w=function(e){a.postMessage(e+"",p.protocol+"//"+p.host)};m&&h||(m=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return C[++y]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},r(y),y},h=function(e){delete C[e]},"process"==u(v)?r=function(e){v.nextTick(x(e))}:b&&b.now?r=function(e){b.now(x(e))}:g&&!f?(i=(o=new g).port2,o.port1.onmessage=V,r=l(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||c(w)||"file:"===p.protocol?r="onreadystatechange"in d("script")?function(e){s.appendChild(d("script")).onreadystatechange=function(){s.removeChild(this),N(e)}}:function(e){setTimeout(x(e),0)}:(r=w,a.addEventListener("message",V,!1))),e.exports={set:m,clear:h}},function(e,t,n){"use strict";var r=n(4),o=n(30),i=n(10)("match");e.exports=function(e){var t;return r(e)&&((t=e[i])!==undefined?!!t:"RegExp"==o(e))}},function(e,t,n){"use strict";var r=n(2);function o(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var r=n(28),o=n(20),i=function(e){return function(t,n){var i,a,c=String(o(t)),u=r(n),l=c.length;return u<0||u>=l?e?"":undefined:(i=c.charCodeAt(u))<55296||i>56319||u+1===l||(a=c.charCodeAt(u+1))<56320||a>57343?e?c.charAt(u):i:e?c.slice(u,u+2):a-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,n){"use strict";var r=n(108);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var r=n(10)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(o){}}return!1}},function(e,t,n){"use strict";var r=n(110).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},function(e,t,n){"use strict";var r=n(2),o=n(80);e.exports=function(e){return r((function(){return!!o[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||o[e].name!==e}))}},function(e,t,n){"use strict";var r=n(3),o=n(2),i=n(74),a=n(7).NATIVE_ARRAY_BUFFER_VIEWS,c=r.ArrayBuffer,u=r.Int8Array;e.exports=!a||!o((function(){u(1)}))||!o((function(){new u(-1)}))||!i((function(e){new u,new u(null),new u(1.5),new u(e)}),!0)||o((function(){return 1!==new u(new c(2),1,undefined).length}))},function(e,t,n){"use strict";function r(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),c=1;c1?r-1:0),i=1;i2?n-2:0),r=2;r=i){var a=[t].concat(o).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.topic({tgui:1,window_id:window.__windowId__,type:"log",message:a})}},u=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),r=0;rn;)r[n]=t[n++];return r},W=function(e,t){I(e,t,{get:function(){return B(this)[t]}})},Y=function(e){var t;return e instanceof M||"ArrayBuffer"==(t=v(e))||"SharedArrayBuffer"==t},H=function(e,t){return K(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},G=function(e,t){return H(e,t=h(t,!0))?s(2,e[t]):T(e,t)},$=function(e,t,n){return!(H(e,t=h(t,!0))&&b(n)&&g(n,"value"))||g(n,"get")||g(n,"set")||n.configurable||g(n,"writable")&&!n.writable||g(n,"enumerable")&&!n.enumerable?I(e,t,n):(e[t]=n.value,e)};i?(j||(k.f=G,w.f=$,W(R,"buffer"),W(R,"byteOffset"),W(R,"byteLength"),W(R,"length")),o({target:"Object",stat:!0,forced:!j},{getOwnPropertyDescriptor:G,defineProperty:$}),e.exports=function(e,t,n){var i=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,s="set"+e,h=r[c],g=h,v=g&&g.prototype,w={},k=function(e,t){I(e,t,{get:function(){return function(e,t){var n=B(e);return n.view[l](t*i+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,o){var r=B(e);n&&(o=(o=O(o))<0?0:o>255?255:255&o),r.view[s](t*i+r.byteOffset,o,!0)}(this,t,e)},enumerable:!0})};j?a&&(g=t((function(e,t,n,o){return u(e,g,c),E(b(t)?Y(t)?o!==undefined?new h(t,m(n,i),o):n!==undefined?new h(t,m(n,i)):new h(t):K(t)?U(g,t):V.call(g,t):new h(p(t)),e,g)})),C&&C(g,D),x(N(h),(function(e){e in g||d(g,e,h[e])})),g.prototype=v):(g=t((function(e,t,n,o){u(e,g,c);var r,a,l,s=0,d=0;if(b(t)){if(!Y(t))return K(t)?U(g,t):V.call(g,t);r=t,d=m(n,i);var h=t.byteLength;if(o===undefined){if(h%i)throw A("Wrong length");if((a=h-d)<0)throw A("Wrong length")}else if((a=f(o)*i)+d>h)throw A("Wrong length");l=a/i}else l=p(t),r=new M(a=l*i);for(L(e,{buffer:r,byteOffset:d,byteLength:a,length:l,view:new P(r)});s"+e+"<\/script>"},m=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var e,t;m=o?function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t}(o):((t=u("iframe")).style.display="none",l.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F);for(var n=a.length;n--;)delete m.prototype[a[n]];return m()};c[d]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(f.prototype=r(e),n=new f,f.prototype=null,n[d]=e):n=m(),t===undefined?n:i(n,t)}},function(e,t,n){"use strict";var o=n(13).f,r=n(17),i=n(11)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,i)&&o(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(11),r=n(41),i=n(13),a=o("unscopables"),c=Array.prototype;c[a]==undefined&&i.f(c,a,{configurable:!0,value:r(null)}),e.exports=function(e){c[a][e]=!0}},function(e,t,n){"use strict";var o=n(6),r=n(29),i=n(11)("species");e.exports=function(e,t){var n,a=o(e).constructor;return a===undefined||(n=o(a)[i])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(132),r=n(94).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(29);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(32),r=n(13),i=n(45);e.exports=function(e,t,n){var a=o(t);a in e?r.f(e,a,i(0,n)):e[a]=n}},function(e,t,n){"use strict";var o=n(6),r=n(143);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(i){}return function(n,i){return o(n),r(i),t?e.call(n,i):n.__proto__=i,n}}():undefined)},function(e,t,n){"use strict";var o=n(58),r=n(4),i=n(17),a=n(13).f,c=n(57),l=n(66),u=c("meta"),s=0,d=Object.isExtensible||function(){return!0},f=function(e){a(e,u,{value:{objectID:"O"+ ++s,weakData:{}}})},p=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,u)){if(!d(e))return"F";if(!t)return"E";f(e)}return e[u].objectID},getWeakData:function(e,t){if(!i(e,u)){if(!d(e))return!0;if(!t)return!1;f(e)}return e[u].weakData},onFreeze:function(e){return l&&p.REQUIRED&&d(e)&&!i(e,u)&&f(e),e}};o[u]=!0},function(e,t,n){"use strict";var o=n(31);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){"use strict";var o=n(35),r=n(13),i=n(11),a=n(5),c=i("species");e.exports=function(e){var t=o(e),n=r.f;a&&t&&!t[c]&&n(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){"use strict";var o=n(20),r="["+n(80)+"]",i=RegExp("^"+r+r+"*"),a=RegExp(r+r+"*$"),c=function(e){return function(t){var n=String(o(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(a,"")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.T0C=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.T0C=273.15;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Mercenary",freq:1213,color:"#6D3F40"},{name:"Raider",freq:1277,color:"#6D3F40"},{name:"Special Ops",freq:1341,color:"#5C5C8A"},{name:"AI Private",freq:1343,color:"#FF00FF"},{name:"Response Team",freq:1345,color:"#5C5C8A"},{name:"Supply",freq:1347,color:"#5F4519"},{name:"Service",freq:1349,color:"#6eaa2c"},{name:"Science",freq:1351,color:"#993399"},{name:"Command",freq:1353,color:"#193A7A"},{name:"Medical",freq:1355,color:"#008160"},{name:"Engineering",freq:1357,color:"#A66300"},{name:"Security",freq:1359,color:"#A30000"},{name:"Explorer",freq:1361,color:"#555555"},{name:"Talon",freq:1363,color:"#555555"},{name:"Common",freq:1459,color:"#008000"},{name:"Entertainment",freq:1461,color:"#339966"},{name:"Security(I)",freq:1475,color:"#008000"},{name:"Medical(I)",freq:1485,color:"#008000"}];var o=[{id:"oxygen",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"carbon dioxide",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"phoron",name:"Phoron",label:"Phoron",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"},{id:"hydrogen",name:"Hydrogen",label:"H\u2082",color:"white"},{id:"other",name:"Other",label:"Other",color:"white"},{id:"pressure",name:"Pressure",label:"Pressure",color:"average"},{id:"temperature",name:"Temperature",label:"Temperature",color:"yellow"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";var o=n(2),r=n(31),i="".split;e.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?i.call(e,""):Object(e)}:Object},function(e,t,n){"use strict";var o=0,r=Math.random();e.exports=function(e){return"Symbol("+String(e===undefined?"":e)+")_"+(++o+r).toString(36)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(23),r=n(8),i=n(40),a=function(e){return function(t,n,a){var c,l=o(t),u=r(l.length),s=i(a,u);if(e&&n!=n){for(;u>s;)if((c=l[s++])!=c)return!0}else for(;u>s;s++)if((e||s in l)&&l[s]===n)return e||s||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,n){"use strict";var o=n(2),r=/#|\.prototype\./,i=function(e,t){var n=c[a(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},a=i.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=i.data={},l=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},function(e,t,n){"use strict";var o=n(132),r=n(94);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(4),r=n(51),i=n(11)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[i])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(2),r=n(11),i=n(97),a=r("species");e.exports=function(e){return i>=51||!o((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(21);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(2);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(6),r=n(99),i=n(8),a=n(47),c=n(100),l=n(140),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,s,d){var f,p,m,h,g,v,b,y=a(t,n,s?2:1);if(d)f=e;else{if("function"!=typeof(p=c(e)))throw TypeError("Target is not iterable");if(r(p)){for(m=0,h=i(e.length);h>m;m++)if((g=s?y(o(b=e[m])[0],b[1]):y(e[m]))&&g instanceof u)return g;return new u(!1)}f=p.call(e)}for(v=f.next;!(b=v.call(f)).done;)if("object"==typeof(g=l(f,y,b.value,s))&&g&&g instanceof u)return g;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.ComplexModal=t.modalRegisterBodyOverride=t.modalOpen=void 0;var o=n(1),r=n(10),i=n(12),a={};t.modalOpen=function(e,t,n){var o=(0,r.useBackend)(e),i=o.act,a=o.data,c=Object.assign(a.modal?a.modal.args:{},n||{});i("modal_open",{id:t,arguments:JSON.stringify(c)})};t.modalRegisterBodyOverride=function(e,t){a[e]=t};var c=function(e,t,n,o){var i=(0,r.useBackend)(e),a=i.act,c=i.data;if(c.modal){var l=Object.assign(c.modal.args||{},o||{});a("modal_answer",{id:t,answer:n,arguments:JSON.stringify(l)})}},l=function(e,t){(0,(0,r.useBackend)(e).act)("modal_close",{id:t})};t.ComplexModal=function(e,t){var n=(0,r.useBackend)(t).data;if(n.modal){var u,s,d=n.modal,f=d.id,p=d.text,m=d.type,h=(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return l(t)}});if(a[f])s=a[f](n.modal,t);else if("input"===m){var g=n.modal.value;u=function(e){return c(t,f,g)},s=(0,o.createComponentVNode)(2,i.Input,{value:n.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(e,t){g=t}}),h=(0,o.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){return l(t)}}),(0,o.createComponentVNode)(2,i.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){return c(t,f,g)}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]})}else if("choice"===m){var v="object"==typeof n.modal.choices?Object.values(n.modal.choices):n.modal.choices;s=(0,o.createComponentVNode)(2,i.Dropdown,{options:v,selected:n.modal.value,width:"100%",my:"0.5rem",onSelected:function(e){return c(t,f,e)}})}else"bento"===m?s=(0,o.createComponentVNode)(2,i.Flex,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:n.modal.choices.map((function(e,r){return(0,o.createComponentVNode)(2,i.Flex.Item,{flex:"1 1 auto",children:(0,o.createComponentVNode)(2,i.Button,{selected:r+1===parseInt(n.modal.value,10),onClick:function(){return c(t,f,r+1)},children:(0,o.createVNode)(1,"img",null,null,1,{src:e})})},r)}))}):"boolean"===m&&(h=(0,o.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:n.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){return c(t,f,0)}}),(0,o.createComponentVNode)(2,i.Button,{icon:"check",content:n.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){return c(t,f,1)}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]}));return(0,o.createComponentVNode)(2,i.Modal,{maxWidth:e.maxWidth||window.innerWidth/2+"px",maxHeight:e.maxHeight||window.innerHeight/2+"px",onEnter:u,mx:"auto",children:[(0,o.createComponentVNode)(2,i.Box,{display:"inline",children:p}),s,h]})}}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!o.call({1:2},1);t.f=i?function(e){var t=r(this,e);return!!t&&t.enumerable}:o},function(e,t,n){"use strict";var o=n(92),r=n(57),i=o("keys");e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t,n){"use strict";var o=n(35);e.exports=o("navigator","userAgent")||""},function(e,t,n){"use strict";var o=n(101),r=n(31),i=n(11)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=o?r:function(e){var t,n,o;return e===undefined?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){"use strict";var o=n(11)("iterator"),r=!1;try{var i=0,a={next:function(){return{done:!!i++}},"return":function(){r=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(c){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var i={};i[o]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(c){}return n}},function(e,t,n){"use strict";var o=n(29),r=n(14),i=n(56),a=n(8),c=function(e){return function(t,n,c,l){o(n);var u=r(t),s=i(u),d=a(u.length),f=e?d-1:0,p=e?-1:1;if(c<2)for(;;){if(f in s){l=s[f],f+=p;break}if(f+=p,e?f<0:d<=f)throw TypeError("Reduce of empty array with no initial value")}for(;e?f>=0:d>f;f+=p)f in s&&(l=n(l,s[f],f,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(3),r=n(5),i=n(104),a=n(27),c=n(65),l=n(2),u=n(53),s=n(28),d=n(8),f=n(145),p=n(222),m=n(34),h=n(49),g=n(46).f,v=n(13).f,b=n(98),y=n(42),C=n(33),N=C.get,V=C.set,x=o.ArrayBuffer,_=x,w=o.DataView,k=w&&w.prototype,S=Object.prototype,E=o.RangeError,B=p.pack,L=p.unpack,I=function(e){return[255&e]},T=function(e){return[255&e,e>>8&255]},O=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},A=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},M=function(e){return B(e,23,4)},P=function(e){return B(e,52,8)},j=function(e,t){v(e.prototype,t,{get:function(){return N(this)[t]}})},F=function(e,t,n,o){var r=f(n),i=N(e);if(r+t>i.byteLength)throw E("Wrong index");var a=N(i.buffer).bytes,c=r+i.byteOffset,l=a.slice(c,c+t);return o?l:l.reverse()},D=function(e,t,n,o,r,i){var a=f(n),c=N(e);if(a+t>c.byteLength)throw E("Wrong index");for(var l=N(c.buffer).bytes,u=a+c.byteOffset,s=o(+r),d=0;dU;)(R=K[U++])in _||a(_,R,x[R]);z.constructor=_}h&&m(k)!==S&&h(k,S);var W=new w(new _(2)),Y=k.setInt8;W.setInt8(0,2147483648),W.setInt8(1,2147483649),!W.getInt8(0)&&W.getInt8(1)||c(k,{setInt8:function(e,t){Y.call(this,e,t<<24>>24)},setUint8:function(e,t){Y.call(this,e,t<<24>>24)}},{unsafe:!0})}else _=function(e){u(this,_,"ArrayBuffer");var t=f(e);V(this,{bytes:b.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},w=function(e,t,n){u(this,w,"DataView"),u(e,_,"DataView");var o=N(e).byteLength,i=s(t);if(i<0||i>o)throw E("Wrong offset");if(i+(n=n===undefined?o-i:d(n))>o)throw E("Wrong length");V(this,{buffer:e,byteLength:n,byteOffset:i}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},r&&(j(_,"byteLength"),j(w,"buffer"),j(w,"byteLength"),j(w,"byteOffset")),c(w.prototype,{getInt8:function(e){return F(this,1,e)[0]<<24>>24},getUint8:function(e){return F(this,1,e)[0]},getInt16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=F(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return A(F(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return A(F(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return L(F(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return L(F(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){D(this,1,e,I,t)},setUint8:function(e,t){D(this,1,e,I,t)},setInt16:function(e,t){D(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){D(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){D(this,4,e,O,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){D(this,4,e,O,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){D(this,4,e,M,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){D(this,8,e,P,t,arguments.length>2?arguments[2]:undefined)}});y(_,"ArrayBuffer"),y(w,"DataView"),e.exports={ArrayBuffer:_,DataView:w}},function(e,t,n){"use strict";var o=n(0),r=n(3),i=n(60),a=n(21),c=n(50),l=n(67),u=n(53),s=n(4),d=n(2),f=n(74),p=n(42),m=n(78);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),g=-1!==e.indexOf("Weak"),v=h?"set":"add",b=r[e],y=b&&b.prototype,C=b,N={},V=function(e){var t=y[e];a(y,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(g&&!s(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return g&&!s(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(g&&!s(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(i(e,"function"!=typeof b||!(g||y.forEach&&!d((function(){(new b).entries().next()})))))C=n.getConstructor(t,e,h,v),c.REQUIRED=!0;else if(i(e,!0)){var x=new C,_=x[v](g?{}:-0,1)!=x,w=d((function(){x.has(1)})),k=f((function(e){new b(e)})),S=!g&&d((function(){for(var e=new b,t=5;t--;)e[v](t,t);return!e.has(-0)}));k||((C=t((function(t,n){u(t,C,e);var o=m(new b,t,C);return n!=undefined&&l(n,o[v],o,h),o}))).prototype=y,y.constructor=C),(w||S)&&(V("delete"),V("has"),h&&V("get")),(S||_)&&V(v),g&&y.clear&&delete y.clear}return N[e]=C,o({global:!0,forced:C!=b},N),p(C,e),g||n.setStrong(C,e,h),C}},function(e,t,n){"use strict";var o=n(4),r=n(49);e.exports=function(e,t,n){var i,a;return r&&"function"==typeof(i=t.constructor)&&i!==n&&o(a=i.prototype)&&a!==n.prototype&&r(e,a),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(37),r=n(3),i=n(2);e.exports=o||!i((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(6);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,i=n(82),a=n(110),c=RegExp.prototype.exec,l=String.prototype.replace,u=c,s=(o=/a/,r=/b*/g,c.call(o,"a"),c.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),d=a.UNSUPPORTED_Y||a.BROKEN_CARET,f=/()??/.exec("")[1]!==undefined;(s||f||d)&&(u=function(e){var t,n,o,r,a=this,u=d&&a.sticky,p=i.call(a),m=a.source,h=0,g=e;return u&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),g=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(m="(?: "+m+")",g=" "+g,h++),n=new RegExp("^(?:"+m+")",p)),f&&(n=new RegExp("^"+m+"$(?!\\s)",p)),s&&(t=a.lastIndex),o=c.call(u?n:a,g),u?o?(o.input=o.input.slice(h),o[0]=o[0].slice(h),o.index=a.lastIndex,a.lastIndex+=o[0].length):a.lastIndex=0:s&&o&&(a.lastIndex=a.global?o.index+o[0].length:t),f&&o&&o.length>1&&l.call(o[0],n,(function(){for(r=1;r")})),s="$0"==="a".replace(/./,"$0"),d=i("replace"),f=!!/./[d]&&""===/./[d]("a","$0"),p=!r((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,d){var m=i(e),h=!r((function(){var t={};return t[m]=function(){return 7},7!=""[e](t)})),g=h&&!r((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[m]=/./[m]),n.exec=function(){return t=!0,null},n[m](""),!t}));if(!h||!g||"replace"===e&&(!u||!s||f)||"split"===e&&!p){var v=/./[m],b=n(m,""[e],(function(e,t,n,o,r){return t.exec===a?h&&!r?{done:!0,value:v.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}}),{REPLACE_KEEPS_$0:s,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),y=b[0],C=b[1];o(String.prototype,e,y),o(RegExp.prototype,m,2==t?function(e,t){return C.call(e,this,t)}:function(e){return C.call(e,this)})}d&&c(RegExp.prototype[m],"sham",!0)}},function(e,t,n){"use strict";var o=n(31),r=n(83);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";function o(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=48&&o<=90?String.fromCharCode(o):o>=112&&o<=123?"F"+(o-111):"["+o+"]"},s=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},d=function(){for(var e=0,t=Object.keys(l);e=112&&c<=123){i.log(u);for(var d,p=o(f);!(d=p()).done;)(0,d.value)(n,r)}}}(t,n,e)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),Byond.IS_LTE_IE8||function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){d()})),function(e){return function(t){return e(t)}}}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.uniqBy=t.reduce=t.sortBy=t.map=t.filter=t.toKeyedArray=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};t.toKeyedArray=function(e,t){return void 0===t&&(t="key"),o((function(e,n){var o;return Object.assign(((o={})[t]=n,o),e)}))(e)};t.filter=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n",apos:"'"};return e.replace(/ /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var o=n(3),r=n(4),i=o.document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";var o=n(3),r=n(27);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(128),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(37),r=n(128);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(35),r=n(46),i=n(95),a=n(6);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(a(e)),n=i.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(2);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,i=n(3),a=n(72),c=i.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(40),i=n(8);e.exports=function(e){for(var t=o(this),n=i(t.length),a=arguments.length,c=r(a>1?arguments[1]:undefined,n),l=a>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(11),r=n(64),i=o("iterator"),a=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||a[i]===e)}},function(e,t,n){"use strict";var o=n(73),r=n(64),i=n(11)("iterator");e.exports=function(e){if(e!=undefined)return e[i]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(11)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(0),r=n(207),i=n(34),a=n(49),c=n(42),l=n(27),u=n(21),s=n(11),d=n(37),f=n(64),p=n(142),m=p.IteratorPrototype,h=p.BUGGY_SAFARI_ITERATORS,g=s("iterator"),v=function(){return this};e.exports=function(e,t,n,s,p,b,y){r(n,t,s);var C,N,V,x=function(e){if(e===p&&E)return E;if(!h&&e in k)return k[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},_=t+" Iterator",w=!1,k=e.prototype,S=k[g]||k["@@iterator"]||p&&k[p],E=!h&&S||x(p),B="Array"==t&&k.entries||S;if(B&&(C=i(B.call(new e)),m!==Object.prototype&&C.next&&(d||i(C)===m||(a?a(C,m):"function"!=typeof C[g]&&l(C,g,v)),c(C,_,!0,!0),d&&(f[_]=v))),"values"==p&&S&&"values"!==S.name&&(w=!0,E=function(){return S.call(this)}),d&&!y||k[g]===E||l(k,g,E),f[t]=E,p)if(N={values:x("values"),keys:b?E:x("keys"),entries:x("entries")},y)for(V in N)(h||w||!(V in k))&&u(k,V,N[V]);else o({target:t,proto:!0,forced:h||w},N);return N}},function(e,t,n){"use strict";var o=n(2);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";e.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},function(e,t,n){"use strict";var o=n(8),r=n(106),i=n(20),a=Math.ceil,c=function(e){return function(t,n,c){var l,u,s=String(i(t)),d=s.length,f=c===undefined?" ":String(c),p=o(n);return p<=d||""==f?s:(l=p-d,(u=r.call(f,a(l/f.length))).length>l&&(u=u.slice(0,l)),e?s+u:u+s)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(28),r=n(20);e.exports="".repeat||function(e){var t=String(r(this)),n="",i=o(e);if(i<0||i==Infinity)throw RangeError("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,i,a=n(3),c=n(2),l=n(31),u=n(47),s=n(135),d=n(89),f=n(154),p=a.location,m=a.setImmediate,h=a.clearImmediate,g=a.process,v=a.MessageChannel,b=a.Dispatch,y=0,C={},N=function(e){if(C.hasOwnProperty(e)){var t=C[e];delete C[e],t()}},V=function(e){return function(){N(e)}},x=function(e){N(e.data)},_=function(e){a.postMessage(e+"",p.protocol+"//"+p.host)};m&&h||(m=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return C[++y]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(y),y},h=function(e){delete C[e]},"process"==l(g)?o=function(e){g.nextTick(V(e))}:b&&b.now?o=function(e){b.now(V(e))}:v&&!f?(i=(r=new v).port2,r.port1.onmessage=x,o=u(i.postMessage,i,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||c(_)||"file:"===p.protocol?o="onreadystatechange"in d("script")?function(e){s.appendChild(d("script")).onreadystatechange=function(){s.removeChild(this),N(e)}}:function(e){setTimeout(V(e),0)}:(o=_,a.addEventListener("message",x,!1))),e.exports={set:m,clear:h}},function(e,t,n){"use strict";var o=n(4),r=n(31),i=n(11)("match");e.exports=function(e){var t;return o(e)&&((t=e[i])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(2);function r(e,t){return RegExp(e,t)}t.UNSUPPORTED_Y=o((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=o((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,n){"use strict";var o=n(28),r=n(20),i=function(e){return function(t,n){var i,a,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(i=c.charCodeAt(l))<55296||i>56319||l+1===u||(a=c.charCodeAt(l+1))<56320||a>57343?e?c.charAt(l):i:e?c.slice(l,l+2):a-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,n){"use strict";var o=n(109);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(11)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(111).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(2),r=n(80);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(3),r=n(2),i=n(74),a=n(7).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!a||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!i((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";function o(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1?r-1:0),c=1;c1?o-1:0),i=1;i=0||(o[n]=e[n]);return o}(e,["className","scrollable","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Layout__content",n&&"Layout__content--scrollable",t].concat((0,i.computeBoxClassName)(c))),a,0,Object.assign({id:"Layout__content"},(0,i.computeBoxProps)(c))))}},function(e,t,n){"use strict";t.__esModule=!0,t.AnimatedNumber=void 0;var r=n(34),o=n(1);var i=function(e){return"number"==typeof e&&Number.isFinite(e)&&!Number.isNaN(e)},a=function(e){var t,n;function o(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={value:0},i(t.initial)?n.state.value=t.initial:i(t.value)&&(n.state.value=Number(t.value)),n}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=o.prototype;return a.tick=function(){var e=this.props,t=this.state,n=Number(t.value),r=Number(e.value);if(i(r)){var o=.5*n+.5*r;this.setState({value:o})}},a.componentDidMount=function(){var e=this;this.timer=setInterval((function(){return e.tick()}),50)},a.componentWillUnmount=function(){clearTimeout(this.timer)},a.render=function(){var e=this.props,t=this.state,n=e.format,o=e.children,a=t.value,c=e.value;if(!i(c))return c||null;var u=a;if(n)u=n(a);else{var l=String(c).split(".")[1],s=l?l.length:0;u=(0,r.toFixed)(a,(0,r.clamp)(s,0,8))}return"function"==typeof o?o(u,a):u},o}(o.Component);t.AnimatedNumber=a},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var r=n(1),o=n(9),i=n(86),a=n(17),c=n(36),u=n(15),l=n(122),s=n(166);function d(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function f(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var p=(0,c.createLogger)("Button"),m=function(e){var t=e.className,n=e.fluid,c=e.icon,d=e.color,m=e.disabled,h=e.selected,v=e.tooltip,g=e.tooltipPosition,b=e.ellipsis,y=e.content,C=e.iconRotation,N=e.iconSpin,x=e.children,V=e.onclick,w=e.onClick,_=f(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),k=!(!y&&!x);return V&&p.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid",m&&"Button--disabled",h&&"Button--selected",k&&"Button--hasContent",b&&"Button--ellipsis",d&&"string"==typeof d?"Button--color--"+d:"Button--color--default",t]),tabIndex:!m&&"0",unselectable:Byond.IS_LTE_IE8,onclick:function(e){(0,a.refocusLayout)(),!m&&w&&w(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!m&&w&&w(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,a.refocusLayout)()):void 0}},_,{children:[c&&(0,r.createComponentVNode)(2,l.Icon,{name:c,rotation:C,spin:N}),y,x,v&&(0,r.createComponentVNode)(2,s.Tooltip,{content:v,position:g})]})))};t.Button=m,m.defaultHooks=o.pureComponentHooks;var h=function(e){var t=e.checked,n=f(e,["checked"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,m,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=h,m.Checkbox=h;var v=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}d(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,o=void 0===n?"Confirm?":n,i=t.confirmColor,a=void 0===i?"bad":i,c=t.confirmIcon,u=t.icon,l=t.color,s=t.content,d=t.onClick,p=f(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,m,Object.assign({content:this.state.clickedOnce?o:s,icon:this.state.clickedOnce?c:u,color:this.state.clickedOnce?a:l,onClick:function(){return e.state.clickedOnce?d():e.setClickedOnce(!0)}},p)))},t}(r.Component);t.ButtonConfirm=v,m.Confirm=v;var g=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={inInput:!1},t}d(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.icon,d=t.iconRotation,p=t.iconSpin,m=t.tooltip,h=t.tooltipPosition,v=t.color,g=void 0===v?"default":v,b=(t.placeholder,t.maxLength,f(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.Box,Object.assign({className:(0,o.classes)(["Button",n&&"Button--fluid","Button--color--"+g])},b,{onClick:function(){return e.setInInput(!0)},children:[c&&(0,r.createComponentVNode)(2,l.Icon,{name:c,rotation:d,spin:p}),(0,r.createVNode)(1,"div",null,a,0),(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),m&&(0,r.createComponentVNode)(2,s.Tooltip,{content:m,position:h})]})))},t}(r.Component);t.ButtonInput=g,m.Input=g},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var r=n(1),o=n(9),i=n(15);var a=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,u=e.className,l=e.style,s=void 0===l?{}:l,d=e.rotation,f=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["name","size","spin","className","style","rotation"]);n&&(s["font-size"]=100*n+"%"),"number"==typeof d&&(s.transform="rotate("+d+"deg)");var p=a.test(t),m=t.replace(a,"");return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({as:"i",className:(0,o.classes)([u,p?"far":"fas","fa-"+m,c&&"fa-spin"]),style:s},f)))};t.Icon=c,c.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.DraggableControl=void 0;var r=n(1),o=n(34),i=n(9),a=n(120);var c=function(e,t){return e.screenX*t[0]+e.screenY*t[1]},u=function(e){var t,n;function i(t){var n;return(n=e.call(this,t)||this).inputRef=(0,r.createRef)(),n.state={value:t.value,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props,r=t.value,o=t.dragMatrix;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:c(e,o),value:r,internalValue:r}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,a=t.step,u=t.stepPixelSize,l=t.dragMatrix;n.setState((function(t){var n=Object.assign({},t),s=c(e,l)-n.origin;if(t.dragging){var d=Number.isFinite(r)?r%a:0;n.internalValue=(0,o.clamp)(n.internalValue+s*a/u,r-a,i+a),n.value=(0,o.clamp)(n.internalValue-n.internalValue%a+d,r,i),n.origin=c(e,l)}else Math.abs(s)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,a=i.dragging,c=i.value,u=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),r&&r(e,c),o&&o(e,c);else if(n.inputRef){var l=n.inputRef.current;l.value=u;try{l.focus(),l.select()}catch(s){}}},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.state,n=t.dragging,i=t.editing,c=t.value,u=t.suppressingFlicker,l=this.props,s=l.animated,d=l.value,f=l.unit,p=l.minValue,m=l.maxValue,h=l.format,v=l.onChange,g=l.onDrag,b=l.children,y=l.height,C=l.lineHeight,N=l.fontSize,x=d;(n||u)&&(x=c);var V=function(e){return e+(f?" "+f:"")},w=s&&!n&&!u&&(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:x,format:h,children:V})||V(h?h(x):x),_=(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?undefined:"none",height:y,"line-height":C,"font-size":N},onBlur:function(t){if(i){var n=(0,o.clamp)(t.target.value,p,m);e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),g&&g(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(t.target.value,p,m);return e.setState({editing:!1,value:n}),e.suppressFlicker(),v&&v(t,n),void(g&&g(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef);return b({dragging:n,editing:i,value:d,displayValue:x,displayElement:w,inputElement:_,handleDragStart:this.handleDragStart})},i}(r.Component);t.DraggableControl=u,u.defaultHooks=i.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]}},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var r=n(1),o=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.collapsing,c=e.children,u=a(e,["className","collapsing","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"table",(0,o.classes)(["Table",n&&"Table--collapsing",t,(0,i.computeBoxClassName)(u)]),(0,r.createVNode)(1,"tbody",null,c,0),2,Object.assign({},(0,i.computeBoxProps)(u))))};t.Table=c,c.defaultHooks=o.pureComponentHooks;var u=function(e){var t=e.className,n=e.header,c=a(e,["className","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"tr",(0,o.classes)(["Table__row",n&&"Table__row--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(c))))};t.TableRow=u,u.defaultHooks=o.pureComponentHooks;var l=function(e){var t=e.className,n=e.collapsing,c=e.header,u=a(e,["className","collapsing","header"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"td",(0,o.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(u))))};t.TableCell=l,l.defaultHooks=o.pureComponentHooks,c.Row=u,c.Cell=l},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var r=n(1),o=n(34),i=n(9),a=n(120),c=n(15);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,r.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,r=t.dragging,o=t.value,i=n.props.onDrag;r&&i&&i(e,o)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,r=t.minValue,i=t.maxValue,a=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),u=n.origin-e.screenY;if(t.dragging){var l=Number.isFinite(r)?r%a:0;n.internalValue=(0,o.clamp)(n.internalValue+u*a/c,r-a,i+a),n.value=(0,o.clamp)(n.internalValue-n.internalValue%a+l,r,i),n.origin=e.screenY}else Math.abs(u)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,r=t.onChange,o=t.onDrag,i=n.state,a=i.dragging,c=i.value,u=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),r&&r(e,c),o&&o(e,c);else if(n.inputRef){var l=n.inputRef.current;l.value=u;try{l.focus(),l.select()}catch(s){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,l=t.value,s=t.suppressingFlicker,d=this.props,f=d.className,p=d.fluid,m=d.animated,h=d.value,v=d.unit,g=d.minValue,b=d.maxValue,y=d.height,C=d.width,N=d.lineHeight,x=d.fontSize,V=d.format,w=d.onChange,_=d.onDrag,k=h;(n||s)&&(k=l);var S=function(e){return(0,r.createVNode)(1,"div","NumberInput__content",e+(v?" "+v:""),0,{unselectable:Byond.IS_LTE_IE8})},E=m&&!n&&!s&&(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:k,format:V,children:S})||S(V?V(k):k);return(0,r.createComponentVNode)(2,c.Box,{className:(0,i.classes)(["NumberInput",p&&"NumberInput--fluid",f]),minWidth:C,minHeight:y,lineHeight:N,fontSize:x,onMouseDown:this.handleDragStart,children:[(0,r.createVNode)(1,"div","NumberInput__barContainer",(0,r.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,o.clamp)((k-g)/(b-g)*100,0,100)+"%"}}),2),E,(0,r.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:y,"line-height":N,"font-size":x},onBlur:function(t){if(u){var n=(0,o.clamp)(t.target.value,g,b);e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),_&&_(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,o.clamp)(t.target.value,g,b);return e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),void(_&&_(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(r.Component);t.NumberInput=u,u.defaultHooks=i.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";var r=n(5),o=n(2),i=n(88);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(3),o=n(89),i=r["__core-js_shared__"]||o("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var r=n(3),o=n(90),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},function(e,t,n){"use strict";var r=n(16),o=n(92),i=n(19),a=n(12);e.exports=function(e,t){for(var n=o(t),c=a.f,u=i.f,l=0;lu;)r(c,n=t[u++])&&(~i(l,n)||l.push(n));return l}},function(e,t,n){"use strict";var r=n(95);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var r=n(5),o=n(12),i=n(6),a=n(61);e.exports=r?Object.defineProperties:function(e,t){i(e);for(var n,r=a(t),c=r.length,u=0;c>u;)o.f(e,n=r[u++],t[n]);return e}},function(e,t,n){"use strict";var r=n(35);e.exports=r("document","documentElement")},function(e,t,n){"use strict";var r=n(23),o=n(46).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(t){return a.slice()}}(e):o(r(e))}},function(e,t,n){"use strict";var r=n(10);t.f=r},function(e,t,n){"use strict";var r=n(14),o=n(40),i=n(8),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=r(this),c=i(n.length),u=o(e,c),l=o(t,c),s=arguments.length>2?arguments[2]:undefined,d=a((s===undefined?c:o(s,c))-l,c-u),f=1;for(l0;)l in n?n[u]=n[l]:delete n[u],u+=f,l+=f;return n}},function(e,t,n){"use strict";var r=n(51),o=n(8),i=n(47);e.exports=function a(e,t,n,c,u,l,s,d){for(var f,p=u,m=0,h=!!s&&i(s,d,3);m0&&r(f))p=a(e,t,f,o(f.length),p,l-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=f}p++}m++}return p}},function(e,t,n){"use strict";var r=n(6);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(a){var i=e["return"];throw i!==undefined&&r(i.call(e)),a}}},function(e,t,n){"use strict";var r=n(23),o=n(43),i=n(64),a=n(32),c=n(101),u=a.set,l=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){u(this,{type:"Array Iterator",target:r(e),index:0,kind:t})}),(function(){var e=l(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(e,t,n){"use strict";var r,o,i,a=n(33),c=n(27),u=n(16),l=n(10),s=n(37),d=l("iterator"),f=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):f=!0),r==undefined&&(r={}),s||u(r,d)||c(r,d,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:f}},function(e,t,n){"use strict";var r=n(4);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var r=n(23),o=n(28),i=n(8),a=n(38),c=n(22),u=Math.min,l=[].lastIndexOf,s=!!l&&1/[1].lastIndexOf(1,-0)<0,d=a("lastIndexOf"),f=c("indexOf",{ACCESSORS:!0,1:0}),p=s||!d||!f;e.exports=p?function(e){if(s)return l.apply(this,arguments)||0;var t=r(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=u(a,o(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:l},function(e,t,n){"use strict";var r=n(28),o=n(8);e.exports=function(e){if(e===undefined)return 0;var t=r(e),n=o(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var r=n(29),o=n(4),i=[].slice,a={},c=function(e,t,n){if(!(t in a)){for(var r=[],o=0;o1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),i(s.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return v(this,0===e?0:e,t)}}:{add:function(e){return v(this,e=0===e?0:e,e)}}),d&&r(s.prototype,"size",{get:function(){return p(this).size}}),s},setStrong:function(e,t,n){var r=t+" Iterator",o=h(t),i=h(r);l(e,t,(function(e,t){m(this,{type:r,target:e,state:o(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),s(t)}}},function(e,t,n){"use strict";var r=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:r(1+e)}},function(e,t,n){"use strict";var r=n(4),o=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&o(e)===e}},function(e,t,n){"use strict";var r=n(3),o=n(54).trim,i=n(80),a=r.parseInt,c=/^[+-]?0[Xx]/,u=8!==a(i+"08")||22!==a(i+"0x16");e.exports=u?function(e,t){var n=o(String(e));return a(n,t>>>0||(c.test(n)?16:10))}:a},function(e,t,n){"use strict";var r=n(5),o=n(61),i=n(23),a=n(70).f,c=function(e){return function(t){for(var n,c=i(t),u=o(c),l=u.length,s=0,d=[];l>s;)n=u[s++],r&&!a.call(c,n)||d.push(e?[n,c[n]]:c[n]);return d}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(3);e.exports=r.Promise},function(e,t,n){"use strict";var r=n(72);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(e,t,n){"use strict";var r,o,i,a,c,u,l,s,d=n(3),f=n(19).f,p=n(30),m=n(107).set,h=n(153),v=d.MutationObserver||d.WebKitMutationObserver,g=d.process,b=d.Promise,y="process"==p(g),C=f(d,"queueMicrotask"),N=C&&C.value;N||(r=function(){var e,t;for(y&&(e=g.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(n){throw o?a():i=undefined,n}}i=undefined,e&&e.enter()},y?a=function(){g.nextTick(r)}:v&&!h?(c=!0,u=document.createTextNode(""),new v(r).observe(u,{characterData:!0}),a=function(){u.data=c=!c}):b&&b.resolve?(l=b.resolve(undefined),s=l.then,a=function(){s.call(l,r)}):a=function(){m.call(d,r)}),e.exports=N||function(e){var t={fn:e,next:undefined};i&&(i.next=t),o||(o=t,a()),i=t}},function(e,t,n){"use strict";var r=n(6),o=n(4),i=n(156);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var r=n(29),o=function(e){var t,n;this.promise=new e((function(e,r){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(0),o=n(83);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(e,t,n){"use strict";var r=n(72);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(r)},function(e,t,n){"use strict";var r=n(351);e.exports=function(e,t){var n=r(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var r=n(14),o=n(8),i=n(99),a=n(98),c=n(47),u=n(7).aTypedArrayConstructor;e.exports=function(e){var t,n,l,s,d,f,p=r(e),m=arguments.length,h=m>1?arguments[1]:undefined,v=h!==undefined,g=i(p);if(g!=undefined&&!a(g))for(f=(d=g.call(p)).next,p=[];!(s=f.call(d)).done;)p.push(s.value);for(v&&m>2&&(h=c(h,arguments[2],2)),n=o(p.length),l=new(u(this))(n),t=0;n>t;t++)l[t]=v?h(p[t],t):p[t];return l}},function(e,t,n){"use strict";var r=n(65),o=n(50).getWeakData,i=n(6),a=n(4),c=n(53),u=n(67),l=n(18),s=n(16),d=n(32),f=d.set,p=d.getterFor,m=l.find,h=l.findIndex,v=0,g=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},y=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,l){var d=e((function(e,r){c(e,d,t),f(e,{type:t,id:v++,frozen:undefined}),r!=undefined&&u(r,e[l],e,n)})),m=p(t),h=function(e,t,n){var r=m(e),a=o(i(t),!0);return!0===a?g(r).set(t,n):a[r.id]=n,e};return r(d.prototype,{"delete":function(e){var t=m(this);if(!a(e))return!1;var n=o(e);return!0===n?g(t)["delete"](e):n&&s(n,t.id)&&delete n[t.id]},has:function(e){var t=m(this);if(!a(e))return!1;var n=o(e);return!0===n?g(t).has(e):n&&s(n,t.id)}}),r(d.prototype,n?{get:function(e){var t=m(this);if(a(e)){var n=o(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),d}}},function(e,t,n){"use strict";t.__esModule=!0,t.perf=void 0;var r={mark:function(e,t){0},measure:function(e,t){0}};t.perf=r},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=t.recallWindowGeometry=t.storeWindowGeometry=t.getScreenSize=t.getScreenPosition=t.setWindowSize=t.setWindowPosition=t.getWindowSize=t.getWindowPosition=t.setWindowKey=void 0;var r=n(409),o=n(410);function i(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(l){return void n(l)}c.done?t(u):Promise.resolve(u).then(r,o)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function c(e){i(a,r,o,c,u,"next",e)}function u(e){i(a,r,o,c,u,"throw",e)}c(undefined)}))}}var c,u,l,s,d,f=(0,n(36).createLogger)("drag"),p=window.__windowId__,m=!1,h=!1,v=[0,0];t.setWindowKey=function(e){p=e};var g=function(){return[window.screenLeft,window.screenTop]};t.getWindowPosition=g;var b=function(){return[window.innerWidth,window.innerHeight]};t.getWindowSize=b;var y=function(e){var t=(0,o.vecAdd)(e,v);return Byond.winset(window.__windowId__,{pos:t[0]+","+t[1]})};t.setWindowPosition=y;var C=function(e){return Byond.winset(window.__windowId__,{size:e[0]+"x"+e[1]})};t.setWindowSize=C;var N=function(){return[0-v[0],0-v[1]]};t.getScreenPosition=N;var x=function(){return[window.screen.availWidth,window.screen.availHeight]};t.getScreenSize=x;var V=function(e){f.log("storing geometry");var t={pos:g(),size:b()};r.storage.set(e,t);var n=function(e,t,n){void 0===n&&(n=50);for(var r,o=[t],i=0;iu&&(o[a]=u-t[a],i=!0)}return[i,o]};t.dragStartHandler=function(e){f.log("drag start"),m=!0,u=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",E),document.addEventListener("mouseup",S),E(e)};var S=function I(e){f.log("drag end"),E(e),document.removeEventListener("mousemove",E),document.removeEventListener("mouseup",I),m=!1,V(p)},E=function(e){m&&(e.preventDefault(),y((0,o.vecAdd)([e.screenX,e.screenY],u)))};t.resizeStartHandler=function(e,t){return function(n){l=[e,t],f.log("resize start",l),h=!0,u=[window.screenLeft-n.screenX,window.screenTop-n.screenY],s=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",L),document.addEventListener("mouseup",B),L(n)}};var B=function O(e){f.log("resize end",d),L(e),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",O),h=!1,V(p)},L=function(e){h&&(e.preventDefault(),(d=(0,o.vecAdd)(s,(0,o.vecMultiply)(l,(0,o.vecAdd)([e.screenX,e.screenY],(0,o.vecInverse)([window.screenLeft,window.screenTop]),u,[1,1]))))[0]=Math.max(d[0],150),d[1]=Math.max(d[1],50),C(d))}},function(e,t,n){"use strict";t.__esModule=!0,t.useDispatch=t.StoreProvider=t.createStore=void 0;var r=n(116),o=n(411),i=n(1),a=n(11),c=n(117),u=n(86),l=n(36),s=n(118);(0,l.createLogger)("store");t.createStore=function(){var e=(0,r.flow)([function(e,t){return void 0===e&&(e={}),e},(0,o.combineReducers)({debug:c.debugReducer,backend:a.backendReducer})]),t=[!1,s.assetMiddleware,u.hotKeyMiddleware,a.backendMiddleware];return(0,o.createStore)(e,o.applyMiddleware.apply(void 0,t.filter(Boolean)))};var d=function(e){var t,n;function r(){return e.apply(this,arguments)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var o=r.prototype;return o.getChildContext=function(){return{store:this.props.store}},o.render=function(){return this.props.children},r}(i.Component);t.StoreProvider=d;t.useDispatch=function(e){return e.store.dispatch}},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=void 0;var r=n(1),o=n(9);t.Tooltip=function(e){var t=e.content,n=e.position,i=void 0===n?"bottom":n,a="string"==typeof t&&t.length>35;return(0,r.createVNode)(1,"div",(0,o.classes)(["Tooltip",a&&"Tooltip--long",i&&"Tooltip--"+i]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var r=n(1),o=n(9),i=n(15);t.Dimmer=function(e){var t=e.className,n=e.children,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Dimmer"].concat(t))},a,{children:(0,r.createVNode)(1,"div","Dimmer__inner",n,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Divider=void 0;var r=n(1),o=n(9);t.Divider=function(e){var t=e.vertical,n=e.hidden;return(0,r.createVNode)(1,"div",(0,o.classes)(["Divider",n&&"Divider--hidden",t?"Divider--vertical":"Divider--horizontal"]))}},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var r=n(1),o=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.className,n=e.direction,r=e.wrap,i=e.align,c=e.alignContent,u=e.justify,l=e.inline,s=e.spacing,d=void 0===s?0:s,f=e.spacingPrecise,p=void 0===f?0:f,m=a(e,["className","direction","wrap","align","alignContent","justify","inline","spacing","spacingPrecise"]);return Object.assign({className:(0,o.classes)(["Flex",Byond.IS_LTE_IE10&&("column"===n?"Flex--iefix--column":"Flex--iefix"),l&&"Flex--inline",d>0&&"Flex--spacing--"+d,p>0&&"Flex--spacingPrecise--"+p,t]),style:Object.assign({},m.style,{"flex-direction":n,"flex-wrap":r,"align-items":i,"align-content":c,"justify-content":u})},m)};t.computeFlexProps=c;var u=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},c(e))))};t.Flex=u,u.defaultHooks=o.pureComponentHooks;var l=function(e){var t=e.className,n=e.grow,r=e.order,c=e.shrink,u=e.basis,l=void 0===u?e.width:u,s=e.align,d=a(e,["className","grow","order","shrink","basis","align"]);return Object.assign({className:(0,o.classes)(["Flex__item",Byond.IS_LTE_IE10&&"Flex__item--iefix",t]),style:Object.assign({},d.style,{"flex-grow":n,"flex-shrink":c,"flex-basis":(0,i.unit)(l),order:r,"align-self":s})},d)};t.computeFlexItemProps=l;var s=function(e){return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({},l(e))))};t.FlexItem=s,s.defaultHooks=o.pureComponentHooks,u.Item=s},function(e,t,n){"use strict";t.__esModule=!0,t.Window=void 0;var r=n(1),o=n(9),i=n(171),a=n(11),c=n(13),u=n(55),l=n(117),s=n(164),d=n(36),f=n(165),p=n(119);var m=(0,d.createLogger)("Window"),h=[400,600],v=function(e){var t,n;function c(){return e.apply(this,arguments)||this}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=c.prototype;return d.componentDidMount=function(){var e=(0,a.useBackend)(this.context),t=e.config;if(!e.suspended){m.log("mounting");var n=Object.assign({size:h},t.window);this.props.width&&this.props.height&&(n.size=[this.props.width,this.props.height]),(0,s.setWindowKey)(t.window.key),(0,s.recallWindowGeometry)(t.window.key,n),(0,p.refocusLayout)()}},d.render=function(){var e,t=this.props,n=t.resizable,c=t.theme,d=t.title,h=t.children,v=(0,a.useBackend)(this.context),g=v.config,y=v.suspended,C=(0,l.useDebug)(this.context).debugLayout,N=(0,f.useDispatch)(this.context),x=null==(e=g.window)?void 0:e.fancy,V=g.user.observer?g.status=0||(o[n]=e[n]);return o}(e,["className","fitted","scrollable","children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,p.Layout.Content,Object.assign({scrollable:i,className:(0,o.classes)(["Window__content",t])},c,{children:n&&a||(0,r.createVNode)(1,"div","Window__contentPadding",a,0)})))};var g=function(e){switch(e){case u.UI_INTERACTIVE:return"good";case u.UI_UPDATE:return"average";case u.UI_DISABLED:default:return"bad"}},b=function(e,t){var n=e.className,a=e.title,u=e.status,l=e.fancy,s=e.onDragStart,d=e.onClose;(0,f.useDispatch)(t);return(0,r.createVNode)(1,"div",(0,o.classes)(["TitleBar",n]),[(0,r.createComponentVNode)(2,c.Icon,{className:"TitleBar__statusIcon",color:g(u),name:"eye"}),(0,r.createVNode)(1,"div","TitleBar__title","string"==typeof a&&a===a.toLowerCase()&&(0,i.toTitleCase)(a)||a,0),(0,r.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return l&&s(e)}}),!1,!!l&&(0,r.createVNode)(1,"div","TitleBar__close TitleBar__clickable",Byond.IS_LTE_IE8?"x":"\xd7",0,{onclick:d})],0)}},function(e,t,n){"use strict";function r(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",apos:"'"};return e.replace(/ /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";t.__esModule=!0,t.CameraConsoleSearch=t.CameraConsoleContent=t.CameraConsole=void 0;var r=n(1),o=n(87),i=n(116),a=n(9),c=n(171),u=n(11),l=n(13),s=n(17),d=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n="");var r=(0,c.createSearch)(t,(function(e){return e.name}));return(0,i.flow)([(0,o.filter)((function(e){return null==e?void 0:e.name})),t&&(0,o.filter)(r),n&&(0,o.filter)((function(e){return e.networks.includes(n)})),(0,o.sortBy)((function(e){return e.name}))])(e)};t.CameraConsole=function(e,t){return(0,r.createComponentVNode)(2,s.Window,{width:870,height:708,resizable:!0,children:(0,r.createComponentVNode)(2,f)})};var f=function(e,t){var n=(0,u.useBackend)(t),o=n.act,i=n.data,a=(n.config,i.mapRef),c=i.activeCamera,f=function(e,t){var n,r;if(!t)return[];var o=e.findIndex((function(e){return e.name===t.name}));return[null==(n=e[o-1])?void 0:n.name,null==(r=e[o+1])?void 0:r.name]}(d(i.cameras),c),m=f[0],h=f[1];return(0,r.createFragment)([(0,r.createVNode)(1,"div","CameraConsole__left",(0,r.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:(0,r.createComponentVNode)(2,p)}),2),(0,r.createVNode)(1,"div","CameraConsole__right",[(0,r.createVNode)(1,"div","CameraConsole__toolbar",[(0,r.createVNode)(1,"b",null,"Camera: ",16),c&&c.name||"\u2014"],0),(0,r.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,r.createComponentVNode)(2,l.Button,{icon:"chevron-left",disabled:!m,onClick:function(){return o("switch_camera",{name:m})}}),(0,r.createComponentVNode)(2,l.Button,{icon:"chevron-right",disabled:!h,onClick:function(){return o("switch_camera",{name:h})}})],4),(0,r.createComponentVNode)(2,l.ByondUi,{className:"CameraConsole__map",params:{id:a,type:"map"}})],4)],4)};t.CameraConsoleContent=f;var p=function(e,t){var n=(0,u.useBackend)(t),o=n.act,i=n.data,c=(0,u.useLocalState)(t,"searchText",""),f=c[0],p=c[1],m=(0,u.useLocalState)(t,"networkFilter",""),h=m[0],v=m[1],g=i.activeCamera,b=i.allNetworks;b.sort();var y=d(i.cameras,f,h);return(0,r.createFragment)([(0,r.createComponentVNode)(2,l.Input,{fluid:!0,mb:1,placeholder:"Search for a camera",onInput:function(e,t){return p(t)}}),(0,r.createComponentVNode)(2,l.Dropdown,{mb:1,width:"177px",options:b,placeholder:"No Filter",onSelected:function(e){return v(e)}}),(0,r.createComponentVNode)(2,l.Section,{children:y.map((function(e){return(0,r.createVNode)(1,"div",(0,a.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",g&&e.name===g.name&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){(0,s.refocusLayout)(),o("switch_camera",{name:e.name})}},e.name)}))})],4)};t.CameraConsoleSearch=p},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var r=n(1),o=n(13),i=n(439),a=function(e){var t=e.beakerLoaded,n=e.beakerContents,i=void 0===n?[]:n,a=e.buttons;return(0,r.createComponentVNode)(2,o.Box,{children:[!t&&(0,r.createComponentVNode)(2,o.Box,{color:"label",children:"No beaker loaded."})||0===i.length&&(0,r.createComponentVNode)(2,o.Box,{color:"label",children:"Beaker is empty."}),i.map((function(e,t){return(0,r.createComponentVNode)(2,o.Box,{width:"100%",children:[(0,r.createComponentVNode)(2,o.Box,{color:"label",display:"inline",verticalAlign:"middle",children:[(n=e.volume,n+" unit"+(1===n?"":"s"))," of ",e.name]}),!!a&&(0,r.createComponentVNode)(2,o.Box,{float:"right",display:"inline",children:a(e,t)}),(0,r.createComponentVNode)(2,o.Box,{clear:"both"})]},e.name);var n}))]})};t.BeakerContents=a,a.propTypes={beakerLoaded:i.bool,beakerContents:i.array,buttons:i.arrayOf(i.element)}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewMonitorContent=t.CrewMonitor=void 0;var r=n(1),o=n(87),i=n(11),a=n(17),c=n(13),u=n(124);n(55);t.CrewMonitor=function(){return(0,r.createComponentVNode)(2,a.Window,{width:800,height:600,resizable:!0,children:(0,r.createComponentVNode)(2,a.Window.Content,{children:(0,r.createComponentVNode)(2,l)})})};var l=function(e,t){var n,a=(0,i.useBackend)(t),l=a.act,s=a.data,d=a.config,f=(0,i.useLocalState)(t,"tabIndex",0),p=f[0],m=f[1],h=(0,o.sortBy)((function(e){return e.name}))(s.crewmembers||[]),v=(0,i.useLocalState)(t,"number",1),g=v[0],b=v[1];return n=0===p?(0,r.createComponentVNode)(2,c.Table,{children:[(0,r.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,r.createComponentVNode)(2,c.Table.Cell,{children:"Name"}),(0,r.createComponentVNode)(2,c.Table.Cell,{children:"Status"}),(0,r.createComponentVNode)(2,c.Table.Cell,{children:"Location"})]}),h.map((function(e){return(0,r.createComponentVNode)(2,c.Table.Row,{children:[(0,r.createComponentVNode)(2,u.TableCell,{children:[e.name," (",e.assignment,")"]}),(0,r.createComponentVNode)(2,u.TableCell,{children:[(0,r.createComponentVNode)(2,c.Box,{inline:!0,color:e.dead?"red":"green",children:e.dead?"Deceased":"Living"}),e.sensor_type>=2?(0,r.createComponentVNode)(2,c.Box,{inline:!0,children:["(",(0,r.createComponentVNode)(2,c.Box,{inline:!0,color:"red",children:e.brute}),"|",(0,r.createComponentVNode)(2,c.Box,{inline:!0,color:"orange",children:e.fire}),"|",(0,r.createComponentVNode)(2,c.Box,{inline:!0,color:"green",children:e.tox}),"|",(0,r.createComponentVNode)(2,c.Box,{inline:!0,color:"blue",children:e.oxy}),")"]}):null]}),(0,r.createComponentVNode)(2,u.TableCell,{children:3===e.sensor_type?s.isAI?(0,r.createComponentVNode)(2,c.Button,{fluid:!0,icon:"location-arrow",content:e.area+" ("+e.x+", "+e.y+")",onClick:function(){return l("track",{track:e.ref})}}):e.area+" ("+e.x+", "+e.y+", "+e.z+")":"Not Available"})]},e.name)}))]}):1===p?(0,r.createComponentVNode)(2,c.Box,{textAlign:"center",children:["Zoom Level:",(0,r.createComponentVNode)(2,c.NumberInput,{animated:!0,width:"40px",step:.5,stepPixelSize:"5",value:g,minValue:1,maxValue:8,onChange:function(e,t){return b(t)}}),"Z-Level:",s.map_levels.sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return(0,r.createComponentVNode)(2,c.Button,{selected:~~e==~~d.mapZLevel,content:e,onClick:function(){l("setZLevel",{mapZLevel:e})}},e)})),(0,r.createComponentVNode)(2,c.NanoMap,{zoom:g,children:h.filter((function(e){return 3===e.sensor_type&&~~e.realZ==~~d.mapZLevel})).map((function(e){return(0,r.createComponentVNode)(2,c.NanoMap.Marker,{x:e.x,y:e.y,zoom:g,icon:"circle",tooltip:e.name,color:e.dead?"red":"green"},e.ref)}))})]}):"ERROR",(0,r.createFragment)([(0,r.createComponentVNode)(2,c.Tabs,{children:[(0,r.createComponentVNode)(2,c.Tabs.Tab,{selected:0===p,onClick:function(){return m(0)},children:[(0,r.createComponentVNode)(2,c.Icon,{name:"table"})," Data View"]},"DataView"),(0,r.createComponentVNode)(2,c.Tabs.Tab,{selected:1===p,onClick:function(){return m(1)},children:[(0,r.createComponentVNode)(2,c.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,r.createComponentVNode)(2,c.Box,{m:2,children:n})],4)};t.CrewMonitorContent=l},function(e,t,n){e.exports=n(176)},function(e,t,n){"use strict";n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(197),n(198),n(199),n(200),n(202),n(204),n(205),n(206),n(140),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(218),n(219),n(220),n(221),n(223),n(224),n(225),n(226),n(227),n(229),n(230),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(256),n(257),n(258),n(259),n(261),n(262),n(263),n(264),n(265),n(266),n(268),n(269),n(271),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(297),n(298),n(299),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(157),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389);var r=n(1);n(391),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(402),n(403),n(404),n(405);var o=n(162),i=(n(163),n(11)),a=n(164),c=n(36),u=n(165);
+ */t.toggleKitchenSink=r;var i=function(){return{type:"debug/toggleDebugLayout"}};t.toggleDebugLayout=i,(0,o.subscribeToHotKey)("F11",(function(){return{type:"debug/toggleDebugLayout"}})),(0,o.subscribeToHotKey)("F12",(function(){return{type:"debug/toggleKitchenSink"}})),(0,o.subscribeToHotKey)("Ctrl+Alt+[8]",(function(){setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")}))}));var a=function(e){return e.debug};t.selectDebug=a;t.useDebug=function(e){return a(e.store.getState())};t.debugReducer=function(e,t){void 0===e&&(e={});var n=t.type;t.payload;return"debug/toggleKitchenSink"===n?Object.assign({},e,{kitchenSink:!e.kitchenSink}):"debug/toggleDebugLayout"===n?Object.assign({},e,{debugLayout:!e.debugLayout}):e}},function(e,t,n){"use strict";t.__esModule=!0,t.assetMiddleware=t.resolveAsset=t.loadCSS=void 0;var o=n(412),r=(0,n(36).createLogger)("assets"),i=[/v4shim/i],a=[],c={},l=function(e){a.includes(e)||(a.push(e),r.log("loading stylesheet '"+e+"'"),(0,o.loadCSS)(e))};t.loadCSS=l;t.resolveAsset=function(e){return c[e]||e};t.assetMiddleware=function(e){return function(e){return function(t){var n=t.type,o=t.payload;if("asset/stylesheet"!==n)if("asset/mappings"!==n)e(t);else for(var r=function(){var e=u[a];if(i.some((function(t){return t.test(e)})))return"continue";var t=o[e],n=e.split(".").pop();c[e]=t,"css"===n&&l(t)},a=0,u=Object.keys(o);a=0||(r[n]=e[n]);return r}(e,["className","scrollable","children"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Layout__content",n&&"Layout__content--scrollable",t].concat((0,i.computeBoxClassName)(c))),a,0,Object.assign({id:"Layout__content"},(0,i.computeBoxProps)(c))))}},function(e,t,n){"use strict";t.__esModule=!0,t.AnimatedNumber=void 0;var o=n(30),r=n(1);var i=function(e){return"number"==typeof e&&Number.isFinite(e)&&!Number.isNaN(e)},a=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={value:0},i(t.initial)?n.state.value=t.initial:i(t.value)&&(n.state.value=Number(t.value)),n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=r.prototype;return a.tick=function(){var e=this.props,t=this.state,n=Number(t.value),o=Number(e.value);if(i(o)){var r=.5*n+.5*o;this.setState({value:r})}},a.componentDidMount=function(){var e=this;this.timer=setInterval((function(){return e.tick()}),50)},a.componentWillUnmount=function(){clearTimeout(this.timer)},a.render=function(){var e=this.props,t=this.state,n=e.format,r=e.children,a=t.value,c=e.value;if(!i(c))return c||null;var l=a;if(n)l=n(a);else{var u=String(c).split(".")[1],s=u?u.length:0;l=(0,o.toFixed)(a,(0,o.clamp)(s,0,8))}return"function"==typeof r?r(l,a):l},r}(r.Component);t.AnimatedNumber=a},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(1),r=n(9),i=n(86),a=n(16),c=n(36),l=n(15),u=n(123),s=n(167);function d(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function f(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var p=(0,c.createLogger)("Button"),m=function(e){var t=e.className,n=e.fluid,c=e.icon,d=e.color,m=e.disabled,h=e.selected,g=e.tooltip,v=e.tooltipPosition,b=e.ellipsis,y=e.content,C=e.iconRotation,N=e.iconSpin,V=e.children,x=e.onclick,_=e.onClick,w=f(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),k=!(!y&&!V);return x&&p.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid",m&&"Button--disabled",h&&"Button--selected",k&&"Button--hasContent",b&&"Button--ellipsis",d&&"string"==typeof d?"Button--color--"+d:"Button--color--default",t]),tabIndex:!m&&"0",unselectable:Byond.IS_LTE_IE8,onclick:function(e){(0,a.refocusLayout)(),!m&&_&&_(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!m&&_&&_(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,a.refocusLayout)()):void 0}},w,{children:[c&&(0,o.createComponentVNode)(2,u.Icon,{name:c,rotation:C,spin:N}),y,V,g&&(0,o.createComponentVNode)(2,s.Tooltip,{content:g,position:v})]})))};t.Button=m,m.defaultHooks=r.pureComponentHooks;var h=function(e){var t=e.checked,n=f(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,m,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=h,m.Checkbox=h;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}d(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmContent,r=void 0===n?"Confirm?":n,i=t.confirmColor,a=void 0===i?"bad":i,c=t.confirmIcon,l=t.icon,u=t.color,s=t.content,d=t.onClick,p=f(t,["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,m,Object.assign({content:this.state.clickedOnce?r:s,icon:this.state.clickedOnce?c:l,color:this.state.clickedOnce?a:u,onClick:function(){return e.state.clickedOnce?d():e.setClickedOnce(!0)}},p)))},t}(o.Component);t.ButtonConfirm=g,m.Confirm=g;var v=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}d(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.icon,d=t.iconRotation,p=t.iconSpin,m=t.tooltip,h=t.tooltipPosition,g=t.color,v=void 0===g?"default":g,b=(t.placeholder,t.maxLength,f(t,["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+v])},b,{onClick:function(){return e.setInInput(!0)},children:[c&&(0,o.createComponentVNode)(2,u.Icon,{name:c,rotation:d,spin:p}),(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef),m&&(0,o.createComponentVNode)(2,s.Tooltip,{content:m,position:h})]})))},t}(o.Component);t.ButtonInput=v,m.Input=v},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(1),r=n(9),i=n(15);var a=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,s=void 0===u?{}:u,d=e.rotation,f=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(s["font-size"]=100*n+"%"),"number"==typeof d&&(s.transform="rotate("+d+"deg)");var p=a.test(t),m=t.replace(a,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({as:"i",className:(0,r.classes)([l,p?"far":"fas","fa-"+m,c&&"fa-spin"]),style:s},f)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.DraggableControl=void 0;var o=n(1),r=n(30),i=n(9),a=n(121);var c=function(e,t){return e.screenX*t[0]+e.screenY*t[1]},l=function(e){var t,n;function i(t){var n;return(n=e.call(this,t)||this).inputRef=(0,o.createRef)(),n.state={value:t.value,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props,o=t.value,r=t.dragMatrix;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:c(e,r),value:o,internalValue:o}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,i=n.props.onDrag;o&&i&&i(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,i=t.maxValue,a=t.step,l=t.stepPixelSize,u=t.dragMatrix;n.setState((function(t){var n=Object.assign({},t),s=c(e,u)-n.origin;if(t.dragging){var d=Number.isFinite(o)?o%a:0;n.internalValue=(0,r.clamp)(n.internalValue+s*a/l,o-a,i+a),n.value=(0,r.clamp)(n.internalValue-n.internalValue%a+d,o,i),n.origin=c(e,u)}else Math.abs(s)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,i=n.state,a=i.dragging,c=i.value,l=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(s){}}},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.state,n=t.dragging,i=t.editing,c=t.value,l=t.suppressingFlicker,u=this.props,s=u.animated,d=u.value,f=u.unit,p=u.minValue,m=u.maxValue,h=u.format,g=u.onChange,v=u.onDrag,b=u.children,y=u.height,C=u.lineHeight,N=u.fontSize,V=d;(n||l)&&(V=c);var x=function(e){return e+(f?" "+f:"")},_=s&&!n&&!l&&(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:V,format:h,children:x})||x(h?h(V):V),w=(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?undefined:"none",height:y,"line-height":C,"font-size":N},onBlur:function(t){if(i){var n=(0,r.clamp)(t.target.value,p,m);e.setState({editing:!1,value:n}),e.suppressFlicker(),g&&g(t,n),v&&v(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,p,m);return e.setState({editing:!1,value:n}),e.suppressFlicker(),g&&g(t,n),void(v&&v(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef);return b({dragging:n,editing:i,value:d,displayValue:V,displayElement:_,inputElement:w,handleDragStart:this.handleDragStart})},i}(o.Component);t.DraggableControl=l,l.defaultHooks=i.pureComponentHooks,l.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]}},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(1),r=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.collapsing,c=e.children,l=a(e,["className","collapsing","children"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"table",(0,r.classes)(["Table",n&&"Table--collapsing",t,(0,i.computeBoxClassName)(l)]),(0,o.createVNode)(1,"tbody",null,c,0),2,Object.assign({},(0,i.computeBoxProps)(l))))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=a(e,["className","header"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"tr",(0,r.classes)(["Table__row",n&&"Table__row--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(c))))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=a(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"td",(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t,(0,i.computeBoxClassName)(e)]),null,1,Object.assign({},(0,i.computeBoxProps)(l))))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(1),r=n(30),i=n(9),a=n(121),c=n(15);var l=function(e){var t,n;function l(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,i=n.props.onDrag;o&&i&&i(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,i=t.maxValue,a=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%a:0;n.internalValue=(0,r.clamp)(n.internalValue+l*a/c,o-a,i+a),n.value=(0,r.clamp)(n.internalValue-n.internalValue%a+u,o,i),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,i=n.state,a=i.dragging,c=i.value,l=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(s){}}},n}return n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,l.prototype.render=function(){var e=this,t=this.state,n=t.dragging,l=t.editing,u=t.value,s=t.suppressingFlicker,d=this.props,f=d.className,p=d.fluid,m=d.animated,h=d.value,g=d.unit,v=d.minValue,b=d.maxValue,y=d.height,C=d.width,N=d.lineHeight,V=d.fontSize,x=d.format,_=d.onChange,w=d.onDrag,k=h;(n||s)&&(k=u);var S=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:Byond.IS_LTE_IE8})},E=m&&!n&&!s&&(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:k,format:x,children:S})||S(x?x(k):k);return(0,o.createComponentVNode)(2,c.Box,{className:(0,i.classes)(["NumberInput",p&&"NumberInput--fluid",f]),minWidth:C,minHeight:y,lineHeight:N,fontSize:V,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((k-v)/(b-v)*100,0,100)+"%"}}),2),E,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:l?undefined:"none",height:y,"line-height":N,"font-size":V},onBlur:function(t){if(l){var n=(0,r.clamp)(t.target.value,v,b);e.setState({editing:!1,value:n}),e.suppressFlicker(),_&&_(t,n),w&&w(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,v,b);return e.setState({editing:!1,value:n}),e.suppressFlicker(),_&&_(t,n),void(w&&w(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},l}(o.Component);t.NumberInput=l,l.defaultHooks=i.pureComponentHooks,l.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";var o=n(5),r=n(2),i=n(89);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(3),r=n(90),i=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var o=n(3),r=n(91),i=o.WeakMap;e.exports="function"==typeof i&&/native code/.test(r(i))},function(e,t,n){"use strict";var o=n(17),r=n(93),i=n(19),a=n(13);e.exports=function(e,t){for(var n=r(t),c=a.f,l=i.f,u=0;ul;)o(c,n=t[l++])&&(~i(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(96);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(5),r=n(13),i=n(6),a=n(61);e.exports=o?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(35);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(23),r=n(46).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return r(e)}catch(t){return a.slice()}}(e):r(o(e))}},function(e,t,n){"use strict";var o=n(11);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(40),i=n(8),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=i(n.length),l=r(e,c),u=r(t,c),s=arguments.length>2?arguments[2]:undefined,d=a((s===undefined?c:r(s,c))-u,c-l),f=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=f,u+=f;return n}},function(e,t,n){"use strict";var o=n(51),r=n(8),i=n(47);e.exports=function a(e,t,n,c,l,u,s,d){for(var f,p=l,m=0,h=!!s&&i(s,d,3);m0&&o(f))p=a(e,t,f,r(f.length),p,u-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[p]=f}p++}m++}return p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(a){var i=e["return"];throw i!==undefined&&o(i.call(e)),a}}},function(e,t,n){"use strict";var o=n(23),r=n(43),i=n(64),a=n(33),c=n(102),l=a.set,u=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,i,a=n(34),c=n(27),l=n(17),u=n(11),s=n(37),d=u("iterator"),f=!1;[].keys&&("next"in(i=[].keys())?(r=a(a(i)))!==Object.prototype&&(o=r):f=!0),o==undefined&&(o={}),s||l(o,d)||c(o,d,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:f}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(23),r=n(28),i=n(8),a=n(38),c=n(22),l=Math.min,u=[].lastIndexOf,s=!!u&&1/[1].lastIndexOf(1,-0)<0,d=a("lastIndexOf"),f=c("indexOf",{ACCESSORS:!0,1:0}),p=s||!d||!f;e.exports=p?function(e){if(s)return u.apply(this,arguments)||0;var t=o(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=l(a,r(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:u},function(e,t,n){"use strict";var o=n(28),r=n(8);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(29),r=n(4),i=[].slice,a={},c=function(e,t,n){if(!(t in a)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!v(this,e)}}),i(s.prototype,n?{get:function(e){var t=v(this,e);return t&&t.value},set:function(e,t){return g(this,0===e?0:e,t)}}:{add:function(e){return g(this,e=0===e?0:e,e)}}),d&&o(s.prototype,"size",{get:function(){return p(this).size}}),s},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),i=h(o);u(e,t,(function(e,t){m(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),s(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(4),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(3),r=n(54).trim,i=n(80),a=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==a(i+"08")||22!==a(i+"0x16");e.exports=l?function(e,t){var n=r(String(e));return a(n,t>>>0||(c.test(n)?16:10))}:a},function(e,t,n){"use strict";var o=n(5),r=n(61),i=n(23),a=n(70).f,c=function(e){return function(t){for(var n,c=i(t),l=r(c),u=l.length,s=0,d=[];u>s;)n=l[s++],o&&!a.call(c,n)||d.push(e?[n,c[n]]:c[n]);return d}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(3);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(72);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,i,a,c,l,u,s,d=n(3),f=n(19).f,p=n(31),m=n(108).set,h=n(154),g=d.MutationObserver||d.WebKitMutationObserver,v=d.process,b=d.Promise,y="process"==p(v),C=f(d,"queueMicrotask"),N=C&&C.value;N||(o=function(){var e,t;for(y&&(e=v.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?a():i=undefined,n}}i=undefined,e&&e.enter()},y?a=function(){v.nextTick(o)}:g&&!h?(c=!0,l=document.createTextNode(""),new g(o).observe(l,{characterData:!0}),a=function(){l.data=c=!c}):b&&b.resolve?(u=b.resolve(undefined),s=u.then,a=function(){s.call(u,o)}):a=function(){m.call(d,o)}),e.exports=N||function(e){var t={fn:e,next:undefined};i&&(i.next=t),r||(r=t,a()),i=t}},function(e,t,n){"use strict";var o=n(6),r=n(4),i=n(157);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(29),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(0),r=n(83);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(72);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(351);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(8),i=n(100),a=n(99),c=n(47),l=n(7).aTypedArrayConstructor;e.exports=function(e){var t,n,u,s,d,f,p=o(e),m=arguments.length,h=m>1?arguments[1]:undefined,g=h!==undefined,v=i(p);if(v!=undefined&&!a(v))for(f=(d=v.call(p)).next,p=[];!(s=f.call(d)).done;)p.push(s.value);for(g&&m>2&&(h=c(h,arguments[2],2)),n=r(p.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=g?h(p[t],t):p[t];return u}},function(e,t,n){"use strict";var o=n(65),r=n(50).getWeakData,i=n(6),a=n(4),c=n(53),l=n(67),u=n(18),s=n(17),d=n(33),f=d.set,p=d.getterFor,m=u.find,h=u.findIndex,g=0,v=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},y=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var d=e((function(e,o){c(e,d,t),f(e,{type:t,id:g++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),m=p(t),h=function(e,t,n){var o=m(e),a=r(i(t),!0);return!0===a?v(o).set(t,n):a[o.id]=n,e};return o(d.prototype,{"delete":function(e){var t=m(this);if(!a(e))return!1;var n=r(e);return!0===n?v(t)["delete"](e):n&&s(n,t.id)&&delete n[t.id]},has:function(e){var t=m(this);if(!a(e))return!1;var n=r(e);return!0===n?v(t).has(e):n&&s(n,t.id)}}),o(d.prototype,n?{get:function(e){var t=m(this);if(a(e)){var n=r(e);return!0===n?v(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),d}}},function(e,t,n){"use strict";t.__esModule=!0,t.perf=void 0;var o={mark:function(e,t){0},measure:function(e,t){0}};t.perf=o},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=t.recallWindowGeometry=t.storeWindowGeometry=t.getScreenSize=t.getScreenPosition=t.setWindowSize=t.setWindowPosition=t.getWindowSize=t.getWindowPosition=t.setWindowKey=void 0;var o=n(409),r=n(410);function i(e,t,n,o,r,i,a){try{var c=e[i](a),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(o,r)}function a(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var a=e.apply(t,n);function c(e){i(a,o,r,c,l,"next",e)}function l(e){i(a,o,r,c,l,"throw",e)}c(undefined)}))}}var c,l,u,s,d,f=(0,n(36).createLogger)("drag"),p=window.__windowId__,m=!1,h=!1,g=[0,0];t.setWindowKey=function(e){p=e};var v=function(){return[window.screenLeft,window.screenTop]};t.getWindowPosition=v;var b=function(){return[window.innerWidth,window.innerHeight]};t.getWindowSize=b;var y=function(e){var t=(0,r.vecAdd)(e,g);return Byond.winset(window.__windowId__,{pos:t[0]+","+t[1]})};t.setWindowPosition=y;var C=function(e){return Byond.winset(window.__windowId__,{size:e[0]+"x"+e[1]})};t.setWindowSize=C;var N=function(){return[0-g[0],0-g[1]]};t.getScreenPosition=N;var V=function(){return[window.screen.availWidth,window.screen.availHeight]};t.getScreenSize=V;var x=function(e){f.log("storing geometry");var t={pos:v(),size:b()};o.storage.set(e,t);var n=function(e,t,n){void 0===n&&(n=50);for(var o,r=[t],i=0;il&&(r[a]=l-t[a],i=!0)}return[i,r]};t.dragStartHandler=function(e){f.log("drag start"),m=!0,l=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",E),document.addEventListener("mouseup",S),E(e)};var S=function I(e){f.log("drag end"),E(e),document.removeEventListener("mousemove",E),document.removeEventListener("mouseup",I),m=!1,x(p)},E=function(e){m&&(e.preventDefault(),y((0,r.vecAdd)([e.screenX,e.screenY],l)))};t.resizeStartHandler=function(e,t){return function(n){u=[e,t],f.log("resize start",u),h=!0,l=[window.screenLeft-n.screenX,window.screenTop-n.screenY],s=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",L),document.addEventListener("mouseup",B),L(n)}};var B=function T(e){f.log("resize end",d),L(e),document.removeEventListener("mousemove",L),document.removeEventListener("mouseup",T),h=!1,x(p)},L=function(e){h&&(e.preventDefault(),(d=(0,r.vecAdd)(s,(0,r.vecMultiply)(u,(0,r.vecAdd)([e.screenX,e.screenY],(0,r.vecInverse)([window.screenLeft,window.screenTop]),l,[1,1]))))[0]=Math.max(d[0],150),d[1]=Math.max(d[1],50),C(d))}},function(e,t,n){"use strict";t.__esModule=!0,t.useDispatch=t.StoreProvider=t.createStore=void 0;var o=n(117),r=n(411),i=n(1),a=n(10),c=n(118),l=n(86),u=n(36),s=n(119);(0,u.createLogger)("store");t.createStore=function(){var e=(0,o.flow)([function(e,t){return void 0===e&&(e={}),e},(0,r.combineReducers)({debug:c.debugReducer,backend:a.backendReducer})]),t=[!1,s.assetMiddleware,l.hotKeyMiddleware,a.backendMiddleware];return(0,r.createStore)(e,r.applyMiddleware.apply(void 0,t.filter(Boolean)))};var d=function(e){var t,n;function o(){return e.apply(this,arguments)||this}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var r=o.prototype;return r.getChildContext=function(){return{store:this.props.store}},r.render=function(){return this.props.children},o}(i.Component);t.StoreProvider=d;t.useDispatch=function(e){return e.store.dispatch}},function(e,t,n){"use strict";t.__esModule=!0,t.Tooltip=void 0;var o=n(1),r=n(9);t.Tooltip=function(e){var t=e.content,n=e.position,i=void 0===n?"bottom":n,a=e.scale,c="string"==typeof t&&t.length>35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",c&&"Tooltip--long",i&&"Tooltip--"+i,a&&"Tooltip--scale--"+Math.floor(a)]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(1),r=n(9),i=n(15);t.Dimmer=function(e){var t=e.className,n=e.children,a=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({className:(0,r.classes)(["Dimmer"].concat(t))},a,{children:(0,o.createVNode)(1,"div","Dimmer__inner",n,0)})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Divider=void 0;var o=n(1),r=n(9);t.Divider=function(e){var t=e.vertical,n=e.hidden;return(0,o.createVNode)(1,"div",(0,r.classes)(["Divider",n&&"Divider--hidden",t?"Divider--vertical":"Divider--horizontal"]))}},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(1),r=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,i=e.align,c=e.alignContent,l=e.justify,u=e.inline,s=e.spacing,d=void 0===s?0:s,f=e.spacingPrecise,p=void 0===f?0:f,m=a(e,["className","direction","wrap","align","alignContent","justify","inline","spacing","spacingPrecise"]);return Object.assign({className:(0,r.classes)(["Flex",Byond.IS_LTE_IE10&&("column"===n?"Flex--iefix--column":"Flex--iefix"),u&&"Flex--inline",d>0&&"Flex--spacing--"+d,p>0&&"Flex--spacingPrecise--"+p,t]),style:Object.assign({},m.style,{"flex-direction":n,"flex-wrap":o,"align-items":i,"align-content":c,"justify-content":l})},m)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,c=e.shrink,l=e.basis,u=void 0===l?e.width:l,s=e.align,d=a(e,["className","grow","order","shrink","basis","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",Byond.IS_LTE_IE10&&"Flex__item--iefix",t]),style:Object.assign({},d.style,{"flex-grow":n,"flex-shrink":c,"flex-basis":(0,i.unit)(u),order:o,"align-self":s})},d)};t.computeFlexItemProps=u;var s=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({},u(e))))};t.FlexItem=s,s.defaultHooks=r.pureComponentHooks,l.Item=s},function(e,t,n){"use strict";t.__esModule=!0,t.Window=void 0;var o=n(1),r=n(9),i=n(88),a=n(10),c=n(12),l=n(55),u=n(118),s=n(165),d=n(36),f=n(166),p=n(120);var m=(0,d.createLogger)("Window"),h=[400,600],g=function(e){var t,n;function c(){return e.apply(this,arguments)||this}n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=c.prototype;return d.componentDidMount=function(){var e=(0,a.useBackend)(this.context),t=e.config;if(!e.suspended){m.log("mounting");var n=Object.assign({size:h},t.window);this.props.width&&this.props.height&&(n.size=[this.props.width,this.props.height]),(0,s.setWindowKey)(t.window.key),(0,s.recallWindowGeometry)(t.window.key,n),(0,p.refocusLayout)()}},d.render=function(){var e,t=this.props,n=t.resizable,c=t.theme,d=t.title,h=t.children,g=(0,a.useBackend)(this.context),v=g.config,y=g.suspended,C=(0,u.useDebug)(this.context).debugLayout,N=(0,f.useDispatch)(this.context),V=null==(e=v.window)?void 0:e.fancy,x=v.user.observer?v.status=0||(r[n]=e[n]);return r}(e,["className","fitted","scrollable","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,p.Layout.Content,Object.assign({scrollable:i,className:(0,r.classes)(["Window__content",t])},c,{children:n&&a||(0,o.createVNode)(1,"div","Window__contentPadding",a,0)})))};var v=function(e){switch(e){case l.UI_INTERACTIVE:return"good";case l.UI_UPDATE:return"average";case l.UI_DISABLED:default:return"bad"}},b=function(e,t){var n=e.className,a=e.title,l=e.status,u=e.fancy,s=e.onDragStart,d=e.onClose;(0,f.useDispatch)(t);return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",n]),[(0,o.createComponentVNode)(2,c.Icon,{className:"TitleBar__statusIcon",color:v(l),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title","string"==typeof a&&a===a.toLowerCase()&&(0,i.toTitleCase)(a)||a,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return u&&s(e)}}),!1,!!u&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",Byond.IS_LTE_IE8?"x":"\xd7",0,{onclick:d})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CameraConsoleSearch=t.CameraConsoleContent=t.CameraConsole=void 0;var o=n(1),r=n(87),i=n(117),a=n(9),c=n(88),l=n(10),u=n(12),s=n(16),d=function(e,t,n){void 0===t&&(t=""),void 0===n&&(n="");var o=(0,c.createSearch)(t,(function(e){return e.name}));return(0,i.flow)([(0,r.filter)((function(e){return null==e?void 0:e.name})),t&&(0,r.filter)(o),n&&(0,r.filter)((function(e){return e.networks.includes(n)})),(0,r.sortBy)((function(e){return e.name}))])(e)};t.CameraConsole=function(e,t){return(0,o.createComponentVNode)(2,s.Window,{width:870,height:708,resizable:!0,children:(0,o.createComponentVNode)(2,f)})};var f=function(e,t){var n=(0,l.useBackend)(t),r=n.act,i=n.data,a=(n.config,i.mapRef),c=i.activeCamera,f=function(e,t){var n,o;if(!t)return[];var r=e.findIndex((function(e){return e.name===t.name}));return[null==(n=e[r-1])?void 0:n.name,null==(o=e[r+1])?void 0:o.name]}(d(i.cameras),c),m=f[0],h=f[1];return(0,o.createFragment)([(0,o.createVNode)(1,"div","CameraConsole__left",(0,o.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,p)}),2),(0,o.createVNode)(1,"div","CameraConsole__right",[(0,o.createVNode)(1,"div","CameraConsole__toolbar",[(0,o.createVNode)(1,"b",null,"Camera: ",16),c&&c.name||"\u2014"],0),(0,o.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,o.createComponentVNode)(2,u.Button,{icon:"chevron-left",disabled:!m,onClick:function(){return r("switch_camera",{name:m})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"chevron-right",disabled:!h,onClick:function(){return r("switch_camera",{name:h})}})],4),(0,o.createComponentVNode)(2,u.ByondUi,{className:"CameraConsole__map",params:{id:a,type:"map"}})],4)],4)};t.CameraConsoleContent=f;var p=function(e,t){var n=(0,l.useBackend)(t),r=n.act,i=n.data,c=(0,l.useLocalState)(t,"searchText",""),f=c[0],p=c[1],m=(0,l.useLocalState)(t,"networkFilter",""),h=m[0],g=m[1],v=i.activeCamera,b=i.allNetworks;b.sort();var y=d(i.cameras,f,h);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Input,{fluid:!0,mb:1,placeholder:"Search for a camera",onInput:function(e,t){return p(t)}}),(0,o.createComponentVNode)(2,u.Dropdown,{mb:1,width:"177px",options:b,placeholder:"No Filter",onSelected:function(e){return g(e)}}),(0,o.createComponentVNode)(2,u.Section,{children:y.map((function(e){return(0,o.createVNode)(1,"div",(0,a.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",v&&e.name===v.name&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){(0,s.refocusLayout)(),r("switch_camera",{name:e.name})}},e.name)}))})],4)};t.CameraConsoleSearch=p},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(1),r=n(12),i=n(439),a=function(e){var t=e.beakerLoaded,n=e.beakerContents,i=void 0===n?[]:n,a=e.buttons;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===i.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),i.map((function(e,t){return(0,o.createComponentVNode)(2,r.Box,{width:"100%",children:[(0,o.createComponentVNode)(2,r.Box,{color:"label",display:"inline",verticalAlign:"middle",children:[(n=e.volume,n+" unit"+(1===n?"":"s"))," of ",e.name]}),!!a&&(0,o.createComponentVNode)(2,r.Box,{float:"right",display:"inline",children:a(e,t)}),(0,o.createComponentVNode)(2,r.Box,{clear:"both"})]},e.name);var n}))]})};t.BeakerContents=a,a.propTypes={beakerLoaded:i.bool,beakerContents:i.array,buttons:i.arrayOf(i.element)}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewMonitorContent=t.CrewMonitor=void 0;var o=n(1),r=n(87),i=n(10),a=n(16),c=n(12),l=n(125);n(55);t.CrewMonitor=function(){return(0,o.createComponentVNode)(2,a.Window,{width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{children:(0,o.createComponentVNode)(2,u)})})};var u=function(e,t){var n,a=(0,i.useBackend)(t),u=a.act,s=a.data,d=a.config,f=(0,i.useLocalState)(t,"tabIndex",0),p=f[0],m=f[1],h=(0,r.sortBy)((function(e){return e.name}))(s.crewmembers||[]),g=(0,i.useLocalState)(t,"number",1),v=g[0],b=g[1];return n=0===p?(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Location"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,l.TableCell,{children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,l.TableCell,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:e.dead?"red":"green",children:e.dead?"Deceased":"Living"}),e.sensor_type>=2?(0,o.createComponentVNode)(2,c.Box,{inline:!0,children:["(",(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"red",children:e.brute}),"|",(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"orange",children:e.fire}),"|",(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"green",children:e.tox}),"|",(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"blue",children:e.oxy}),")"]}):null]}),(0,o.createComponentVNode)(2,l.TableCell,{children:3===e.sensor_type?s.isAI?(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"location-arrow",content:e.area+" ("+e.x+", "+e.y+")",onClick:function(){return u("track",{track:e.ref})}}):e.area+" ("+e.x+", "+e.y+", "+e.z+")":"Not Available"})]},e.name)}))]}):1===p?(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:["Zoom Level:",(0,o.createComponentVNode)(2,c.NumberInput,{animated:!0,width:"40px",step:.5,stepPixelSize:"5",value:v,minValue:1,maxValue:8,onChange:function(e,t){return b(t)}}),"Z-Level:",s.map_levels.sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return(0,o.createComponentVNode)(2,c.Button,{selected:~~e==~~d.mapZLevel,content:e,onClick:function(){u("setZLevel",{mapZLevel:e})}},e)})),(0,o.createComponentVNode)(2,c.NanoMap,{zoom:v,children:h.filter((function(e){return 3===e.sensor_type&&~~e.realZ==~~d.mapZLevel})).map((function(e){return(0,o.createComponentVNode)(2,c.NanoMap.Marker,{x:e.x,y:e.y,zoom:v,icon:"circle",tooltip:e.name,color:e.dead?"red":"green"},e.ref)}))})]}):"ERROR",(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:0===p,onClick:function(){return m(0)},children:[(0,o.createComponentVNode)(2,c.Icon,{name:"table"})," Data View"]},"DataView"),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===p,onClick:function(){return m(1)},children:[(0,o.createComponentVNode)(2,c.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,o.createComponentVNode)(2,c.Box,{m:2,children:n})],4)};t.CrewMonitorContent=u},function(e,t,n){e.exports=n(176)},function(e,t,n){"use strict";n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(197),n(198),n(199),n(200),n(202),n(204),n(205),n(206),n(141),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(218),n(219),n(220),n(221),n(223),n(224),n(225),n(226),n(227),n(229),n(230),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(256),n(257),n(258),n(259),n(261),n(262),n(263),n(264),n(265),n(266),n(268),n(269),n(271),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(297),n(298),n(299),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(158),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389);var o=n(1);n(391),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(402),n(403),n(404),n(405);var r=n(163),i=(n(164),n(10)),a=n(165),c=n(36),l=n(166);
/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
*/
-o.perf.mark("inception",window.__inception__),o.perf.mark("init");var l,s=(0,u.createStore)(),d=!0,f=function(){for(s.subscribe((function(){!function(){o.perf.mark("render/start");var e=s.getState(),t=(0,i.selectBackend)(e),f=t.suspended;t.assets;d&&(c.logger.log("initial render",e),"recycled"!==d&&(0,a.setupDrag)());var p=(0,n(413).getRoutedComponent)(e),m=(0,r.createComponentVNode)(2,u.StoreProvider,{store:s,children:(0,r.createComponentVNode)(2,p)});l||(l=document.getElementById("react-root")),(0,r.render)(m,l),f||(o.perf.mark("render/finish"),d&&(d=!1))}()})),window.update=function(e){var t=(0,i.selectBackend)(s.getState()).suspended,n="string"==typeof e?function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};Byond.IS_LTE_IE8&&(t=undefined);try{return JSON.parse(e,t)}catch(r){c.logger.log(r),c.logger.log("What we got:",e);var n=r&&r.message;throw new Error("JSON parsing error: "+n)}}(e):e;c.logger.debug("received message '"+(null==n?void 0:n.type)+"'");var r=n.type,o=n.payload;if("update"===r)return window.__ref__=o.config.ref,t&&(c.logger.log("resuming"),d="recycled"),void s.dispatch((0,i.backendUpdate)(o));"suspend"!==r?"ping"!==r?s.dispatch(n):(0,i.sendMessage)({type:"pingReply"}):s.dispatch((0,i.backendSuspendSuccess)())};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}};window.__logger__={fatal:function(e,t){var n=(0,i.selectBackend)(s.getState()),r={config:n.config,suspended:n.suspended,suspending:n.suspending};return c.logger.log("FatalError:",e||t),c.logger.log("State:",r),t+="\nState: "+JSON.stringify(r)}},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",f):f()},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(35),a=n(37),c=n(5),u=n(95),l=n(132),s=n(2),d=n(16),f=n(51),p=n(4),m=n(6),h=n(14),v=n(23),g=n(31),b=n(45),y=n(41),C=n(61),N=n(46),x=n(135),V=n(94),w=n(19),_=n(12),k=n(70),S=n(27),E=n(21),B=n(91),L=n(71),I=n(58),O=n(57),T=n(10),A=n(136),M=n(24),j=n(42),P=n(32),R=n(18).forEach,F=L("hidden"),D=T("toPrimitive"),z=P.set,K=P.getterFor("Symbol"),U=Object.prototype,W=o.Symbol,Y=i("JSON","stringify"),H=w.f,$=_.f,G=x.f,q=k.f,X=B("symbols"),Q=B("op-symbols"),J=B("string-to-symbol-registry"),Z=B("symbol-to-string-registry"),ee=B("wks"),te=o.QObject,ne=!te||!te.prototype||!te.prototype.findChild,re=c&&s((function(){return 7!=y($({},"a",{get:function(){return $(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=H(U,t);r&&delete U[t],$(e,t,n),r&&e!==U&&$(U,t,r)}:$,oe=function(e,t){var n=X[e]=y(W.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ie=l?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof W},ae=function(e,t,n){e===U&&ae(Q,t,n),m(e);var r=g(t,!0);return m(n),d(X,r)?(n.enumerable?(d(e,F)&&e[F][r]&&(e[F][r]=!1),n=y(n,{enumerable:b(0,!1)})):(d(e,F)||$(e,F,b(1,{})),e[F][r]=!0),re(e,r,n)):$(e,r,n)},ce=function(e,t){m(e);var n=v(t),r=C(n).concat(fe(n));return R(r,(function(t){c&&!le.call(n,t)||ae(e,t,n[t])})),e},ue=function(e,t){return t===undefined?y(e):ce(y(e),t)},le=function(e){var t=g(e,!0),n=q.call(this,t);return!(this===U&&d(X,t)&&!d(Q,t))&&(!(n||!d(this,t)||!d(X,t)||d(this,F)&&this[F][t])||n)},se=function(e,t){var n=v(e),r=g(t,!0);if(n!==U||!d(X,r)||d(Q,r)){var o=H(n,r);return!o||!d(X,r)||d(n,F)&&n[F][r]||(o.enumerable=!0),o}},de=function(e){var t=G(v(e)),n=[];return R(t,(function(e){d(X,e)||d(I,e)||n.push(e)})),n},fe=function(e){var t=e===U,n=G(t?Q:v(e)),r=[];return R(n,(function(e){!d(X,e)||t&&!d(U,e)||r.push(X[e])})),r};(u||(E((W=function(){if(this instanceof W)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=O(e),n=function r(e){this===U&&r.call(Q,e),d(this,F)&&d(this[F],t)&&(this[F][t]=!1),re(this,t,b(1,e))};return c&&ne&&re(U,t,{configurable:!0,set:n}),oe(t,e)}).prototype,"toString",(function(){return K(this).tag})),E(W,"withoutSetter",(function(e){return oe(O(e),e)})),k.f=le,_.f=ae,w.f=se,N.f=x.f=de,V.f=fe,A.f=function(e){return oe(T(e),e)},c&&($(W.prototype,"description",{configurable:!0,get:function(){return K(this).description}}),a||E(U,"propertyIsEnumerable",le,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!u,sham:!u},{Symbol:W}),R(C(ee),(function(e){M(e)})),r({target:"Symbol",stat:!0,forced:!u},{"for":function(e){var t=String(e);if(d(J,t))return J[t];var n=W(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ie(e))throw TypeError(e+" is not a symbol");if(d(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!c},{create:ue,defineProperty:ae,defineProperties:ce,getOwnPropertyDescriptor:se}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:de,getOwnPropertySymbols:fe}),r({target:"Object",stat:!0,forced:s((function(){V.f(1)}))},{getOwnPropertySymbols:function(e){return V.f(h(e))}}),Y)&&r({target:"JSON",stat:!0,forced:!u||s((function(){var e=W();return"[null]"!=Y([e])||"{}"!=Y({a:e})||"{}"!=Y(Object(e))}))},{stringify:function(e,t,n){for(var r,o=[e],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=t,(p(t)||e!==undefined)&&!ie(e))return f(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!ie(t))return t}),o[1]=t,Y.apply(null,o)}});W.prototype[D]||S(W.prototype,D,W.prototype.valueOf),j(W,"Symbol"),I[F]=!0},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(3),a=n(16),c=n(4),u=n(12).f,l=n(129),s=i.Symbol;if(o&&"function"==typeof s&&(!("description"in s.prototype)||s().description!==undefined)){var d={},f=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof f?new s(e):e===undefined?s():s(e);return""===e&&(d[t]=!0),t};l(f,s);var p=f.prototype=s.prototype;p.constructor=f;var m=p.toString,h="Symbol(test)"==String(s("test")),v=/^Symbol\((.*)\)[^)]+$/;u(p,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=m.call(e);if(a(d,e))return"";var n=h?t.slice(7,-1):t.replace(v,"$1");return""===n?undefined:n}}),r({global:!0,forced:!0},{Symbol:f})}},function(e,t,n){"use strict";n(24)("asyncIterator")},function(e,t,n){"use strict";n(24)("hasInstance")},function(e,t,n){"use strict";n(24)("isConcatSpreadable")},function(e,t,n){"use strict";n(24)("iterator")},function(e,t,n){"use strict";n(24)("match")},function(e,t,n){"use strict";n(24)("replace")},function(e,t,n){"use strict";n(24)("search")},function(e,t,n){"use strict";n(24)("species")},function(e,t,n){"use strict";n(24)("split")},function(e,t,n){"use strict";n(24)("toPrimitive")},function(e,t,n){"use strict";n(24)("toStringTag")},function(e,t,n){"use strict";n(24)("unscopables")},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(51),a=n(4),c=n(14),u=n(8),l=n(48),s=n(62),d=n(63),f=n(10),p=n(96),m=f("isConcatSpreadable"),h=p>=51||!o((function(){var e=[];return e[m]=!1,e.concat()[0]!==e})),v=d("concat"),g=function(e){if(!a(e))return!1;var t=e[m];return t!==undefined?!!t:i(e)};r({target:"Array",proto:!0,forced:!h||!v},{concat:function(e){var t,n,r,o,i,a=c(this),d=s(a,0),f=0;for(t=-1,r=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");l(d,f++,i)}return d.length=f,d}})},function(e,t,n){"use strict";var r=n(0),o=n(137),i=n(43);r({target:"Array",proto:!0},{copyWithin:o}),i("copyWithin")},function(e,t,n){"use strict";var r=n(0),o=n(18).every,i=n(38),a=n(22),c=i("every"),u=a("every");r({target:"Array",proto:!0,forced:!c||!u},{every:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(97),i=n(43);r({target:"Array",proto:!0},{fill:o}),i("fill")},function(e,t,n){"use strict";var r=n(0),o=n(18).filter,i=n(63),a=n(22),c=i("filter"),u=a("filter");r({target:"Array",proto:!0,forced:!c||!u},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(18).find,i=n(43),a=n(22),c=!0,u=a("find");"find"in[]&&Array(1).find((function(){c=!1})),r({target:"Array",proto:!0,forced:c||!u},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,n){"use strict";var r=n(0),o=n(18).findIndex,i=n(43),a=n(22),c=!0,u=a("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){c=!1})),r({target:"Array",proto:!0,forced:c||!u},{findIndex:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,n){"use strict";var r=n(0),o=n(138),i=n(14),a=n(8),c=n(28),u=n(62);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),n=a(t.length),r=u(t,0);return r.length=o(r,t,t,n,0,e===undefined?1:c(e)),r}})},function(e,t,n){"use strict";var r=n(0),o=n(138),i=n(14),a=n(8),c=n(29),u=n(62);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),r=a(n.length);return c(e),(t=u(n,0)).length=o(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var r=n(0),o=n(201);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(e,t,n){"use strict";var r=n(18).forEach,o=n(38),i=n(22),a=o("forEach"),c=i("forEach");e.exports=a&&c?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var r=n(0),o=n(203);r({target:"Array",stat:!0,forced:!n(74)((function(e){Array.from(e)}))},{from:o})},function(e,t,n){"use strict";var r=n(47),o=n(14),i=n(139),a=n(98),c=n(8),u=n(48),l=n(99);e.exports=function(e){var t,n,s,d,f,p,m=o(e),h="function"==typeof this?this:Array,v=arguments.length,g=v>1?arguments[1]:undefined,b=g!==undefined,y=l(m),C=0;if(b&&(g=r(g,v>2?arguments[2]:undefined,2)),y==undefined||h==Array&&a(y))for(n=new h(t=c(m.length));t>C;C++)p=b?g(m[C],C):m[C],u(n,C,p);else for(f=(d=y.call(m)).next,n=new h;!(s=f.call(d)).done;C++)p=b?i(d,g,[s.value,C],!0):s.value,u(n,C,p);return n.length=C,n}},function(e,t,n){"use strict";var r=n(0),o=n(59).includes,i=n(43);r({target:"Array",proto:!0,forced:!n(22)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,n){"use strict";var r=n(0),o=n(59).indexOf,i=n(38),a=n(22),c=[].indexOf,u=!!c&&1/[1].indexOf(1,-0)<0,l=i("indexOf"),s=a("indexOf",{ACCESSORS:!0,1:0});r({target:"Array",proto:!0,forced:u||!l||!s},{indexOf:function(e){return u?c.apply(this,arguments)||0:o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(0)({target:"Array",stat:!0},{isArray:n(51)})},function(e,t,n){"use strict";var r=n(141).IteratorPrototype,o=n(41),i=n(45),a=n(42),c=n(64),u=function(){return this};e.exports=function(e,t,n){var l=t+" Iterator";return e.prototype=o(r,{next:i(1,n)}),a(e,l,!1,!0),c[l]=u,e}},function(e,t,n){"use strict";var r=n(0),o=n(56),i=n(23),a=n(38),c=[].join,u=o!=Object,l=a("join",",");r({target:"Array",proto:!0,forced:u||!l},{join:function(e){return c.call(i(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var r=n(0),o=n(143);r({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(e,t,n){"use strict";var r=n(0),o=n(18).map,i=n(63),a=n(22),c=i("map"),u=a("map");r({target:"Array",proto:!0,forced:!c||!u},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(48);r({target:"Array",stat:!0,forced:o((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var r=n(0),o=n(75).left,i=n(38),a=n(22),c=i("reduce"),u=a("reduce",{1:0});r({target:"Array",proto:!0,forced:!c||!u},{reduce:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(75).right,i=n(38),a=n(22),c=i("reduceRight"),u=a("reduce",{1:0});r({target:"Array",proto:!0,forced:!c||!u},{reduceRight:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(51),a=n(40),c=n(8),u=n(23),l=n(48),s=n(10),d=n(63),f=n(22),p=d("slice"),m=f("slice",{ACCESSORS:!0,0:0,1:2}),h=s("species"),v=[].slice,g=Math.max;r({target:"Array",proto:!0,forced:!p||!m},{slice:function(e,t){var n,r,s,d=u(this),f=c(d.length),p=a(e,f),m=a(t===undefined?f:t,f);if(i(d)&&("function"!=typeof(n=d.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[h])&&(n=undefined):n=undefined,n===Array||n===undefined))return v.call(d,p,m);for(r=new(n===undefined?Array:n)(g(m-p,0)),s=0;p1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(29),i=n(14),a=n(2),c=n(38),u=[],l=u.sort,s=a((function(){u.sort(undefined)})),d=a((function(){u.sort(null)})),f=c("sort");r({target:"Array",proto:!0,forced:s||!d||!f},{sort:function(e){return e===undefined?l.call(i(this)):l.call(i(this),o(e))}})},function(e,t,n){"use strict";n(52)("Array")},function(e,t,n){"use strict";var r=n(0),o=n(40),i=n(28),a=n(8),c=n(14),u=n(62),l=n(48),s=n(63),d=n(22),f=s("splice"),p=d("splice",{ACCESSORS:!0,0:0,1:2}),m=Math.max,h=Math.min;r({target:"Array",proto:!0,forced:!f||!p},{splice:function(e,t){var n,r,s,d,f,p,v=c(this),g=a(v.length),b=o(e,g),y=arguments.length;if(0===y?n=r=0:1===y?(n=0,r=g-b):(n=y-2,r=h(m(i(t),0),g-b)),g+n-r>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(s=u(v,r),d=0;dg-r+n;d--)delete v[d-1]}else if(n>r)for(d=g-r;d>b;d--)p=d+n-1,(f=d+r-1)in v?v[p]=v[f]:delete v[p];for(d=0;d>1,h=23===t?o(2,-24)-o(2,-77):0,v=e<0||0===e&&1/e<0?1:0,g=0;for((e=r(e))!=e||e===1/0?(l=e!=e?1:0,u=p):(u=i(a(e)/c),e*(s=o(2,-u))<1&&(u--,s*=2),(e+=u+m>=1?h/s:h*o(2,1-m))*s>=2&&(u++,s/=2),u+m>=p?(l=0,u=p):u+m>=1?(l=(e*s-1)*o(2,t),u+=m):(l=e*o(2,m-1)*o(2,t),u=0));t>=8;d[g++]=255&l,l/=256,t-=8);for(u=u<0;d[g++]=255&u,u/=256,f-=8);return d[--g]|=128*v,d},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<>1,u=i-7,l=r-1,s=e[l--],d=127&s;for(s>>=7;u>0;d=256*d+e[l],l--,u-=8);for(n=d&(1<<-u)-1,d>>=-u,u+=t;u>0;n=256*n+e[l],l--,u-=8);if(0===d)d=1-c;else{if(d===a)return n?NaN:s?-1/0:1/0;n+=o(2,t),d-=c}return(s?-1:1)*n*o(2,d-t)}}},function(e,t,n){"use strict";var r=n(0),o=n(7);r({target:"ArrayBuffer",stat:!0,forced:!o.NATIVE_ARRAY_BUFFER_VIEWS},{isView:o.isView})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(76),a=n(6),c=n(40),u=n(8),l=n(44),s=i.ArrayBuffer,d=i.DataView,f=s.prototype.slice;r({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:o((function(){return!new s(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(f!==undefined&&t===undefined)return f.call(a(this),e);for(var n=a(this).byteLength,r=c(e,n),o=c(t===undefined?n:t,n),i=new(l(this,s))(u(o-r)),p=new d(this),m=new d(i),h=0;r9999?"+":"";return n+o(i(e),n?6:4,0)+"-"+o(this.getUTCMonth()+1,2,0)+"-"+o(this.getUTCDate(),2,0)+"T"+o(this.getUTCHours(),2,0)+":"+o(this.getUTCMinutes(),2,0)+":"+o(this.getUTCSeconds(),2,0)+"."+o(t,3,0)+"Z"}:u},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(14),a=n(31);r({target:"Date",proto:!0,forced:o((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=a(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var r=n(27),o=n(231),i=n(10)("toPrimitive"),a=Date.prototype;i in a||r(a,i,o)},function(e,t,n){"use strict";var r=n(6),o=n(31);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return o(r(this),"number"!==e)}},function(e,t,n){"use strict";var r=n(21),o=Date.prototype,i=o.toString,a=o.getTime;new Date(NaN)+""!="Invalid Date"&&r(o,"toString",(function(){var e=a.call(this);return e==e?i.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(0)({target:"Function",proto:!0},{bind:n(145)})},function(e,t,n){"use strict";var r=n(4),o=n(12),i=n(33),a=n(10)("hasInstance"),c=Function.prototype;a in c||o.f(c,a,{value:function(e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var r=n(5),o=n(12).f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/;r&&!("name"in i)&&o(i,"name",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var r=n(3);n(42)(r.JSON,"JSON",!0)},function(e,t,n){"use strict";var r=n(77),o=n(146);e.exports=r("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(0),o=n(147),i=Math.acosh,a=Math.log,c=Math.sqrt,u=Math.LN2;r({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?a(e)+u:o(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var r=n(0),o=Math.asinh,i=Math.log,a=Math.sqrt;r({target:"Math",stat:!0,forced:!(o&&1/o(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):i(e+a(e*e+1)):e}})},function(e,t,n){"use strict";var r=n(0),o=Math.atanh,i=Math.log;r({target:"Math",stat:!0,forced:!(o&&1/o(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var r=n(0),o=n(106),i=Math.abs,a=Math.pow;r({target:"Math",stat:!0},{cbrt:function(e){return o(e=+e)*a(i(e),1/3)}})},function(e,t,n){"use strict";var r=n(0),o=Math.floor,i=Math.log,a=Math.LOG2E;r({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-o(i(e+.5)*a):32}})},function(e,t,n){"use strict";var r=n(0),o=n(79),i=Math.cosh,a=Math.abs,c=Math.E;r({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function(e){var t=o(a(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var r=n(0),o=n(79);r({target:"Math",stat:!0,forced:o!=Math.expm1},{expm1:o})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{fround:n(246)})},function(e,t,n){"use strict";var r=n(106),o=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),u=i(2,127)*(2-c),l=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=o(e),s=r(e);return iu||n!=n?s*Infinity:s*n}},function(e,t,n){"use strict";var r=n(0),o=Math.hypot,i=Math.abs,a=Math.sqrt;r({target:"Math",stat:!0,forced:!!o&&o(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,r,o=0,c=0,u=arguments.length,l=0;c0?(r=n/l)*r:n;return l===Infinity?Infinity:l*a(o)}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=+e,r=+t,o=65535&n,i=65535&r;return 0|o*i+((65535&n>>>16)*i+o*(65535&r>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var r=n(0),o=Math.log,i=Math.LOG10E;r({target:"Math",stat:!0},{log10:function(e){return o(e)*i}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{log1p:n(147)})},function(e,t,n){"use strict";var r=n(0),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{sign:n(106)})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(79),a=Math.abs,c=Math.exp,u=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return a(e=+e)<1?(i(e)-i(-e))/2:(c(e-1)-c(-e-1))*(u/2)}})},function(e,t,n){"use strict";var r=n(0),o=n(79),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=o(e=+e),n=o(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(i(e)+i(-e))}})},function(e,t,n){"use strict";n(42)(Math,"Math",!0)},function(e,t,n){"use strict";var r=n(0),o=Math.ceil,i=Math.floor;r({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:o)(e)}})},function(e,t,n){"use strict";var r=n(5),o=n(3),i=n(60),a=n(21),c=n(16),u=n(30),l=n(78),s=n(31),d=n(2),f=n(41),p=n(46).f,m=n(19).f,h=n(12).f,v=n(54).trim,g=o.Number,b=g.prototype,y="Number"==u(f(b)),C=function(e){var t,n,r,o,i,a,c,u,l=s(e,!1);if("string"==typeof l&&l.length>2)if(43===(t=(l=v(l)).charCodeAt(0))||45===t){if(88===(n=l.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(l.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(a=(i=l.slice(2)).length,c=0;co)return NaN;return parseInt(i,r)}return+l};if(i("Number",!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var N,x=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof x&&(y?d((function(){b.valueOf.call(n)})):"Number"!=u(n))?l(new g(C(t)),n,x):C(t)},V=r?p(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;V.length>w;w++)c(g,N=V[w])&&!c(x,N)&&h(x,N,m(g,N));x.prototype=b,b.constructor=x,a(o,"Number",x)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isFinite:n(260)})},function(e,t,n){"use strict";var r=n(3).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&r(e)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isInteger:n(148)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var r=n(0),o=n(148),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var r=n(0),o=n(267);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},function(e,t,n){"use strict";var r=n(3),o=n(54).trim,i=n(80),a=r.parseFloat,c=1/a(i+"-0")!=-Infinity;e.exports=c?function(e){var t=o(String(e)),n=a(t);return 0===n&&"-"==t.charAt(0)?-0:n}:a},function(e,t,n){"use strict";var r=n(0),o=n(149);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r=n(0),o=n(28),i=n(270),a=n(105),c=n(2),u=1..toFixed,l=Math.floor,s=function d(e,t,n){return 0===t?n:t%2==1?d(e,t-1,n*e):d(e*e,t/2,n)};r({target:"Number",proto:!0,forced:u&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){u.call({})}))},{toFixed:function(e){var t,n,r,c,u=i(this),d=o(e),f=[0,0,0,0,0,0],p="",m="0",h=function(e,t){for(var n=-1,r=t;++n<6;)r+=e*f[n],f[n]=r%1e7,r=l(r/1e7)},v=function(e){for(var t=6,n=0;--t>=0;)n+=f[t],f[t]=l(n/e),n=n%e*1e7},g=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==f[e]){var n=String(f[e]);t=""===t?n:t+a.call("0",7-n.length)+n}return t};if(d<0||d>20)throw RangeError("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(p="-",u=-u),u>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(u*s(2,69,1))-69)<0?u*s(2,-t,1):u/s(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),r=d;r>=7;)h(1e7,0),r-=7;for(h(s(10,r,1),0),r=t-1;r>=23;)v(1<<23),r-=23;v(1<0?p+((c=m.length)<=d?"0."+a.call("0",d-c)+m:m.slice(0,c-d)+"."+m.slice(c-d)):p+m}})},function(e,t,n){"use strict";var r=n(30);e.exports=function(e){if("number"!=typeof e&&"Number"!=r(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var r=n(0),o=n(272);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(e,t,n){"use strict";var r=n(5),o=n(2),i=n(61),a=n(94),c=n(70),u=n(14),l=n(56),s=Object.assign,d=Object.defineProperty;e.exports=!s||o((function(){if(r&&1!==s({b:1},s(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=s({},e)[n]||"abcdefghijklmnopqrst"!=i(s({},t)).join("")}))?function(e,t){for(var n=u(e),o=arguments.length,s=1,d=a.f,f=c.f;o>s;)for(var p,m=l(arguments[s++]),h=d?i(m).concat(d(m)):i(m),v=h.length,g=0;v>g;)p=h[g++],r&&!f.call(m,p)||(n[p]=m[p]);return n}:s},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0,sham:!n(5)},{create:n(41)})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(81),a=n(14),c=n(29),u=n(12);o&&r({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){u.f(a(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(0),o=n(5);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:n(133)})},function(e,t,n){"use strict";var r=n(0),o=n(5);r({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:n(12).f})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(81),a=n(14),c=n(29),u=n(12);o&&r({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){u.f(a(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var r=n(0),o=n(150).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(0),o=n(66),i=n(2),a=n(4),c=n(50).onFreeze,u=Object.freeze;r({target:"Object",stat:!0,forced:i((function(){u(1)})),sham:!o},{freeze:function(e){return u&&a(e)?u(c(e)):e}})},function(e,t,n){"use strict";var r=n(0),o=n(67),i=n(48);r({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,n){i(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(23),a=n(19).f,c=n(5),u=o((function(){a(1)}));r({target:"Object",stat:!0,forced:!c||u,sham:!c},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(92),a=n(23),c=n(19),u=n(48);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=c.f,l=i(r),s={},d=0;l.length>d;)(n=o(r,t=l[d++]))!==undefined&&u(s,t,n);return s}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(135).f;r({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(14),a=n(33),c=n(102);r({target:"Object",stat:!0,forced:o((function(){a(1)})),sham:!c},{getPrototypeOf:function(e){return a(i(e))}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{is:n(151)})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(4),a=Object.isExtensible;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isExtensible:function(e){return!!i(e)&&(!a||a(e))}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(4),a=Object.isFrozen;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isFrozen:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var r=n(0),o=n(2),i=n(4),a=Object.isSealed;r({target:"Object",stat:!0,forced:o((function(){a(1)}))},{isSealed:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var r=n(0),o=n(14),i=n(61);r({target:"Object",stat:!0,forced:n(2)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(81),a=n(14),c=n(31),u=n(33),l=n(19).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=a(this),r=c(e,!0);do{if(t=l(n,r))return t.get}while(n=u(n))}})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(81),a=n(14),c=n(31),u=n(33),l=n(19).f;o&&r({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=a(this),r=c(e,!0);do{if(t=l(n,r))return t.set}while(n=u(n))}})},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(50).onFreeze,a=n(66),c=n(2),u=Object.preventExtensions;r({target:"Object",stat:!0,forced:c((function(){u(1)})),sham:!a},{preventExtensions:function(e){return u&&o(e)?u(i(e)):e}})},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(50).onFreeze,a=n(66),c=n(2),u=Object.seal;r({target:"Object",stat:!0,forced:c((function(){u(1)})),sham:!a},{seal:function(e){return u&&o(e)?u(i(e)):e}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{setPrototypeOf:n(49)})},function(e,t,n){"use strict";var r=n(100),o=n(21),i=n(296);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(e,t,n){"use strict";var r=n(100),o=n(73);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(e,t,n){"use strict";var r=n(0),o=n(150).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},function(e,t,n){"use strict";var r=n(0),o=n(149);r({global:!0,forced:parseInt!=o},{parseInt:o})},function(e,t,n){"use strict";var r,o,i,a,c=n(0),u=n(37),l=n(3),s=n(35),d=n(152),f=n(21),p=n(65),m=n(42),h=n(52),v=n(4),g=n(29),b=n(53),y=n(30),C=n(90),N=n(67),x=n(74),V=n(44),w=n(107).set,_=n(154),k=n(155),S=n(300),E=n(156),B=n(301),L=n(32),I=n(60),O=n(10),T=n(96),A=O("species"),M="Promise",j=L.get,P=L.set,R=L.getterFor(M),F=d,D=l.TypeError,z=l.document,K=l.process,U=s("fetch"),W=E.f,Y=W,H="process"==y(K),$=!!(z&&z.createEvent&&l.dispatchEvent),G=I(M,(function(){if(!(C(F)!==String(F))){if(66===T)return!0;if(!H&&"function"!=typeof PromiseRejectionEvent)return!0}if(u&&!F.prototype["finally"])return!0;if(T>=51&&/native code/.test(F))return!1;var e=F.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[A]=t,!(e.then((function(){}))instanceof t)})),q=G||!x((function(e){F.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!v(e)||"function"!=typeof(t=e.then))&&t},Q=function(e,t,n){if(!t.notified){t.notified=!0;var r=t.reactions;_((function(){for(var o=t.value,i=1==t.state,a=0;r.length>a;){var c,u,l,s=r[a++],d=i?s.ok:s.fail,f=s.resolve,p=s.reject,m=s.domain;try{d?(i||(2===t.rejection&&te(e,t),t.rejection=1),!0===d?c=o:(m&&m.enter(),c=d(o),m&&(m.exit(),l=!0)),c===s.promise?p(D("Promise-chain cycle")):(u=X(c))?u.call(c,f,p):f(c)):p(o)}catch(h){m&&!l&&m.exit(),p(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Z(e,t)}))}},J=function(e,t,n){var r,o;$?((r=z.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),l.dispatchEvent(r)):r={promise:t,reason:n},(o=l["on"+e])?o(r):"unhandledrejection"===e&&S("Unhandled promise rejection",n)},Z=function(e,t){w.call(l,(function(){var n,r=t.value;if(ee(t)&&(n=B((function(){H?K.emit("unhandledRejection",r,e):J("unhandledrejection",e,r)})),t.rejection=H||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){w.call(l,(function(){H?K.emit("rejectionHandled",e):J("rejectionhandled",e,t.value)}))},ne=function(e,t,n,r){return function(o){e(t,n,o,r)}},re=function(e,t,n,r){t.done||(t.done=!0,r&&(t=r),t.value=n,t.state=2,Q(e,t,!0))},oe=function ie(e,t,n,r){if(!t.done){t.done=!0,r&&(t=r);try{if(e===n)throw D("Promise can't be resolved itself");var o=X(n);o?_((function(){var r={done:!1};try{o.call(n,ne(ie,e,r,t),ne(re,e,r,t))}catch(i){re(e,r,i,t)}})):(t.value=n,t.state=1,Q(e,t,!1))}catch(i){re(e,{done:!1},i,t)}}};G&&(F=function(e){b(this,F,M),g(e),r.call(this);var t=j(this);try{e(ne(oe,this,t),ne(re,this,t))}catch(n){re(this,t,n)}},(r=function(e){P(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=p(F.prototype,{then:function(e,t){var n=R(this),r=W(V(this,F));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=H?K.domain:undefined,n.parent=!0,n.reactions.push(r),0!=n.state&&Q(this,n,!1),r.promise},"catch":function(e){return this.then(undefined,e)}}),o=function(){var e=new r,t=j(e);this.promise=e,this.resolve=ne(oe,e,t),this.reject=ne(re,e,t)},E.f=W=function(e){return e===F||e===i?new o(e):Y(e)},u||"function"!=typeof d||(a=d.prototype.then,f(d.prototype,"then",(function(e,t){var n=this;return new F((function(e,t){a.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return k(F,U.apply(l,arguments))}}))),c({global:!0,wrap:!0,forced:G},{Promise:F}),m(F,M,!1,!0),h(M),i=s(M),c({target:M,stat:!0,forced:G},{reject:function(e){var t=W(this);return t.reject.call(undefined,e),t.promise}}),c({target:M,stat:!0,forced:u||G},{resolve:function(e){return k(u&&this===i?F:this,e)}}),c({target:M,stat:!0,forced:q},{all:function(e){var t=this,n=W(t),r=n.resolve,o=n.reject,i=B((function(){var n=g(t.resolve),i=[],a=0,c=1;N(e,(function(e){var u=a++,l=!1;i.push(undefined),c++,n.call(t,e).then((function(e){l||(l=!0,i[u]=e,--c||r(i))}),o)})),--c||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=W(t),r=n.reject,o=B((function(){var o=g(t.resolve);N(e,(function(e){o.call(t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(e,t,n){"use strict";var r=n(3);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var r=n(0),o=n(37),i=n(152),a=n(2),c=n(35),u=n(44),l=n(155),s=n(21);r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=u(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return l(t,e()).then((function(){return n}))}:e,n?function(n){return l(t,e()).then((function(){throw n}))}:e)}}),o||"function"!=typeof i||i.prototype["finally"]||s(i.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var r=n(0),o=n(35),i=n(29),a=n(6),c=n(2),u=o("Reflect","apply"),l=Function.apply;r({target:"Reflect",stat:!0,forced:!c((function(){u((function(){}))}))},{apply:function(e,t,n){return i(e),a(n),u?u(e,t,n):l.call(e,t,n)}})},function(e,t,n){"use strict";var r=n(0),o=n(35),i=n(29),a=n(6),c=n(4),u=n(41),l=n(145),s=n(2),d=o("Reflect","construct"),f=s((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),p=!s((function(){d((function(){}))})),m=f||p;r({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!f)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(l.apply(e,r))}var o=n.prototype,s=u(c(o)?o:Object.prototype),m=Function.apply.call(e,s,t);return c(m)?m:s}})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(6),a=n(31),c=n(12);r({target:"Reflect",stat:!0,forced:n(2)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!o},{defineProperty:function(e,t,n){i(e);var r=a(t,!0);i(n);try{return c.f(e,r,n),!0}catch(o){return!1}}})},function(e,t,n){"use strict";var r=n(0),o=n(6),i=n(19).f;r({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var r=n(0),o=n(4),i=n(6),a=n(16),c=n(19),u=n(33);r({target:"Reflect",stat:!0},{get:function l(e,t){var n,r,s=arguments.length<3?e:arguments[2];return i(e)===s?e[t]:(n=c.f(e,t))?a(n,"value")?n.value:n.get===undefined?undefined:n.get.call(s):o(r=u(e))?l(r,t,s):void 0}})},function(e,t,n){"use strict";var r=n(0),o=n(5),i=n(6),a=n(19);r({target:"Reflect",stat:!0,sham:!o},{getOwnPropertyDescriptor:function(e,t){return a.f(i(e),t)}})},function(e,t,n){"use strict";var r=n(0),o=n(6),i=n(33);r({target:"Reflect",stat:!0,sham:!n(102)},{getPrototypeOf:function(e){return i(o(e))}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var r=n(0),o=n(6),i=Object.isExtensible;r({target:"Reflect",stat:!0},{isExtensible:function(e){return o(e),!i||i(e)}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{ownKeys:n(92)})},function(e,t,n){"use strict";var r=n(0),o=n(35),i=n(6);r({target:"Reflect",stat:!0,sham:!n(66)},{preventExtensions:function(e){i(e);try{var t=o("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(0),o=n(6),i=n(4),a=n(16),c=n(2),u=n(12),l=n(19),s=n(33),d=n(45);r({target:"Reflect",stat:!0,forced:c((function(){var e=u.f({},"a",{configurable:!0});return!1!==Reflect.set(s(e),"a",1,e)}))},{set:function f(e,t,n){var r,c,p=arguments.length<4?e:arguments[3],m=l.f(o(e),t);if(!m){if(i(c=s(e)))return f(c,t,n,p);m=d(0)}if(a(m,"value")){if(!1===m.writable||!i(p))return!1;if(r=l.f(p,t)){if(r.get||r.set||!1===r.writable)return!1;r.value=n,u.f(p,t,r)}else u.f(p,t,d(0,n));return!0}return m.set!==undefined&&(m.set.call(p,n),!0)}})},function(e,t,n){"use strict";var r=n(0),o=n(6),i=n(142),a=n(49);a&&r({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){o(e),i(t);try{return a(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var r=n(5),o=n(3),i=n(60),a=n(78),c=n(12).f,u=n(46).f,l=n(108),s=n(82),d=n(109),f=n(21),p=n(2),m=n(32).set,h=n(52),v=n(10)("match"),g=o.RegExp,b=g.prototype,y=/a/g,C=/a/g,N=new g(y)!==y,x=d.UNSUPPORTED_Y;if(r&&i("RegExp",!N||x||p((function(){return C[v]=!1,g(y)!=y||g(C)==C||"/a/i"!=g(y,"i")})))){for(var V=function(e,t){var n,r=this instanceof V,o=l(e),i=t===undefined;if(!r&&o&&e.constructor===V&&i)return e;N?o&&!i&&(e=e.source):e instanceof V&&(i&&(t=s.call(e)),e=e.source),x&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=a(N?new g(e,t):g(e,t),r?this:b,V);return x&&n&&m(c,{sticky:n}),c},w=function(e){e in V||c(V,e,{configurable:!0,get:function(){return g[e]},set:function(t){g[e]=t}})},_=u(g),k=0;_.length>k;)w(_[k++]);b.constructor=V,V.prototype=b,f(o,"RegExp",V)}h("RegExp")},function(e,t,n){"use strict";var r=n(5),o=n(12),i=n(82),a=n(109).UNSUPPORTED_Y;r&&("g"!=/./g.flags||a)&&o.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(e,t,n){"use strict";var r=n(21),o=n(6),i=n(2),a=n(82),c=RegExp.prototype,u=c.toString,l=i((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),s="toString"!=u.name;(l||s)&&r(RegExp.prototype,"toString",(function(){var e=o(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?a.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var r=n(77),o=n(146);e.exports=r("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),o)},function(e,t,n){"use strict";var r=n(0),o=n(110).codeAt;r({target:"String",proto:!0},{codePointAt:function(e){return o(this,e)}})},function(e,t,n){"use strict";var r,o=n(0),i=n(19).f,a=n(8),c=n(111),u=n(20),l=n(112),s=n(37),d="".endsWith,f=Math.min,p=l("endsWith");o({target:"String",proto:!0,forced:!!(s||p||(r=i(String.prototype,"endsWith"),!r||r.writable))&&!p},{endsWith:function(e){var t=String(u(this));c(e);var n=arguments.length>1?arguments[1]:undefined,r=a(t.length),o=n===undefined?r:f(a(n),r),i=String(e);return d?d.call(t,i,o):t.slice(o-i.length,o)===i}})},function(e,t,n){"use strict";var r=n(0),o=n(40),i=String.fromCharCode,a=String.fromCodePoint;r({target:"String",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,a=0;r>a;){if(t=+arguments[a++],o(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var r=n(0),o=n(111),i=n(20);r({target:"String",proto:!0,forced:!n(112)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(o(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(110).charAt,o=n(32),i=n(101),a=o.set,c=o.getterFor("String Iterator");i(String,"String",(function(e){a(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?{value:undefined,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var r=n(84),o=n(6),i=n(8),a=n(20),c=n(113),u=n(85);r("match",1,(function(e,t,n){return[function(t){var n=a(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var a=o(e),l=String(this);if(!a.global)return u(a,l);var s=a.unicode;a.lastIndex=0;for(var d,f=[],p=0;null!==(d=u(a,l));){var m=String(d[0]);f[p]=m,""===m&&(a.lastIndex=c(l,i(a.lastIndex),s)),p++}return 0===p?null:f}]}))},function(e,t,n){"use strict";var r=n(0),o=n(104).end;r({target:"String",proto:!0,forced:n(158)},{padEnd:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(104).start;r({target:"String",proto:!0,forced:n(158)},{padStart:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var r=n(0),o=n(23),i=n(8);r({target:"String",stat:!0},{raw:function(e){for(var t=o(e.raw),n=i(t.length),r=arguments.length,a=[],c=0;n>c;)a.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;r("replace",2,(function(e,t,n,r){var v=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=r.REPLACE_KEEPS_$0,b=v?"$":"$0";return[function(n,r){var o=u(this),i=n==undefined?undefined:n[e];return i!==undefined?i.call(n,o,r):t.call(String(o),n,r)},function(e,r){if(!v&&g||"string"==typeof r&&-1===r.indexOf(b)){var i=n(t,e,this,r);if(i.done)return i.value}var u=o(e),p=String(this),m="function"==typeof r;m||(r=String(r));var h=u.global;if(h){var C=u.unicode;u.lastIndex=0}for(var N=[];;){var x=s(u,p);if(null===x)break;if(N.push(x),!h)break;""===String(x[0])&&(u.lastIndex=l(p,a(u.lastIndex),C))}for(var V,w="",_=0,k=0;k=_&&(w+=p.slice(_,E)+T,_=E+S.length)}return w+p.slice(_)}];function y(e,n,r,o,a,c){var u=r+e.length,l=o.length,s=h;return a!==undefined&&(a=i(a),s=m),t.call(c,s,(function(t,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,r);case"'":return n.slice(u);case"<":c=a[i.slice(1,-1)];break;default:var s=+i;if(0===s)return t;if(s>l){var d=p(s/10);return 0===d?t:d<=l?o[d-1]===undefined?i.charAt(1):o[d-1]+i.charAt(1):t}c=o[s-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var r=n(84),o=n(6),i=n(20),a=n(151),c=n(85);r("search",1,(function(e,t,n){return[function(t){var n=i(this),r=t==undefined?undefined:t[e];return r!==undefined?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=o(e),u=String(this),l=i.lastIndex;a(l,0)||(i.lastIndex=0);var s=c(i,u);return a(i.lastIndex,l)||(i.lastIndex=l),null===s?-1:s.index}]}))},function(e,t,n){"use strict";var r=n(84),o=n(108),i=n(6),a=n(20),c=n(44),u=n(113),l=n(8),s=n(85),d=n(83),f=n(2),p=[].push,m=Math.min,h=!f((function(){return!RegExp(4294967295,"y")}));r("split",2,(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=String(a(this)),i=n===undefined?4294967295:n>>>0;if(0===i)return[];if(e===undefined)return[r];if(!o(e))return t.call(r,e,i);for(var c,u,l,s=[],f=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),m=0,h=new RegExp(e.source,f+"g");(c=d.call(h,r))&&!((u=h.lastIndex)>m&&(s.push(r.slice(m,c.index)),c.length>1&&c.index=i));)h.lastIndex===c.index&&h.lastIndex++;return m===r.length?!l&&h.test("")||s.push(""):s.push(r.slice(m)),s.length>i?s.slice(0,i):s}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var o=a(this),i=t==undefined?undefined:t[e];return i!==undefined?i.call(t,o,n):r.call(String(o),t,n)},function(e,o){var a=n(r,e,this,o,r!==t);if(a.done)return a.value;var d=i(e),f=String(this),p=c(d,RegExp),v=d.unicode,g=(d.ignoreCase?"i":"")+(d.multiline?"m":"")+(d.unicode?"u":"")+(h?"y":"g"),b=new p(h?d:"^(?:"+d.source+")",g),y=o===undefined?4294967295:o>>>0;if(0===y)return[];if(0===f.length)return null===s(b,f)?[f]:[];for(var C=0,N=0,x=[];N1?arguments[1]:undefined,t.length)),r=String(e);return d?d.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){"use strict";var r=n(0),o=n(54).trim;r({target:"String",proto:!0,forced:n(114)("trim")},{trim:function(){return o(this)}})},function(e,t,n){"use strict";var r=n(0),o=n(54).end,i=n(114)("trimEnd"),a=i?function(){return o(this)}:"".trimEnd;r({target:"String",proto:!0,forced:i},{trimEnd:a,trimRight:a})},function(e,t,n){"use strict";var r=n(0),o=n(54).start,i=n(114)("trimStart"),a=i?function(){return o(this)}:"".trimStart;r({target:"String",proto:!0,forced:i},{trimStart:a,trimLeft:a})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("anchor")},{anchor:function(e){return o(this,"a","name",e)}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("big")},{big:function(){return o(this,"big","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("blink")},{blink:function(){return o(this,"blink","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("bold")},{bold:function(){return o(this,"b","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("fixed")},{fixed:function(){return o(this,"tt","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("fontcolor")},{fontcolor:function(e){return o(this,"font","color",e)}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("fontsize")},{fontsize:function(e){return o(this,"font","size",e)}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("italics")},{italics:function(){return o(this,"i","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("link")},{link:function(e){return o(this,"a","href",e)}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("small")},{small:function(){return o(this,"small","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("strike")},{strike:function(){return o(this,"strike","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("sub")},{sub:function(){return o(this,"sub","","")}})},function(e,t,n){"use strict";var r=n(0),o=n(25);r({target:"String",proto:!0,forced:n(26)("sup")},{sup:function(){return o(this,"sup","","")}})},function(e,t,n){"use strict";n(39)("Float32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(28);e.exports=function(e){var t=r(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(39)("Float64",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Int8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Int16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}),!0)},function(e,t,n){"use strict";n(39)("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";n(39)("Uint32",(function(e){return function(t,n,r){return e(this,t,n,r)}}))},function(e,t,n){"use strict";var r=n(7),o=n(137),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("copyWithin",(function(e,t){return o.call(i(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(18).every,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("every",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(97),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("fill",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(7),o=n(18).filter,i=n(44),a=r.aTypedArray,c=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("filter",(function(e){for(var t=o(a(this),e,arguments.length>1?arguments[1]:undefined),n=i(this,this.constructor),r=0,u=t.length,l=new(c(n))(u);u>r;)l[r]=t[r++];return l}))},function(e,t,n){"use strict";var r=n(7),o=n(18).find,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("find",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(18).findIndex,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("findIndex",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(18).forEach,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("forEach",(function(e){o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(115);(0,n(7).exportTypedArrayStaticMethod)("from",n(160),r)},function(e,t,n){"use strict";var r=n(7),o=n(59).includes,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("includes",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(59).indexOf,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("indexOf",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(3),o=n(7),i=n(140),a=n(10)("iterator"),c=r.Uint8Array,u=i.values,l=i.keys,s=i.entries,d=o.aTypedArray,f=o.exportTypedArrayMethod,p=c&&c.prototype[a],m=!!p&&("values"==p.name||p.name==undefined),h=function(){return u.call(d(this))};f("entries",(function(){return s.call(d(this))})),f("keys",(function(){return l.call(d(this))})),f("values",h,!m),f(a,h,!m)},function(e,t,n){"use strict";var r=n(7),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=[].join;i("join",(function(e){return a.apply(o(this),arguments)}))},function(e,t,n){"use strict";var r=n(7),o=n(143),i=r.aTypedArray;(0,r.exportTypedArrayMethod)("lastIndexOf",(function(e){return o.apply(i(this),arguments)}))},function(e,t,n){"use strict";var r=n(7),o=n(18).map,i=n(44),a=r.aTypedArray,c=r.aTypedArrayConstructor;(0,r.exportTypedArrayMethod)("map",(function(e){return o(a(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(i(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var r=n(7),o=n(115),i=r.aTypedArrayConstructor;(0,r.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),o)},function(e,t,n){"use strict";var r=n(7),o=n(75).left,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduce",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=n(75).right,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("reduceRight",(function(e){return o(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=o(this).length,n=a(t/2),r=0;r1?arguments[1]:undefined,1),n=this.length,r=a(e),c=o(r.length),l=0;if(c+t>n)throw RangeError("Wrong length");for(;li;)s[i]=n[i++];return s}),i((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var r=n(7),o=n(18).some,i=r.aTypedArray;(0,r.exportTypedArrayMethod)("some",(function(e){return o(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var r=n(7),o=r.aTypedArray,i=r.exportTypedArrayMethod,a=[].sort;i("sort",(function(e){return a.call(o(this),e)}))},function(e,t,n){"use strict";var r=n(7),o=n(8),i=n(40),a=n(44),c=r.aTypedArray;(0,r.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),r=n.length,u=i(e,r);return new(a(n,n.constructor))(n.buffer,n.byteOffset+u*n.BYTES_PER_ELEMENT,o((t===undefined?r:i(t,r))-u))}))},function(e,t,n){"use strict";var r=n(3),o=n(7),i=n(2),a=r.Int8Array,c=o.aTypedArray,u=o.exportTypedArrayMethod,l=[].toLocaleString,s=[].slice,d=!!a&&i((function(){l.call(new a(1))}));u("toLocaleString",(function(){return l.apply(d?s.call(c(this)):c(this),arguments)}),i((function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()}))||!i((function(){a.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var r=n(7).exportTypedArrayMethod,o=n(2),i=n(3).Uint8Array,a=i&&i.prototype||{},c=[].toString,u=[].join;o((function(){c.call({})}))&&(c=function(){return u.call(this)});var l=a.toString!=c;r("toString",c,l)},function(e,t,n){"use strict";var r,o=n(3),i=n(65),a=n(50),c=n(77),u=n(161),l=n(4),s=n(32).enforce,d=n(128),f=!o.ActiveXObject&&"ActiveXObject"in o,p=Object.isExtensible,m=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",m,u);if(d&&f){r=u.getConstructor(m,"WeakMap",!0),a.REQUIRED=!0;var v=h.prototype,g=v["delete"],b=v.has,y=v.get,C=v.set;i(v,{"delete":function(e){if(l(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new r),g.call(this,e)||t.frozen["delete"](e)}return g.call(this,e)},has:function(e){if(l(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new r),b.call(this,e)||t.frozen.has(e)}return b.call(this,e)},get:function(e){if(l(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new r),b.call(this,e)?y.call(this,e):t.frozen.get(e)}return y.call(this,e)},set:function(e,t){if(l(e)&&!p(e)){var n=s(this);n.frozen||(n.frozen=new r),b.call(this,e)?C.call(this,e,t):n.frozen.set(e,t)}else C.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(77)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(161))},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(107);r({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(154),a=n(30),c=o.process,u="process"==a(c);r({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=u&&c.domain;i(t?t.bind(e):e)}})},function(e,t,n){"use strict";var r=n(0),o=n(3),i=n(72),a=[].slice,c=function(e){return function(t,n){var r=arguments.length>2,o=r?a.call(arguments,2):undefined;return e(r?function(){("function"==typeof t?t:Function(t)).apply(this,o)}:t,n)}};r({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:c(o.setTimeout),setInterval:c(o.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ee,t._HI=P,t._M=Be,t._MCCC=Te,t._ME=Ie,t._MFCC=Ae,t._MP=ke,t._MR=be,t.__render=Fe,t.createComponentVNode=function(e,t,n,r,o){var a=new B(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),r,function(e,t,n){var r=(32768&e?t.render:t).defaultProps;if(i(r))return n;if(i(n))return s(r,null);return S(n,r)}(e,t,n),function(e,t,n){if(4&e)return n;var r=(32768&e?t.render:t).defaultHooks;if(i(r))return n;if(i(n))return r;return S(n,r)}(e,t,o),t);w.createVNode&&w.createVNode(a);return a},t.createFragment=O,t.createPortal=function(e,t){var n=P(e);return L(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,r,o){e||(e=t),De(n,e,r,o)}},t.createTextVNode=I,t.createVNode=L,t.directClone=T,t.findDOMfromVNode=y,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&i(e.children)&&j(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?s(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=De,t.rerender=He,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var r=Array.isArray;function o(e){var t=typeof e;return"string"===t||"number"===t}function i(e){return null==e}function a(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function u(e){return"string"==typeof e}function l(e){return null===e}function s(e,t){var n={};if(e)for(var r in e)n[r]=e[r];if(t)for(var o in t)n[o]=t[o];return n}function d(e){return!l(e)&&"object"==typeof e}var f={};t.EMPTY_OBJ=f;function p(e){return e.substr(2).toLowerCase()}function m(e,t){e.appendChild(t)}function h(e,t,n){l(n)?m(e,t):e.insertBefore(t,n)}function v(e,t){e.removeChild(t)}function g(e){for(var t=0;t0,m=l(f),h=u(f)&&"$"===f[0];p||m||h?(n=n||t.slice(0,s),(p||h)&&(d=T(d)),(m||h)&&(d.key="$"+s),n.push(d)):n&&n.push(d),d.flags|=65536}}i=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=T(t)),i=2;return e.children=n,e.childFlags=i,e}function P(e){return a(e)||o(e)?I(e,null):r(e)?O(e,0,null):16384&e.flags?T(e):e}var R="http://www.w3.org/1999/xlink",F="http://www.w3.org/XML/1998/namespace",D={"xlink:actuate":R,"xlink:arcrole":R,"xlink:href":R,"xlink:role":R,"xlink:show":R,"xlink:title":R,"xlink:type":R,"xml:base":F,"xml:lang":F,"xml:space":F};function z(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var K=z(0),U=z(null),W=z(!0);function Y(e,t){var n=t.$EV;return n||(n=t.$EV=z(null)),n[e]||1==++K[e]&&(U[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?$(t,!0,e,Q(t)):t.stopPropagation()}}(e):function(e){return function(t){$(t,!1,e,Q(t))}}(e);return document.addEventListener(p(e),t),t}(e)),n}function H(e,t){var n=t.$EV;n&&n[e]&&(0==--K[e]&&(document.removeEventListener(p(e),U[e]),U[e]=null),n[e]=null)}function $(e,t,n,r){var o=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&o.disabled)return;var i=o.$EV;if(i){var a=i[n];if(a&&(r.dom=o,a.event?a.event(a.data,e):a(e),e.cancelBubble))return}o=o.parentNode}while(!l(o))}function G(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function q(){return this.defaultPrevented}function X(){return this.cancelBubble}function Q(e){var t={dom:document};return e.isDefaultPrevented=q,e.isPropagationStopped=X,e.stopPropagation=G,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function J(e,t,n){if(e[t]){var r=e[t];r.event?r.event(r.data,n):r(n)}else{var o=t.toLowerCase();e[o]&&e[o](n)}}function Z(e,t){var n=function(n){var r=this.$V;if(r){var o=r.props||f,i=r.dom;if(u(e))J(o,e,n);else for(var a=0;a-1&&t.options[a]&&(c=t.options[a].value),n&&i(c)&&(c=e.defaultValue),ae(r,c)}}var le,se,de=Z("onInput",pe),fe=Z("onChange");function pe(e,t,n){var r=e.value,o=t.value;if(i(r)){if(n){var a=e.defaultValue;i(a)||a===o||(t.defaultValue=a,t.value=a)}}else o!==r&&(t.defaultValue=r,t.value=r)}function me(e,t,n,r,o,i){64&e?ie(r,n):256&e?ue(r,n,o,t):128&e&&pe(r,n,o),i&&(n.$V=t)}function he(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",re),ee(e,"click",oe)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ce)}(t):128&e&&function(e,t){ee(e,"input",de),t.onChange&&ee(e,"change",fe)}(t,n)}function ve(e){return e.type&&te(e.type)?!i(e.checked):!i(e.value)}function ge(e){e&&!E(e,null)&&e.current&&(e.current=null)}function be(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){E(e,t)||void 0===e.current||(e.current=t)}))}function ye(e,t){Ce(e),C(e,t)}function Ce(e){var t,n=e.flags,r=e.children;if(481&n){t=e.ref;var o=e.props;ge(t);var a=e.childFlags;if(!l(o))for(var u=Object.keys(o),s=0,d=u.length;s0;for(var c in a&&(i=ve(n))&&he(t,r,n),n)_e(c,null,n[c],r,o,i,null);a&&me(t,e,r,n,!0,i)}function Se(e,t,n){var r=P(e.render(t,e.state,n)),o=n;return c(e.getChildContext)&&(o=s(n,e.getChildContext())),e.$CX=o,r}function Ee(e,t,n,r,o,i){var a=new t(n,r),u=a.$N=Boolean(t.getDerivedStateFromProps||a.getSnapshotBeforeUpdate);if(a.$SVG=o,a.$L=i,e.children=a,a.$BS=!1,a.context=r,a.props===f&&(a.props=n),u)a.state=x(a,n,a.state);else if(c(a.componentWillMount)){a.$BR=!0,a.componentWillMount();var s=a.$PS;if(!l(s)){var d=a.state;if(l(d))a.state=s;else for(var p in s)d[p]=s[p];a.$PS=null}a.$BR=!1}return a.$LI=Se(a,n,r),a}function Be(e,t,n,r,o,i){var a=e.flags|=16384;481&a?Ie(e,t,n,r,o,i):4&a?function(e,t,n,r,o,i){var a=Ee(e,e.type,e.props||f,n,r,i);Be(a.$LI,t,a.$CX,r,o,i),Te(e.ref,a,i)}(e,t,n,r,o,i):8&a?(!function(e,t,n,r,o,i){Be(e.children=P(function(e,t){return 32768&e.flags?e.type.render(e.props||f,e.ref,t):e.type(e.props||f,t)}(e,n)),t,n,r,o,i)}(e,t,n,r,o,i),Ae(e,i)):512&a||16&a?Le(e,t,o):8192&a?function(e,t,n,r,o,i){var a=e.children,c=e.childFlags;12&c&&0===a.length&&(c=e.childFlags=2,a=e.children=A());2===c?Be(a,n,o,r,o,i):Oe(a,n,t,r,o,i)}(e,n,t,r,o,i):1024&a&&function(e,t,n,r,o){Be(e.children,e.ref,t,!1,null,o);var i=A();Le(i,n,r),e.dom=i.dom}(e,n,t,o,i)}function Le(e,t,n){var r=e.dom=document.createTextNode(e.children);l(t)||h(t,r,n)}function Ie(e,t,n,r,o,a){var c=e.flags,u=e.props,s=e.className,d=e.children,f=e.childFlags,p=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,r=r||(32&c)>0);if(i(s)||""===s||(r?p.setAttribute("class",s):p.className=s),16===f)_(p,d);else if(1!==f){var m=r&&"foreignObject"!==e.type;2===f?(16384&d.flags&&(e.children=d=T(d)),Be(d,p,n,m,null,a)):8!==f&&4!==f||Oe(d,p,n,m,null,a)}l(t)||h(t,p,o),l(u)||ke(e,c,u,p,r),be(e.ref,p,a)}function Oe(e,t,n,r,o,i){for(var a=0;a0,l!==s){var m=l||f;if((c=s||f)!==f)for(var h in(d=(448&o)>0)&&(p=ve(c)),c){var v=m[h],g=c[h];v!==g&&_e(h,v,g,u,r,p,e)}if(m!==f)for(var b in m)i(c[b])&&!i(m[b])&&_e(b,m[b],null,u,r,p,e)}var y=t.children,C=t.className;e.className!==C&&(i(C)?u.removeAttribute("class"):r?u.setAttribute("class",C):u.className=C);4096&o?function(e,t){e.textContent!==t&&(e.textContent=t)}(u,y):je(e.childFlags,t.childFlags,e.children,y,u,n,r&&"foreignObject"!==t.type,null,e,a);d&&me(o,t,u,c,!1,p);var N=t.ref,x=e.ref;x!==N&&(ge(x),be(N,u,a))}(e,t,r,o,p,d):4&p?function(e,t,n,r,o,i,a){var u=t.children=e.children;if(l(u))return;u.$L=a;var d=t.props||f,p=t.ref,m=e.ref,h=u.state;if(!u.$N){if(c(u.componentWillReceiveProps)){if(u.$BR=!0,u.componentWillReceiveProps(d,r),u.$UN)return;u.$BR=!1}l(u.$PS)||(h=s(h,u.$PS),u.$PS=null)}Pe(u,h,d,n,r,o,!1,i,a),m!==p&&(ge(m),be(p,u,a))}(e,t,n,r,o,u,d):8&p?function(e,t,n,r,o,a,u){var l=!0,s=t.props||f,d=t.ref,p=e.props,m=!i(d),h=e.children;m&&c(d.onComponentShouldUpdate)&&(l=d.onComponentShouldUpdate(p,s));if(!1!==l){m&&c(d.onComponentWillUpdate)&&d.onComponentWillUpdate(p,s);var v=t.type,g=P(32768&t.flags?v.render(s,d,r):v(s,r));Me(h,g,n,r,o,a,u),t.children=g,m&&c(d.onComponentDidUpdate)&&d.onComponentDidUpdate(p,s)}else t.children=h}(e,t,n,r,o,u,d):16&p?function(e,t){var n=t.children,r=t.dom=e.dom;n!==e.children&&(r.nodeValue=n)}(e,t):512&p?t.dom=e.dom:8192&p?function(e,t,n,r,o,i){var a=e.children,c=t.children,u=e.childFlags,l=t.childFlags,s=null;12&l&&0===c.length&&(l=t.childFlags=2,c=t.children=A());var d=0!=(2&l);if(12&u){var f=a.length;(8&u&&8&l||d||!d&&c.length>f)&&(s=y(a[f-1],!1).nextSibling)}je(u,l,a,c,n,r,o,s,e,i)}(e,t,n,r,o,d):function(e,t,n,r){var o=e.ref,i=t.ref,c=t.children;if(je(e.childFlags,t.childFlags,e.children,c,o,n,!1,null,e,r),t.dom=e.dom,o!==i&&!a(c)){var u=c.dom;v(o,u),m(i,u)}}(e,t,r,d)}function je(e,t,n,r,o,i,a,c,u,l){switch(e){case 2:switch(t){case 2:Me(n,r,o,i,a,c,l);break;case 1:ye(n,o);break;case 16:Ce(n),_(o,r);break;default:!function(e,t,n,r,o,i){Ce(e),Oe(t,n,r,o,y(e,!0),i),C(e,n)}(n,r,o,i,a,l)}break;case 1:switch(t){case 2:Be(r,o,i,a,c,l);break;case 1:break;case 16:_(o,r);break;default:Oe(r,o,i,a,c,l)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:_(n,t))}(n,r,o);break;case 2:xe(o),Be(r,o,i,a,c,l);break;case 1:xe(o);break;default:xe(o),Oe(r,o,i,a,c,l)}break;default:switch(t){case 16:Ne(n),_(o,r);break;case 2:Ve(o,u,n),Be(r,o,i,a,c,l);break;case 1:Ve(o,u,n);break;default:var s=0|n.length,d=0|r.length;0===s?d>0&&Oe(r,o,i,a,c,l):0===d?Ve(o,u,n):8===t&&8===e?function(e,t,n,r,o,i,a,c,u,l){var s,d,f=i-1,p=a-1,m=0,h=e[m],v=t[m];e:{for(;h.key===v.key;){if(16384&v.flags&&(t[m]=v=T(v)),Me(h,v,n,r,o,c,l),e[m]=v,++m>f||m>p)break e;h=e[m],v=t[m]}for(h=e[f],v=t[p];h.key===v.key;){if(16384&v.flags&&(t[p]=v=T(v)),Me(h,v,n,r,o,c,l),e[f]=v,f--,p--,m>f||m>p)break e;h=e[f],v=t[p]}}if(m>f){if(m<=p)for(d=(s=p+1)p)for(;m<=f;)ye(e[m++],n);else!function(e,t,n,r,o,i,a,c,u,l,s,d,f){var p,m,h,v=0,g=c,b=c,C=i-c+1,x=a-c+1,V=new Int32Array(x+1),w=C===r,_=!1,k=0,S=0;if(o<4||(C|x)<32)for(v=g;v<=i;++v)if(p=e[v],Sc?_=!0:k=c,16384&m.flags&&(t[c]=m=T(m)),Me(p,m,u,n,l,s,f),++S;break}!w&&c>a&&ye(p,u)}else w||ye(p,u);else{var E={};for(v=b;v<=a;++v)E[t[v].key]=v;for(v=g;v<=i;++v)if(p=e[v],Sg;)ye(e[g++],u);V[c-b]=v+1,k>c?_=!0:k=c,16384&(m=t[c]).flags&&(t[c]=m=T(m)),Me(p,m,u,n,l,s,f),++S}else w||ye(p,u);else w||ye(p,u)}if(w)Ve(u,d,e),Oe(t,u,n,l,s,f);else if(_){var B=function(e){var t=0,n=0,r=0,o=0,i=0,a=0,c=0,u=e.length;u>Re&&(Re=u,le=new Int32Array(u),se=new Int32Array(u));for(;n>1]]0&&(se[n]=le[i-1]),le[i]=n)}i=o+1;var l=new Int32Array(i);a=le[i-1];for(;i-- >0;)l[i]=a,a=se[a],le[i]=0;return l}(V);for(c=B.length-1,v=x-1;v>=0;v--)0===V[v]?(16384&(m=t[k=v+b]).flags&&(t[k]=m=T(m)),Be(m,u,n,l,(h=k+1)=0;v--)0===V[v]&&(16384&(m=t[k=v+b]).flags&&(t[k]=m=T(m)),Be(m,u,n,l,(h=k+1)a?a:i,f=0;fa)for(f=d;f=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),l}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;N(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:V(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";!function(t,n){var r,o,i=t.html5||{},a=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,c=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,u=0,l={};function s(){var e=m.elements;return"string"==typeof e?e.split(" "):e}function d(e){var t=l[e._html5shiv];return t||(t={},u++,e._html5shiv=u,l[u]=t),t}function f(e,t,r){return t||(t=n),o?t.createElement(e):(r||(r=d(t)),!(i=r.cache[e]?r.cache[e].cloneNode():c.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e)).canHaveChildren||a.test(e)||i.tagUrn?i:r.frag.appendChild(i));var i}function p(e){e||(e=n);var t=d(e);return!m.shivCSS||r||t.hasCSS||(t.hasCSS=!!function(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),o||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return m.shivMethods?f(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+s().join().replace(/[\w\-:]+/g,(function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'}))+");return n}")(m,t.frag)}(e,t),e}!function(){try{var e=n.createElement("a");e.innerHTML=" ",r="hidden"in e,o=1==e.childNodes.length||function(){n.createElement("a");var e=n.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(t){r=!0,o=!0}}();var m={elements:i.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==i.shivCSS,supportsUnknownElements:o,shivMethods:!1!==i.shivMethods,type:"default",shivDocument:p,createElement:f,createDocumentFragment:function(e,t){if(e||(e=n),o)return e.createDocumentFragment();for(var r=(t=t||d(e)).frag.cloneNode(),i=0,a=s(),c=a.length;ii;)r.push(arguments[i++]);if(o=t,(p(t)||e!==undefined)&&!ie(e))return f(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ie(t))return t}),r[1]=t,Y.apply(null,r)}});W.prototype[R]||S(W.prototype,R,W.prototype.valueOf),P(W,"Symbol"),I[D]=!0},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(3),a=n(17),c=n(4),l=n(13).f,u=n(130),s=i.Symbol;if(r&&"function"==typeof s&&(!("description"in s.prototype)||s().description!==undefined)){var d={},f=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof f?new s(e):e===undefined?s():s(e);return""===e&&(d[t]=!0),t};u(f,s);var p=f.prototype=s.prototype;p.constructor=f;var m=p.toString,h="Symbol(test)"==String(s("test")),g=/^Symbol\((.*)\)[^)]+$/;l(p,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=m.call(e);if(a(d,e))return"";var n=h?t.slice(7,-1):t.replace(g,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:f})}},function(e,t,n){"use strict";n(24)("asyncIterator")},function(e,t,n){"use strict";n(24)("hasInstance")},function(e,t,n){"use strict";n(24)("isConcatSpreadable")},function(e,t,n){"use strict";n(24)("iterator")},function(e,t,n){"use strict";n(24)("match")},function(e,t,n){"use strict";n(24)("replace")},function(e,t,n){"use strict";n(24)("search")},function(e,t,n){"use strict";n(24)("species")},function(e,t,n){"use strict";n(24)("split")},function(e,t,n){"use strict";n(24)("toPrimitive")},function(e,t,n){"use strict";n(24)("toStringTag")},function(e,t,n){"use strict";n(24)("unscopables")},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(51),a=n(4),c=n(14),l=n(8),u=n(48),s=n(62),d=n(63),f=n(11),p=n(97),m=f("isConcatSpreadable"),h=p>=51||!r((function(){var e=[];return e[m]=!1,e.concat()[0]!==e})),g=d("concat"),v=function(e){if(!a(e))return!1;var t=e[m];return t!==undefined?!!t:i(e)};o({target:"Array",proto:!0,forced:!h||!g},{concat:function(e){var t,n,o,r,i,a=c(this),d=s(a,0),f=0;for(t=-1,o=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(d,f++,i)}return d.length=f,d}})},function(e,t,n){"use strict";var o=n(0),r=n(138),i=n(43);o({target:"Array",proto:!0},{copyWithin:r}),i("copyWithin")},function(e,t,n){"use strict";var o=n(0),r=n(18).every,i=n(38),a=n(22),c=i("every"),l=a("every");o({target:"Array",proto:!0,forced:!c||!l},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(98),i=n(43);o({target:"Array",proto:!0},{fill:r}),i("fill")},function(e,t,n){"use strict";var o=n(0),r=n(18).filter,i=n(63),a=n(22),c=i("filter"),l=a("filter");o({target:"Array",proto:!0,forced:!c||!l},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(18).find,i=n(43),a=n(22),c=!0,l=a("find");"find"in[]&&Array(1).find((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),i("find")},function(e,t,n){"use strict";var o=n(0),r=n(18).findIndex,i=n(43),a=n(22),c=!0,l=a("findIndex");"findIndex"in[]&&Array(1).findIndex((function(){c=!1})),o({target:"Array",proto:!0,forced:c||!l},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),i("findIndex")},function(e,t,n){"use strict";var o=n(0),r=n(139),i=n(14),a=n(8),c=n(28),l=n(62);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=i(this),n=a(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(0),r=n(139),i=n(14),a=n(8),c=n(29),l=n(62);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),o=a(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(0),r=n(201);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(18).forEach,r=n(38),i=n(22),a=r("forEach"),c=i("forEach");e.exports=a&&c?[].forEach:function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}},function(e,t,n){"use strict";var o=n(0),r=n(203);o({target:"Array",stat:!0,forced:!n(74)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(47),r=n(14),i=n(140),a=n(99),c=n(8),l=n(48),u=n(100);e.exports=function(e){var t,n,s,d,f,p,m=r(e),h="function"==typeof this?this:Array,g=arguments.length,v=g>1?arguments[1]:undefined,b=v!==undefined,y=u(m),C=0;if(b&&(v=o(v,g>2?arguments[2]:undefined,2)),y==undefined||h==Array&&a(y))for(n=new h(t=c(m.length));t>C;C++)p=b?v(m[C],C):m[C],l(n,C,p);else for(f=(d=y.call(m)).next,n=new h;!(s=f.call(d)).done;C++)p=b?i(d,v,[s.value,C],!0):s.value,l(n,C,p);return n.length=C,n}},function(e,t,n){"use strict";var o=n(0),r=n(59).includes,i=n(43);o({target:"Array",proto:!0,forced:!n(22)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),i("includes")},function(e,t,n){"use strict";var o=n(0),r=n(59).indexOf,i=n(38),a=n(22),c=[].indexOf,l=!!c&&1/[1].indexOf(1,-0)<0,u=i("indexOf"),s=a("indexOf",{ACCESSORS:!0,1:0});o({target:"Array",proto:!0,forced:l||!u||!s},{indexOf:function(e){return l?c.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(0)({target:"Array",stat:!0},{isArray:n(51)})},function(e,t,n){"use strict";var o=n(142).IteratorPrototype,r=n(41),i=n(45),a=n(42),c=n(64),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:i(1,n)}),a(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(0),r=n(56),i=n(23),a=n(38),c=[].join,l=r!=Object,u=a("join",",");o({target:"Array",proto:!0,forced:l||!u},{join:function(e){return c.call(i(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(0),r=n(144);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(0),r=n(18).map,i=n(63),a=n(22),c=i("map"),l=a("map");o({target:"Array",proto:!0,forced:!c||!l},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(48);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)i(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(0),r=n(75).left,i=n(38),a=n(22),c=i("reduce"),l=a("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(75).right,i=n(38),a=n(22),c=i("reduceRight"),l=a("reduce",{1:0});o({target:"Array",proto:!0,forced:!c||!l},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),i=n(51),a=n(40),c=n(8),l=n(23),u=n(48),s=n(11),d=n(63),f=n(22),p=d("slice"),m=f("slice",{ACCESSORS:!0,0:0,1:2}),h=s("species"),g=[].slice,v=Math.max;o({target:"Array",proto:!0,forced:!p||!m},{slice:function(e,t){var n,o,s,d=l(this),f=c(d.length),p=a(e,f),m=a(t===undefined?f:t,f);if(i(d)&&("function"!=typeof(n=d.constructor)||n!==Array&&!i(n.prototype)?r(n)&&null===(n=n[h])&&(n=undefined):n=undefined,n===Array||n===undefined))return g.call(d,p,m);for(o=new(n===undefined?Array:n)(v(m-p,0)),s=0;p1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(29),i=n(14),a=n(2),c=n(38),l=[],u=l.sort,s=a((function(){l.sort(undefined)})),d=a((function(){l.sort(null)})),f=c("sort");o({target:"Array",proto:!0,forced:s||!d||!f},{sort:function(e){return e===undefined?u.call(i(this)):u.call(i(this),r(e))}})},function(e,t,n){"use strict";n(52)("Array")},function(e,t,n){"use strict";var o=n(0),r=n(40),i=n(28),a=n(8),c=n(14),l=n(62),u=n(48),s=n(63),d=n(22),f=s("splice"),p=d("splice",{ACCESSORS:!0,0:0,1:2}),m=Math.max,h=Math.min;o({target:"Array",proto:!0,forced:!f||!p},{splice:function(e,t){var n,o,s,d,f,p,g=c(this),v=a(g.length),b=r(e,v),y=arguments.length;if(0===y?n=o=0:1===y?(n=0,o=v-b):(n=y-2,o=h(m(i(t),0),v-b)),v+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(s=l(g,o),d=0;dv-o+n;d--)delete g[d-1]}else if(n>o)for(d=v-o;d>b;d--)p=d+n-1,(f=d+o-1)in g?g[p]=g[f]:delete g[p];for(d=0;d>1,h=23===t?r(2,-24)-r(2,-77):0,g=e<0||0===e&&1/e<0?1:0,v=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=p):(l=i(a(e)/c),e*(s=r(2,-l))<1&&(l--,s*=2),(e+=l+m>=1?h/s:h*r(2,1-m))*s>=2&&(l++,s/=2),l+m>=p?(u=0,l=p):l+m>=1?(u=(e*s-1)*r(2,t),l+=m):(u=e*r(2,m-1)*r(2,t),l=0));t>=8;d[v++]=255&u,u/=256,t-=8);for(l=l<0;d[v++]=255&l,l/=256,f-=8);return d[--v]|=128*g,d},unpack:function(e,t){var n,o=e.length,i=8*o-t-1,a=(1<>1,l=i-7,u=o-1,s=e[u--],d=127&s;for(s>>=7;l>0;d=256*d+e[u],u--,l-=8);for(n=d&(1<<-l)-1,d>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===d)d=1-c;else{if(d===a)return n?NaN:s?-1/0:1/0;n+=r(2,t),d-=c}return(s?-1:1)*n*r(2,d-t)}}},function(e,t,n){"use strict";var o=n(0),r=n(7);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(76),a=n(6),c=n(40),l=n(8),u=n(44),s=i.ArrayBuffer,d=i.DataView,f=s.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new s(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(f!==undefined&&t===undefined)return f.call(a(this),e);for(var n=a(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),i=new(u(this,s))(l(r-o)),p=new d(this),m=new d(i),h=0;o9999?"+":"";return n+r(i(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(14),a=n(32);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=i(this),n=a(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(27),r=n(231),i=n(11)("toPrimitive"),a=Date.prototype;i in a||o(a,i,r)},function(e,t,n){"use strict";var o=n(6),r=n(32);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(21),r=Date.prototype,i=r.toString,a=r.getTime;new Date(NaN)+""!="Invalid Date"&&o(r,"toString",(function(){var e=a.call(this);return e==e?i.call(this):"Invalid Date"}))},function(e,t,n){"use strict";n(0)({target:"Function",proto:!0},{bind:n(146)})},function(e,t,n){"use strict";var o=n(4),r=n(13),i=n(34),a=n(11)("hasInstance"),c=Function.prototype;a in c||r.f(c,a,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(5),r=n(13).f,i=Function.prototype,a=i.toString,c=/^\s*function ([^ (]*)/;o&&!("name"in i)&&r(i,"name",{configurable:!0,get:function(){try{return a.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(3);n(42)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(77),r=n(147);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(148),i=Math.acosh,a=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!i||710!=Math.floor(i(Number.MAX_VALUE))||i(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?a(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(0),r=Math.asinh,i=Math.log,a=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):i(e+a(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(0),r=Math.atanh,i=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:i((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(0),r=n(107),i=Math.abs,a=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*a(i(e),1/3)}})},function(e,t,n){"use strict";var o=n(0),r=Math.floor,i=Math.log,a=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(i(e+.5)*a):32}})},function(e,t,n){"use strict";var o=n(0),r=n(79),i=Math.cosh,a=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!i||i(710)===Infinity},{cosh:function(e){var t=r(a(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(79);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{fround:n(246)})},function(e,t,n){"use strict";var o=n(107),r=Math.abs,i=Math.pow,a=i(2,-52),c=i(2,-23),l=i(2,127)*(2-c),u=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=r(e),s=o(e);return il||n!=n?s*Infinity:s*n}},function(e,t,n){"use strict";var o=n(0),r=Math.hypot,i=Math.abs,a=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*a(r)}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,i=65535&o;return 0|r*i+((65535&n>>>16)*i+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(0),r=Math.log,i=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*i}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{log1p:n(148)})},function(e,t,n){"use strict";var o=n(0),r=Math.log,i=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/i}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{sign:n(107)})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(79),a=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return a(e=+e)<1?(i(e)-i(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(79),i=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(i(e)+i(-e))}})},function(e,t,n){"use strict";n(42)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(0),r=Math.ceil,i=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?i:r)(e)}})},function(e,t,n){"use strict";var o=n(5),r=n(3),i=n(60),a=n(21),c=n(17),l=n(31),u=n(78),s=n(32),d=n(2),f=n(41),p=n(46).f,m=n(19).f,h=n(13).f,g=n(54).trim,v=r.Number,b=v.prototype,y="Number"==l(f(b)),C=function(e){var t,n,o,r,i,a,c,l,u=s(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=g(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(a=(i=u.slice(2)).length,c=0;cr)return NaN;return parseInt(i,o)}return+u};if(i("Number",!v(" 0o1")||!v("0b1")||v("+0x1"))){for(var N,V=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof V&&(y?d((function(){b.valueOf.call(n)})):"Number"!=l(n))?u(new v(C(t)),n,V):C(t)},x=o?p(v):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),_=0;x.length>_;_++)c(v,N=x[_])&&!c(V,N)&&h(V,N,m(v,N));V.prototype=b,b.constructor=V,a(r,"Number",V)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isFinite:n(260)})},function(e,t,n){"use strict";var o=n(3).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isInteger:n(149)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(0),r=n(149),i=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&i(e)<=9007199254740991}})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(0),r=n(267);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(3),r=n(54).trim,i=n(80),a=o.parseFloat,c=1/a(i+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=a(t);return 0===n&&"-"==t.charAt(0)?-0:n}:a},function(e,t,n){"use strict";var o=n(0),r=n(150);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(0),r=n(28),i=n(270),a=n(106),c=n(2),l=1..toFixed,u=Math.floor,s=function d(e,t,n){return 0===t?n:t%2==1?d(e,t-1,n*e):d(e*e,t/2,n)};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=i(this),d=r(e),f=[0,0,0,0,0,0],p="",m="0",h=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*f[n],f[n]=o%1e7,o=u(o/1e7)},g=function(e){for(var t=6,n=0;--t>=0;)n+=f[t],f[t]=u(n/e),n=n%e*1e7},v=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==f[e]){var n=String(f[e]);t=""===t?n:t+a.call("0",7-n.length)+n}return t};if(d<0||d>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(p="-",l=-l),l>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(l*s(2,69,1))-69)<0?l*s(2,-t,1):l/s(2,t,1),n*=4503599627370496,(t=52-t)>0){for(h(0,n),o=d;o>=7;)h(1e7,0),o-=7;for(h(s(10,o,1),0),o=t-1;o>=23;)g(1<<23),o-=23;g(1<0?p+((c=m.length)<=d?"0."+a.call("0",d-c)+m:m.slice(0,c-d)+"."+m.slice(c-d)):p+m}})},function(e,t,n){"use strict";var o=n(31);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(0),r=n(272);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(5),r=n(2),i=n(61),a=n(95),c=n(70),l=n(14),u=n(56),s=Object.assign,d=Object.defineProperty;e.exports=!s||r((function(){if(o&&1!==s({b:1},s(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=s({},e)[n]||"abcdefghijklmnopqrst"!=i(s({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,s=1,d=a.f,f=c.f;r>s;)for(var p,m=u(arguments[s++]),h=d?i(m).concat(d(m)):i(m),g=h.length,v=0;g>v;)p=h[v++],o&&!f.call(m,p)||(n[p]=m[p]);return n}:s},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0,sham:!n(5)},{create:n(41)})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(81),a=n(14),c=n(29),l=n(13);r&&o({target:"Object",proto:!0,forced:i},{__defineGetter__:function(e,t){l.f(a(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(5);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(134)})},function(e,t,n){"use strict";var o=n(0),r=n(5);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(81),a=n(14),c=n(29),l=n(13);r&&o({target:"Object",proto:!0,forced:i},{__defineSetter__:function(e,t){l.f(a(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(151).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(66),i=n(2),a=n(4),c=n(50).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:i((function(){l(1)})),sham:!r},{freeze:function(e){return l&&a(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(67),i=n(48);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){i(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(23),a=n(19).f,c=n(5),l=r((function(){a(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(93),a=n(23),c=n(19),l=n(48);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=a(e),r=c.f,u=i(o),s={},d=0;u.length>d;)(n=r(o,t=u[d++]))!==undefined&&l(s,t,n);return s}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(136).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:i})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(14),a=n(34),c=n(103);o({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!c},{getPrototypeOf:function(e){return a(i(e))}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{is:n(152)})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(4),a=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){a(1)}))},{isExtensible:function(e){return!!i(e)&&(!a||a(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(4),a=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){a(1)}))},{isFrozen:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(2),i=n(4),a=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){a(1)}))},{isSealed:function(e){return!i(e)||!!a&&a(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(14),i=n(61);o({target:"Object",stat:!0,forced:n(2)((function(){i(1)}))},{keys:function(e){return i(r(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(81),a=n(14),c=n(32),l=n(34),u=n(19).f;r&&o({target:"Object",proto:!0,forced:i},{__lookupGetter__:function(e){var t,n=a(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(81),a=n(14),c=n(32),l=n(34),u=n(19).f;r&&o({target:"Object",proto:!0,forced:i},{__lookupSetter__:function(e){var t,n=a(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(4),i=n(50).onFreeze,a=n(66),c=n(2),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!a},{preventExtensions:function(e){return l&&r(e)?l(i(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(4),i=n(50).onFreeze,a=n(66),c=n(2),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!a},{seal:function(e){return l&&r(e)?l(i(e)):e}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{setPrototypeOf:n(49)})},function(e,t,n){"use strict";var o=n(101),r=n(21),i=n(296);o||r(Object.prototype,"toString",i,{unsafe:!0})},function(e,t,n){"use strict";var o=n(101),r=n(73);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(0),r=n(151).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(150);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,i,a,c=n(0),l=n(37),u=n(3),s=n(35),d=n(153),f=n(21),p=n(65),m=n(42),h=n(52),g=n(4),v=n(29),b=n(53),y=n(31),C=n(91),N=n(67),V=n(74),x=n(44),_=n(108).set,w=n(155),k=n(156),S=n(300),E=n(157),B=n(301),L=n(33),I=n(60),T=n(11),O=n(97),A=T("species"),M="Promise",P=L.get,j=L.set,F=L.getterFor(M),D=d,R=u.TypeError,z=u.document,K=u.process,U=s("fetch"),W=E.f,Y=W,H="process"==y(K),G=!!(z&&z.createEvent&&u.dispatchEvent),$=I(M,(function(){if(!(C(D)!==String(D))){if(66===O)return!0;if(!H&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(O>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[A]=t,!(e.then((function(){}))instanceof t)})),q=$||!V((function(e){D.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!g(e)||"function"!=typeof(t=e.then))&&t},Q=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;w((function(){for(var r=t.value,i=1==t.state,a=0;o.length>a;){var c,l,u,s=o[a++],d=i?s.ok:s.fail,f=s.resolve,p=s.reject,m=s.domain;try{d?(i||(2===t.rejection&&te(e,t),t.rejection=1),!0===d?c=r:(m&&m.enter(),c=d(r),m&&(m.exit(),u=!0)),c===s.promise?p(R("Promise-chain cycle")):(l=X(c))?l.call(c,f,p):f(c)):p(r)}catch(h){m&&!u&&m.exit(),p(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&Z(e,t)}))}},J=function(e,t,n){var o,r;G?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&S("Unhandled promise rejection",n)},Z=function(e,t){_.call(u,(function(){var n,o=t.value;if(ee(t)&&(n=B((function(){H?K.emit("unhandledRejection",o,e):J("unhandledrejection",e,o)})),t.rejection=H||ee(t)?2:1,n.error))throw n.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e,t){_.call(u,(function(){H?K.emit("rejectionHandled",e):J("rejectionhandled",e,t.value)}))},ne=function(e,t,n,o){return function(r){e(t,n,r,o)}},oe=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,Q(e,t,!0))},re=function ie(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw R("Promise can't be resolved itself");var r=X(n);r?w((function(){var o={done:!1};try{r.call(n,ne(ie,e,o,t),ne(oe,e,o,t))}catch(i){oe(e,o,i,t)}})):(t.value=n,t.state=1,Q(e,t,!1))}catch(i){oe(e,{done:!1},i,t)}}};$&&(D=function(e){b(this,D,M),v(e),o.call(this);var t=P(this);try{e(ne(re,this,t),ne(oe,this,t))}catch(n){oe(this,t,n)}},(o=function(e){j(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:undefined})}).prototype=p(D.prototype,{then:function(e,t){var n=F(this),o=W(x(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=H?K.domain:undefined,n.parent=!0,n.reactions.push(o),0!=n.state&&Q(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=P(e);this.promise=e,this.resolve=ne(re,e,t),this.reject=ne(oe,e,t)},E.f=W=function(e){return e===D||e===i?new r(e):Y(e)},l||"function"!=typeof d||(a=d.prototype.then,f(d.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){a.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof U&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return k(D,U.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:$},{Promise:D}),m(D,M,!1,!0),h(M),i=s(M),c({target:M,stat:!0,forced:$},{reject:function(e){var t=W(this);return t.reject.call(undefined,e),t.promise}}),c({target:M,stat:!0,forced:l||$},{resolve:function(e){return k(l&&this===i?D:this,e)}}),c({target:M,stat:!0,forced:q},{all:function(e){var t=this,n=W(t),o=n.resolve,r=n.reject,i=B((function(){var n=v(t.resolve),i=[],a=0,c=1;N(e,(function(e){var l=a++,u=!1;i.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,i[l]=e,--c||o(i))}),r)})),--c||o(i)}));return i.error&&r(i.value),n.promise},race:function(e){var t=this,n=W(t),o=n.reject,r=B((function(){var r=v(t.resolve);N(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(3);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(0),r=n(37),i=n(153),a=n(2),c=n(35),l=n(44),u=n(156),s=n(21);o({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof i||i.prototype["finally"]||s(i.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(0),r=n(35),i=n(29),a=n(6),c=n(2),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return i(e),a(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(0),r=n(35),i=n(29),a=n(6),c=n(4),l=n(41),u=n(146),s=n(2),d=r("Reflect","construct"),f=s((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),p=!s((function(){d((function(){}))})),m=f||p;o({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!f)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,s=l(c(r)?r:Object.prototype),m=Function.apply.call(e,s,t);return c(m)?m:s}})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(6),a=n(32),c=n(13);o({target:"Reflect",stat:!0,forced:n(2)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){i(e);var o=a(t,!0);i(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(6),i=n(19).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=i(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(0),r=n(4),i=n(6),a=n(17),c=n(19),l=n(34);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,s=arguments.length<3?e:arguments[2];return i(e)===s?e[t]:(n=c.f(e,t))?a(n,"value")?n.value:n.get===undefined?undefined:n.get.call(s):r(o=l(e))?u(o,t,s):void 0}})},function(e,t,n){"use strict";var o=n(0),r=n(5),i=n(6),a=n(19);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return a.f(i(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(6),i=n(34);o({target:"Reflect",stat:!0,sham:!n(103)},{getPrototypeOf:function(e){return i(r(e))}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(0),r=n(6),i=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!i||i(e)}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{ownKeys:n(93)})},function(e,t,n){"use strict";var o=n(0),r=n(35),i=n(6);o({target:"Reflect",stat:!0,sham:!n(66)},{preventExtensions:function(e){i(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(6),i=n(4),a=n(17),c=n(2),l=n(13),u=n(19),s=n(34),d=n(45);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(s(e),"a",1,e)}))},{set:function f(e,t,n){var o,c,p=arguments.length<4?e:arguments[3],m=u.f(r(e),t);if(!m){if(i(c=s(e)))return f(c,t,n,p);m=d(0)}if(a(m,"value")){if(!1===m.writable||!i(p))return!1;if(o=u.f(p,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(p,t,o)}else l.f(p,t,d(0,n));return!0}return m.set!==undefined&&(m.set.call(p,n),!0)}})},function(e,t,n){"use strict";var o=n(0),r=n(6),i=n(143),a=n(49);a&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),i(t);try{return a(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(5),r=n(3),i=n(60),a=n(78),c=n(13).f,l=n(46).f,u=n(109),s=n(82),d=n(110),f=n(21),p=n(2),m=n(33).set,h=n(52),g=n(11)("match"),v=r.RegExp,b=v.prototype,y=/a/g,C=/a/g,N=new v(y)!==y,V=d.UNSUPPORTED_Y;if(o&&i("RegExp",!N||V||p((function(){return C[g]=!1,v(y)!=y||v(C)==C||"/a/i"!=v(y,"i")})))){for(var x=function(e,t){var n,o=this instanceof x,r=u(e),i=t===undefined;if(!o&&r&&e.constructor===x&&i)return e;N?r&&!i&&(e=e.source):e instanceof x&&(i&&(t=s.call(e)),e=e.source),V&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var c=a(N?new v(e,t):v(e,t),o?this:b,x);return V&&n&&m(c,{sticky:n}),c},_=function(e){e in x||c(x,e,{configurable:!0,get:function(){return v[e]},set:function(t){v[e]=t}})},w=l(v),k=0;w.length>k;)_(w[k++]);b.constructor=x,x.prototype=b,f(r,"RegExp",x)}h("RegExp")},function(e,t,n){"use strict";var o=n(5),r=n(13),i=n(82),a=n(110).UNSUPPORTED_Y;o&&("g"!=/./g.flags||a)&&r.f(RegExp.prototype,"flags",{configurable:!0,get:i})},function(e,t,n){"use strict";var o=n(21),r=n(6),i=n(2),a=n(82),c=RegExp.prototype,l=c.toString,u=i((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),s="toString"!=l.name;(u||s)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?a.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(77),r=n(147);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(111).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(0),i=n(19).f,a=n(8),c=n(112),l=n(20),u=n(113),s=n(37),d="".endsWith,f=Math.min,p=u("endsWith");r({target:"String",proto:!0,forced:!!(s||p||(o=i(String.prototype,"endsWith"),!o||o.writable))&&!p},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=a(t.length),r=n===undefined?o:f(a(n),o),i=String(e);return d?d.call(t,i,r):t.slice(r-i.length,r)===i}})},function(e,t,n){"use strict";var o=n(0),r=n(40),i=String.fromCharCode,a=String.fromCodePoint;o({target:"String",stat:!0,forced:!!a&&1!=a.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,a=0;o>a;){if(t=+arguments[a++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(0),r=n(112),i=n(20);o({target:"String",proto:!0,forced:!n(113)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(111).charAt,r=n(33),i=n(102),a=r.set,c=r.getterFor("String Iterator");i(String,"String",(function(e){a(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(84),r=n(6),i=n(8),a=n(20),c=n(114),l=n(85);o("match",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),u=String(this);if(!a.global)return l(a,u);var s=a.unicode;a.lastIndex=0;for(var d,f=[],p=0;null!==(d=l(a,u));){var m=String(d[0]);f[p]=m,""===m&&(a.lastIndex=c(u,i(a.lastIndex),s)),p++}return 0===p?null:f}]}))},function(e,t,n){"use strict";var o=n(0),r=n(105).end;o({target:"String",proto:!0,forced:n(159)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(105).start;o({target:"String",proto:!0,forced:n(159)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(23),i=n(8);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=i(t.length),o=arguments.length,a=[],c=0;n>c;)a.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n,o){var g=o.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,v=o.REPLACE_KEEPS_$0,b=g?"$":"$0";return[function(n,o){var r=l(this),i=n==undefined?undefined:n[e];return i!==undefined?i.call(n,r,o):t.call(String(r),n,o)},function(e,o){if(!g&&v||"string"==typeof o&&-1===o.indexOf(b)){var i=n(t,e,this,o);if(i.done)return i.value}var l=r(e),p=String(this),m="function"==typeof o;m||(o=String(o));var h=l.global;if(h){var C=l.unicode;l.lastIndex=0}for(var N=[];;){var V=s(l,p);if(null===V)break;if(N.push(V),!h)break;""===String(V[0])&&(l.lastIndex=u(p,a(l.lastIndex),C))}for(var x,_="",w=0,k=0;k=w&&(_+=p.slice(w,E)+O,w=E+S.length)}return _+p.slice(w)}];function y(e,n,o,r,a,c){var l=o+e.length,u=r.length,s=h;return a!==undefined&&(a=i(a),s=m),t.call(c,s,(function(t,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=a[i.slice(1,-1)];break;default:var s=+i;if(0===s)return t;if(s>u){var d=p(s/10);return 0===d?t:d<=u?r[d-1]===undefined?i.charAt(1):r[d-1]+i.charAt(1):t}c=r[s-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(84),r=n(6),i=n(20),a=n(152),c=n(85);o("search",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),l=String(this),u=i.lastIndex;a(u,0)||(i.lastIndex=0);var s=c(i,l);return a(i.lastIndex,u)||(i.lastIndex=u),null===s?-1:s.index}]}))},function(e,t,n){"use strict";var o=n(84),r=n(109),i=n(6),a=n(20),c=n(44),l=n(114),u=n(8),s=n(85),d=n(83),f=n(2),p=[].push,m=Math.min,h=!f((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(a(this)),i=n===undefined?4294967295:n>>>0;if(0===i)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,i);for(var c,l,u,s=[],f=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),m=0,h=new RegExp(e.source,f+"g");(c=d.call(h,o))&&!((l=h.lastIndex)>m&&(s.push(o.slice(m,c.index)),c.length>1&&c.index=i));)h.lastIndex===c.index&&h.lastIndex++;return m===o.length?!u&&h.test("")||s.push(""):s.push(o.slice(m)),s.length>i?s.slice(0,i):s}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=a(this),i=t==undefined?undefined:t[e];return i!==undefined?i.call(t,r,n):o.call(String(r),t,n)},function(e,r){var a=n(o,e,this,r,o!==t);if(a.done)return a.value;var d=i(e),f=String(this),p=c(d,RegExp),g=d.unicode,v=(d.ignoreCase?"i":"")+(d.multiline?"m":"")+(d.unicode?"u":"")+(h?"y":"g"),b=new p(h?d:"^(?:"+d.source+")",v),y=r===undefined?4294967295:r>>>0;if(0===y)return[];if(0===f.length)return null===s(b,f)?[f]:[];for(var C=0,N=0,V=[];N1?arguments[1]:undefined,t.length)),o=String(e);return d?d.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(0),r=n(54).trim;o({target:"String",proto:!0,forced:n(115)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(0),r=n(54).end,i=n(115)("trimEnd"),a=i?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:i},{trimEnd:a,trimRight:a})},function(e,t,n){"use strict";var o=n(0),r=n(54).start,i=n(115)("trimStart"),a=i?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:i},{trimStart:a,trimLeft:a})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(25);o({target:"String",proto:!0,forced:n(26)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(39)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(28);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(39)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(39)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(39)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(7),r=n(138),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(i(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(18).every,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(98),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(i(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(18).filter,i=n(44),a=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(a(this),e,arguments.length>1?arguments[1]:undefined),n=i(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(7),r=n(18).find,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(18).findIndex,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(18).forEach,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(116);(0,n(7).exportTypedArrayStaticMethod)("from",n(161),o)},function(e,t,n){"use strict";var o=n(7),r=n(59).includes,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(59).indexOf,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(3),r=n(7),i=n(141),a=n(11)("iterator"),c=o.Uint8Array,l=i.values,u=i.keys,s=i.entries,d=r.aTypedArray,f=r.exportTypedArrayMethod,p=c&&c.prototype[a],m=!!p&&("values"==p.name||p.name==undefined),h=function(){return l.call(d(this))};f("entries",(function(){return s.call(d(this))})),f("keys",(function(){return u.call(d(this))})),f("values",h,!m),f(a,h,!m)},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,i=o.exportTypedArrayMethod,a=[].join;i("join",(function(e){return a.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(144),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(i(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(18).map,i=n(44),a=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(i(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(7),r=n(116),i=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(i(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(7),r=n(75).left,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(75).right,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(i(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,i=o.exportTypedArrayMethod,a=Math.floor;i("reverse",(function(){for(var e,t=r(this).length,n=a(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=a(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ui;)s[i]=n[i++];return s}),i((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(7),r=n(18).some,i=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,i=o.exportTypedArrayMethod,a=[].sort;i("sort",(function(e){return a.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(7),r=n(8),i=n(40),a=n(44),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=i(e,o);return new(a(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:i(t,o))-l))}))},function(e,t,n){"use strict";var o=n(3),r=n(7),i=n(2),a=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,s=[].slice,d=!!a&&i((function(){u.call(new a(1))}));l("toLocaleString",(function(){return u.apply(d?s.call(c(this)):c(this),arguments)}),i((function(){return[1,2].toLocaleString()!=new a([1,2]).toLocaleString()}))||!i((function(){a.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(7).exportTypedArrayMethod,r=n(2),i=n(3).Uint8Array,a=i&&i.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=a.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(3),i=n(65),a=n(50),c=n(77),l=n(162),u=n(4),s=n(33).enforce,d=n(129),f=!r.ActiveXObject&&"ActiveXObject"in r,p=Object.isExtensible,m=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",m,l);if(d&&f){o=l.getConstructor(m,"WeakMap",!0),a.REQUIRED=!0;var g=h.prototype,v=g["delete"],b=g.has,y=g.get,C=g.set;i(g,{"delete":function(e){if(u(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new o),v.call(this,e)||t.frozen["delete"](e)}return v.call(this,e)},has:function(e){if(u(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen.has(e)}return b.call(this,e)},get:function(e){if(u(e)&&!p(e)){var t=s(this);return t.frozen||(t.frozen=new o),b.call(this,e)?y.call(this,e):t.frozen.get(e)}return y.call(this,e)},set:function(e,t){if(u(e)&&!p(e)){var n=s(this);n.frozen||(n.frozen=new o),b.call(this,e)?C.call(this,e,t):n.frozen.set(e,t)}else C.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(77)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(162))},function(e,t,n){"use strict";var o=n(0),r=n(3),i=n(108);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(e,t,n){"use strict";var o=n(0),r=n(3),i=n(155),a=n(31),c=r.process,l="process"==a(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;i(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(0),r=n(3),i=n(72),a=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?a.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(i)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ee,t._HI=j,t._M=Be,t._MCCC=Oe,t._ME=Ie,t._MFCC=Ae,t._MP=ke,t._MR=be,t.__render=De,t.createComponentVNode=function(e,t,n,o,r){var a=new B(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(i(o))return n;if(i(n))return s(o,null);return S(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(i(o))return n;if(i(n))return o;return S(n,o)}(e,t,r),t);_.createVNode&&_.createVNode(a);return a},t.createFragment=T,t.createPortal=function(e,t){var n=j(e);return L(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),Re(n,e,o,r)}},t.createTextVNode=I,t.createVNode=L,t.directClone=O,t.findDOMfromVNode=y,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case"$F":return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&i(e.children)&&P(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?s(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=Re,t.rerender=He,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function i(e){return null==e}function a(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function s(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function d(e){return!u(e)&&"object"==typeof e}var f={};t.EMPTY_OBJ=f;function p(e){return e.substr(2).toLowerCase()}function m(e,t){e.appendChild(t)}function h(e,t,n){u(n)?m(e,t):e.insertBefore(t,n)}function g(e,t){e.removeChild(t)}function v(e){for(var t=0;t0,m=u(f),h=l(f)&&"$"===f[0];p||m||h?(n=n||t.slice(0,s),(p||h)&&(d=O(d)),(m||h)&&(d.key="$"+s),n.push(d)):n&&n.push(d),d.flags|=65536}}i=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=O(t)),i=2;return e.children=n,e.childFlags=i,e}function j(e){return a(e)||r(e)?I(e,null):o(e)?T(e,0,null):16384&e.flags?O(e):e}var F="http://www.w3.org/1999/xlink",D="http://www.w3.org/XML/1998/namespace",R={"xlink:actuate":F,"xlink:arcrole":F,"xlink:href":F,"xlink:role":F,"xlink:show":F,"xlink:title":F,"xlink:type":F,"xml:base":D,"xml:lang":D,"xml:space":D};function z(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var K=z(0),U=z(null),W=z(!0);function Y(e,t){var n=t.$EV;return n||(n=t.$EV=z(null)),n[e]||1==++K[e]&&(U[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?G(t,!0,e,Q(t)):t.stopPropagation()}}(e):function(e){return function(t){G(t,!1,e,Q(t))}}(e);return document.addEventListener(p(e),t),t}(e)),n}function H(e,t){var n=t.$EV;n&&n[e]&&(0==--K[e]&&(document.removeEventListener(p(e),U[e]),U[e]=null),n[e]=null)}function G(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var i=r.$EV;if(i){var a=i[n];if(a&&(o.dom=r,a.event?a.event(a.data,e):a(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function $(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function q(){return this.defaultPrevented}function X(){return this.cancelBubble}function Q(e){var t={dom:document};return e.isDefaultPrevented=q,e.isPropagationStopped=X,e.stopPropagation=$,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function J(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function Z(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||f,i=o.dom;if(l(e))J(r,e,n);else for(var a=0;a-1&&t.options[a]&&(c=t.options[a].value),n&&i(c)&&(c=e.defaultValue),ae(o,c)}}var ue,se,de=Z("onInput",pe),fe=Z("onChange");function pe(e,t,n){var o=e.value,r=t.value;if(i(o)){if(n){var a=e.defaultValue;i(a)||a===r||(t.defaultValue=a,t.value=a)}}else r!==o&&(t.defaultValue=o,t.value=o)}function me(e,t,n,o,r,i){64&e?ie(o,n):256&e?le(o,n,r,t):128&e&&pe(o,n,r),i&&(n.$V=t)}function he(e,t,n){64&e?function(e,t){te(t.type)?(ee(e,"change",oe),ee(e,"click",re)):ee(e,"input",ne)}(t,n):256&e?function(e){ee(e,"change",ce)}(t):128&e&&function(e,t){ee(e,"input",de),t.onChange&&ee(e,"change",fe)}(t,n)}function ge(e){return e.type&&te(e.type)?!i(e.checked):!i(e.value)}function ve(e){e&&!E(e,null)&&e.current&&(e.current=null)}function be(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){E(e,t)||void 0===e.current||(e.current=t)}))}function ye(e,t){Ce(e),C(e,t)}function Ce(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;ve(t);var a=e.childFlags;if(!u(r))for(var l=Object.keys(r),s=0,d=l.length;s0;for(var c in a&&(i=ge(n))&&he(t,o,n),n)we(c,null,n[c],o,r,i,null);a&&me(t,e,o,n,!0,i)}function Se(e,t,n){var o=j(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=s(n,e.getChildContext())),e.$CX=r,o}function Ee(e,t,n,o,r,i){var a=new t(n,o),l=a.$N=Boolean(t.getDerivedStateFromProps||a.getSnapshotBeforeUpdate);if(a.$SVG=r,a.$L=i,e.children=a,a.$BS=!1,a.context=o,a.props===f&&(a.props=n),l)a.state=V(a,n,a.state);else if(c(a.componentWillMount)){a.$BR=!0,a.componentWillMount();var s=a.$PS;if(!u(s)){var d=a.state;if(u(d))a.state=s;else for(var p in s)d[p]=s[p];a.$PS=null}a.$BR=!1}return a.$LI=Se(a,n,o),a}function Be(e,t,n,o,r,i){var a=e.flags|=16384;481&a?Ie(e,t,n,o,r,i):4&a?function(e,t,n,o,r,i){var a=Ee(e,e.type,e.props||f,n,o,i);Be(a.$LI,t,a.$CX,o,r,i),Oe(e.ref,a,i)}(e,t,n,o,r,i):8&a?(!function(e,t,n,o,r,i){Be(e.children=j(function(e,t){return 32768&e.flags?e.type.render(e.props||f,e.ref,t):e.type(e.props||f,t)}(e,n)),t,n,o,r,i)}(e,t,n,o,r,i),Ae(e,i)):512&a||16&a?Le(e,t,r):8192&a?function(e,t,n,o,r,i){var a=e.children,c=e.childFlags;12&c&&0===a.length&&(c=e.childFlags=2,a=e.children=A());2===c?Be(a,n,r,o,r,i):Te(a,n,t,o,r,i)}(e,n,t,o,r,i):1024&a&&function(e,t,n,o,r){Be(e.children,e.ref,t,!1,null,r);var i=A();Le(i,n,o),e.dom=i.dom}(e,n,t,r,i)}function Le(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||h(t,o,n)}function Ie(e,t,n,o,r,a){var c=e.flags,l=e.props,s=e.className,d=e.children,f=e.childFlags,p=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(i(s)||""===s||(o?p.setAttribute("class",s):p.className=s),16===f)w(p,d);else if(1!==f){var m=o&&"foreignObject"!==e.type;2===f?(16384&d.flags&&(e.children=d=O(d)),Be(d,p,n,m,null,a)):8!==f&&4!==f||Te(d,p,n,m,null,a)}u(t)||h(t,p,r),u(l)||ke(e,c,l,p,o),be(e.ref,p,a)}function Te(e,t,n,o,r,i){for(var a=0;a0,u!==s){var m=u||f;if((c=s||f)!==f)for(var h in(d=(448&r)>0)&&(p=ge(c)),c){var g=m[h],v=c[h];g!==v&&we(h,g,v,l,o,p,e)}if(m!==f)for(var b in m)i(c[b])&&!i(m[b])&&we(b,m[b],null,l,o,p,e)}var y=t.children,C=t.className;e.className!==C&&(i(C)?l.removeAttribute("class"):o?l.setAttribute("class",C):l.className=C);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,y):Pe(e.childFlags,t.childFlags,e.children,y,l,n,o&&"foreignObject"!==t.type,null,e,a);d&&me(r,t,l,c,!1,p);var N=t.ref,V=e.ref;V!==N&&(ve(V),be(N,l,a))}(e,t,o,r,p,d):4&p?function(e,t,n,o,r,i,a){var l=t.children=e.children;if(u(l))return;l.$L=a;var d=t.props||f,p=t.ref,m=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(d,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=s(h,l.$PS),l.$PS=null)}je(l,h,d,n,o,r,!1,i,a),m!==p&&(ve(m),be(p,l,a))}(e,t,n,o,r,l,d):8&p?function(e,t,n,o,r,a,l){var u=!0,s=t.props||f,d=t.ref,p=e.props,m=!i(d),h=e.children;m&&c(d.onComponentShouldUpdate)&&(u=d.onComponentShouldUpdate(p,s));if(!1!==u){m&&c(d.onComponentWillUpdate)&&d.onComponentWillUpdate(p,s);var g=t.type,v=j(32768&t.flags?g.render(s,d,o):g(s,o));Me(h,v,n,o,r,a,l),t.children=v,m&&c(d.onComponentDidUpdate)&&d.onComponentDidUpdate(p,s)}else t.children=h}(e,t,n,o,r,l,d):16&p?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&p?t.dom=e.dom:8192&p?function(e,t,n,o,r,i){var a=e.children,c=t.children,l=e.childFlags,u=t.childFlags,s=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=A());var d=0!=(2&u);if(12&l){var f=a.length;(8&l&&8&u||d||!d&&c.length>f)&&(s=y(a[f-1],!1).nextSibling)}Pe(l,u,a,c,n,o,r,s,e,i)}(e,t,n,o,r,d):function(e,t,n,o){var r=e.ref,i=t.ref,c=t.children;if(Pe(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==i&&!a(c)){var l=c.dom;g(r,l),m(i,l)}}(e,t,o,d)}function Pe(e,t,n,o,r,i,a,c,l,u){switch(e){case 2:switch(t){case 2:Me(n,o,r,i,a,c,u);break;case 1:ye(n,r);break;case 16:Ce(n),w(r,o);break;default:!function(e,t,n,o,r,i){Ce(e),Te(t,n,o,r,y(e,!0),i),C(e,n)}(n,o,r,i,a,u)}break;case 1:switch(t){case 2:Be(o,r,i,a,c,u);break;case 1:break;case 16:w(r,o);break;default:Te(o,r,i,a,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:w(n,t))}(n,o,r);break;case 2:Ve(r),Be(o,r,i,a,c,u);break;case 1:Ve(r);break;default:Ve(r),Te(o,r,i,a,c,u)}break;default:switch(t){case 16:Ne(n),w(r,o);break;case 2:xe(r,l,n),Be(o,r,i,a,c,u);break;case 1:xe(r,l,n);break;default:var s=0|n.length,d=0|o.length;0===s?d>0&&Te(o,r,i,a,c,u):0===d?xe(r,l,n):8===t&&8===e?function(e,t,n,o,r,i,a,c,l,u){var s,d,f=i-1,p=a-1,m=0,h=e[m],g=t[m];e:{for(;h.key===g.key;){if(16384&g.flags&&(t[m]=g=O(g)),Me(h,g,n,o,r,c,u),e[m]=g,++m>f||m>p)break e;h=e[m],g=t[m]}for(h=e[f],g=t[p];h.key===g.key;){if(16384&g.flags&&(t[p]=g=O(g)),Me(h,g,n,o,r,c,u),e[f]=g,f--,p--,m>f||m>p)break e;h=e[f],g=t[p]}}if(m>f){if(m<=p)for(d=(s=p+1)p)for(;m<=f;)ye(e[m++],n);else!function(e,t,n,o,r,i,a,c,l,u,s,d,f){var p,m,h,g=0,v=c,b=c,C=i-c+1,V=a-c+1,x=new Int32Array(V+1),_=C===o,w=!1,k=0,S=0;if(r<4||(C|V)<32)for(g=v;g<=i;++g)if(p=e[g],Sc?w=!0:k=c,16384&m.flags&&(t[c]=m=O(m)),Me(p,m,l,n,u,s,f),++S;break}!_&&c>a&&ye(p,l)}else _||ye(p,l);else{var E={};for(g=b;g<=a;++g)E[t[g].key]=g;for(g=v;g<=i;++g)if(p=e[g],Sv;)ye(e[v++],l);x[c-b]=g+1,k>c?w=!0:k=c,16384&(m=t[c]).flags&&(t[c]=m=O(m)),Me(p,m,l,n,u,s,f),++S}else _||ye(p,l);else _||ye(p,l)}if(_)xe(l,d,e),Te(t,l,n,u,s,f);else if(w){var B=function(e){var t=0,n=0,o=0,r=0,i=0,a=0,c=0,l=e.length;l>Fe&&(Fe=l,ue=new Int32Array(l),se=new Int32Array(l));for(;n>1]]0&&(se[n]=ue[i-1]),ue[i]=n)}i=r+1;var u=new Int32Array(i);a=ue[i-1];for(;i-- >0;)u[i]=a,a=se[a],ue[i]=0;return u}(x);for(c=B.length-1,g=V-1;g>=0;g--)0===x[g]?(16384&(m=t[k=g+b]).flags&&(t[k]=m=O(m)),Be(m,l,n,u,(h=k+1)=0;g--)0===x[g]&&(16384&(m=t[k=g+b]).flags&&(t[k]=m=O(m)),Be(m,l,n,u,(h=k+1)a?a:i,f=0;fa)for(f=d;f=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),l=n.call(i,"finallyLoc");if(c&&l){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),N(n),u}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;N(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:x(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";!function(t,n){var o,r,i=t.html5||{},a=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,c=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,l=0,u={};function s(){var e=m.elements;return"string"==typeof e?e.split(" "):e}function d(e){var t=u[e._html5shiv];return t||(t={},l++,e._html5shiv=l,u[l]=t),t}function f(e,t,o){return t||(t=n),r?t.createElement(e):(o||(o=d(t)),!(i=o.cache[e]?o.cache[e].cloneNode():c.test(e)?(o.cache[e]=o.createElem(e)).cloneNode():o.createElem(e)).canHaveChildren||a.test(e)||i.tagUrn?i:o.frag.appendChild(i));var i}function p(e){e||(e=n);var t=d(e);return!m.shivCSS||o||t.hasCSS||(t.hasCSS=!!function(e,t){var n=e.createElement("p"),o=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x",o.insertBefore(n.lastChild,o.firstChild)}(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),r||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return m.shivMethods?f(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+s().join().replace(/[\w\-:]+/g,(function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'}))+");return n}")(m,t.frag)}(e,t),e}!function(){try{var e=n.createElement("a");e.innerHTML=" ",o="hidden"in e,r=1==e.childNodes.length||function(){n.createElement("a");var e=n.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(t){o=!0,r=!0}}();var m={elements:i.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==i.shivCSS,supportsUnknownElements:r,shivMethods:!1!==i.shivMethods,type:"default",shivDocument:p,createElement:f,createDocumentFragment:function(e,t){if(e||(e=n),r)return e.createDocumentFragment();for(var o=(t=t||d(e)).frag.cloneNode(),i=0,a=s(),c=a.length;i3?c(a):null,y=String(a.key),C=String(a.char),N=a.location,x=a.keyCode||(a.keyCode=y)&&y.charCodeAt(0)||0,V=a.charCode||(a.charCode=C)&&C.charCodeAt(0)||0,w=a.bubbles,_=a.cancelable,k=a.repeat,S=a.locale,E=a.view||e;if(a.which||(a.which=a.keyCode),"initKeyEvent"in f)f.initKeyEvent(t,w,_,E,p,h,m,v,x,V);else if(0>>0),t=Element.prototype,n=t.querySelector,r=t.querySelectorAll;function o(t,n,r){t.setAttribute(e,null);var o=n.call(t,String(r).replace(/(^|,\s*)(:scope([ >]|$))/g,(function(t,n,r,o){return n+"["+e+"]"+(o||" ")})));return t.removeAttribute(e),o}t.querySelector=function(e){return o(this,n,e)},t.querySelectorAll=function(e){return o(this,r,e)}}()}}(window),function(e){var t=e.WeakMap||function(){var e,t=0,n=!1,r=!1;function o(t,o,i){r=i,n=!1,e=undefined,t.dispatchEvent(o)}function i(e){this.value=e}function c(){t++,this.__ce__=new a("@DOMMap:"+t+Math.random())}return i.prototype.handleEvent=function(t){n=!0,r?t.currentTarget.removeEventListener(t.type,this,!1):e=this.value},c.prototype={constructor:c,"delete":function(e){return o(e,this.__ce__,!0),n},get:function(t){o(t,this.__ce__,!1);var n=e;return e=undefined,n},has:function(e){return o(e,this.__ce__,!1),n},set:function(e,t){return o(e,this.__ce__,!0),e.addEventListener(this.__ce__.type,new i(t),!1),this}},c}();function n(){}function r(e,t,n){function o(e){o.once&&(e.currentTarget.removeEventListener(e.type,t,o),o.removed=!0),o.passive&&(e.preventDefault=r.preventDefault),"function"==typeof o.callback?o.callback.call(this,e):o.callback&&o.callback.handleEvent(e),o.passive&&delete e.preventDefault}return o.type=e,o.callback=t,o.capture=!!n.capture,o.passive=!!n.passive,o.once=!!n.once,o.removed=!1,o}n.prototype=(Object.create||Object)(null),r.preventDefault=function(){};var o,i,a=e.CustomEvent,c=e.dispatchEvent,u=e.addEventListener,l=e.removeEventListener,s=0,d=function(){s++},f=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},p=function(e){return"".concat(e.capture?"1":"0",e.passive?"1":"0",e.once?"1":"0")};try{u("_",d,{once:!0}),c(new a("_")),c(new a("_")),l("_",d,{once:!0})}catch(m){}1!==s&&(i=new t,o=function(e){if(e){var t=e.prototype;t.addEventListener=function(e){return function(t,o,a){if(a&&"boolean"!=typeof a){var c,u,l,s=i.get(this),d=p(a);s||i.set(this,s=new n),t in s||(s[t]={handler:[],wrap:[]}),u=s[t],(c=f.call(u.handler,o))<0?(c=u.handler.push(o)-1,u.wrap[c]=l=new n):l=u.wrap[c],d in l||(l[d]=r(t,o,a),e.call(this,t,l[d],l[d].capture))}else e.call(this,t,o,a)}}(t.addEventListener),t.removeEventListener=function(e){return function(t,n,r){if(r&&"boolean"!=typeof r){var o,a,c,u,l=i.get(this);if(l&&t in l&&(c=l[t],-1<(a=f.call(c.handler,n))&&(o=p(r))in(u=c.wrap[a]))){for(o in e.call(this,t,u[o],u[o].capture),delete u[o],u)return;c.handler.splice(a,1),c.wrap.splice(a,1),0===c.handler.length&&delete l[t]}}else e.call(this,t,n,r)}}(t.removeEventListener)}},e.EventTarget?o(EventTarget):(o(e.Text),o(e.Element||e.HTMLElement),o(e.HTMLDocument),o(e.Window||{prototype:e}),o(e.XMLHttpRequest)))}(window)},function(e,t,n){"use strict";!function(e){if("undefined"!=typeof e.setAttribute){var t=function(e){return e.replace(/-[a-z]/g,(function(e){return e[1].toUpperCase()}))};e.setProperty=function(e,n){var r=t(e);if(!n)return this.removeAttribute(r);var o=String(n);return this.setAttribute(r,o)},e.getPropertyValue=function(e){var n=t(e);return this.getAttribute(n)||null},e.removeProperty=function(e){var n=t(e),r=this.getAttribute(n);return this.removeAttribute(n),r}}}(CSSStyleDeclaration.prototype)},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(407),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||void 0,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||void 0}).call(this,n(69))},function(e,t,n){"use strict";(function(e,t){!function(e,n){if(!e.setImmediate){var r,o,i,a,c,u=1,l={},s=!1,d=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){m(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){m(e.data)},r=function(e){i.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(o=d.documentElement,r=function(e){var t=d.createElement("script");t.onreadystatechange=function(){m(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(m,0,e)}:(a="setImmediate$"+Math.random()+"$",c=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&m(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",c,!1):e.attachEvent("onmessage",c),r=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n1)for(var n=1;n3?c(a):null,y=String(a.key),C=String(a.char),N=a.location,V=a.keyCode||(a.keyCode=y)&&y.charCodeAt(0)||0,x=a.charCode||(a.charCode=C)&&C.charCodeAt(0)||0,_=a.bubbles,w=a.cancelable,k=a.repeat,S=a.locale,E=a.view||e;if(a.which||(a.which=a.keyCode),"initKeyEvent"in f)f.initKeyEvent(t,_,w,E,p,h,m,g,V,x);else if(0>>0),t=Element.prototype,n=t.querySelector,o=t.querySelectorAll;function r(t,n,o){t.setAttribute(e,null);var r=n.call(t,String(o).replace(/(^|,\s*)(:scope([ >]|$))/g,(function(t,n,o,r){return n+"["+e+"]"+(r||" ")})));return t.removeAttribute(e),r}t.querySelector=function(e){return r(this,n,e)},t.querySelectorAll=function(e){return r(this,o,e)}}()}}(window),function(e){var t=e.WeakMap||function(){var e,t=0,n=!1,o=!1;function r(t,r,i){o=i,n=!1,e=undefined,t.dispatchEvent(r)}function i(e){this.value=e}function c(){t++,this.__ce__=new a("@DOMMap:"+t+Math.random())}return i.prototype.handleEvent=function(t){n=!0,o?t.currentTarget.removeEventListener(t.type,this,!1):e=this.value},c.prototype={constructor:c,"delete":function(e){return r(e,this.__ce__,!0),n},get:function(t){r(t,this.__ce__,!1);var n=e;return e=undefined,n},has:function(e){return r(e,this.__ce__,!1),n},set:function(e,t){return r(e,this.__ce__,!0),e.addEventListener(this.__ce__.type,new i(t),!1),this}},c}();function n(){}function o(e,t,n){function r(e){r.once&&(e.currentTarget.removeEventListener(e.type,t,r),r.removed=!0),r.passive&&(e.preventDefault=o.preventDefault),"function"==typeof r.callback?r.callback.call(this,e):r.callback&&r.callback.handleEvent(e),r.passive&&delete e.preventDefault}return r.type=e,r.callback=t,r.capture=!!n.capture,r.passive=!!n.passive,r.once=!!n.once,r.removed=!1,r}n.prototype=(Object.create||Object)(null),o.preventDefault=function(){};var r,i,a=e.CustomEvent,c=e.dispatchEvent,l=e.addEventListener,u=e.removeEventListener,s=0,d=function(){s++},f=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},p=function(e){return"".concat(e.capture?"1":"0",e.passive?"1":"0",e.once?"1":"0")};try{l("_",d,{once:!0}),c(new a("_")),c(new a("_")),u("_",d,{once:!0})}catch(m){}1!==s&&(i=new t,r=function(e){if(e){var t=e.prototype;t.addEventListener=function(e){return function(t,r,a){if(a&&"boolean"!=typeof a){var c,l,u,s=i.get(this),d=p(a);s||i.set(this,s=new n),t in s||(s[t]={handler:[],wrap:[]}),l=s[t],(c=f.call(l.handler,r))<0?(c=l.handler.push(r)-1,l.wrap[c]=u=new n):u=l.wrap[c],d in u||(u[d]=o(t,r,a),e.call(this,t,u[d],u[d].capture))}else e.call(this,t,r,a)}}(t.addEventListener),t.removeEventListener=function(e){return function(t,n,o){if(o&&"boolean"!=typeof o){var r,a,c,l,u=i.get(this);if(u&&t in u&&(c=u[t],-1<(a=f.call(c.handler,n))&&(r=p(o))in(l=c.wrap[a]))){for(r in e.call(this,t,l[r],l[r].capture),delete l[r],l)return;c.handler.splice(a,1),c.wrap.splice(a,1),0===c.handler.length&&delete u[t]}}else e.call(this,t,n,o)}}(t.removeEventListener)}},e.EventTarget?r(EventTarget):(r(e.Text),r(e.Element||e.HTMLElement),r(e.HTMLDocument),r(e.Window||{prototype:e}),r(e.XMLHttpRequest)))}(window)},function(e,t,n){"use strict";!function(e){if("undefined"!=typeof e.setAttribute){var t=function(e){return e.replace(/-[a-z]/g,(function(e){return e[1].toUpperCase()}))};e.setProperty=function(e,n){var o=t(e);if(!n)return this.removeAttribute(o);var r=String(n);return this.setAttribute(o,r)},e.getPropertyValue=function(e){var n=t(e);return this.getAttribute(n)||null},e.removeProperty=function(e){var n=t(e),o=this.getAttribute(n);return this.removeAttribute(n),o}}}(CSSStyleDeclaration.prototype)},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";(function(e){var o=void 0!==e&&e||"undefined"!=typeof self&&self||window,r=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(r.call(setTimeout,o,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,o,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(o,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(407),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||void 0,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||void 0}).call(this,n(69))},function(e,t,n){"use strict";(function(e,t){!function(e,n){if(!e.setImmediate){var o,r,i,a,c,l=1,u={},s=!1,d=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?o=function(e){t.nextTick((function(){m(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){m(e.data)},o=function(e){i.port2.postMessage(e)}):d&&"onreadystatechange"in d.createElement("script")?(r=d.documentElement,o=function(e){var t=d.createElement("script");t.onreadystatechange=function(){m(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):o=function(e){setTimeout(m,0,e)}:(a="setImmediate$"+Math.random()+"$",c=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&m(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",c,!1):e.attachEvent("onmessage",c),o=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n1)for(var n=1;n=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?o-1:0),a=1;a1?t-1:0),r=1;r=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1?r-1:0),a=1;a1?t-1:0),o=1;o=0||(o[n]=e[n]);return o}(e,["className"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var r=n(1),o=n(9),i=n(418),a=n(36),c=n(15);function u(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var l=(0,a.createLogger)("ByondUi"),s=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(o[n]=e[n]);return o}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),v=this.state.viewBox,g=function(e,t,n,r){if(0===e.length)return[];var i=(0,o.zipWith)(Math.min).apply(void 0,e),a=(0,o.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(i[0]=n[0],a[0]=n[1]),r!==undefined&&(i[1]=r[0],a[1]=r[1]),(0,o.map)((function(e){return(0,o.zipWith)((function(e,t,n,r){return(e-t)/(n-t)*r}))(e,i,a,t)}))(e)}(i,v,c,u);if(g.length>0){var b=g[0],y=g[g.length-1];g.push([v[0]+m,y[1]]),g.push([v[0]+m,-m]),g.push([-m,-m]),g.push([-m,b[1]])}var C=function(e){for(var t="",n=0;n=0||(o[n]=e[n]);return o}(t,["children","color","title","buttons"]);return(0,r.createComponentVNode)(2,o.Box,{mb:1,children:[(0,r.createVNode)(1,"div","Table",[(0,r.createVNode)(1,"div","Table__cell",(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Button,Object.assign({fluid:!0,color:u,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},d,{children:l}))),2),s&&(0,r.createVNode)(1,"div","Table__cell Table__cell--collapsing",s,0)],0),n&&(0,r.createComponentVNode)(2,o.Box,{mt:1,children:a})]})},a}(r.Component);t.Collapsible=a},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var r=n(1),o=n(9),i=n(15);var a=function(e){var t=e.content,n=(e.children,e.className),a=e.color,c=e.backgroundColor,u=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["content","children","className","color","backgroundColor"]);return u.color=t?null:"transparent",u.backgroundColor=a||c,(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["ColorBox",n,(0,i.computeBoxClassName)(u)]),t||".",0,Object.assign({},(0,i.computeBoxProps)(u))))};t.ColorBox=a,a.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var r=n(1),o=n(9),i=n(15),a=n(122);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=u.prototype;return l.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},l.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},l.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},l.buildMenu=function(){var e=this,t=this.props,n=t.options,o=void 0===n?[]:n,i=t.placeholder,a=o.map((function(t){return(0,r.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(){e.setSelected(t)}},t)}));return a.unshift((0,r.createVNode)(1,"div","Dropdown__menuentry",[(0,r.createTextVNode)("-- "),i,(0,r.createTextVNode)(" --")],0,{onClick:function(){e.setSelected(null)}},i)),a},l.render=function(){var e=this,t=this.props,n=t.color,u=void 0===n?"default":n,l=t.over,s=t.noscroll,d=t.nochevron,f=t.width,p=(t.onClick,t.selected,t.disabled),m=t.placeholder,h=c(t,["color","over","noscroll","nochevron","width","onClick","selected","disabled","placeholder"]),v=h.className,g=c(h,["className"]),b=l?!this.state.open:this.state.open,y=this.state.open?(0,r.createVNode)(1,"div",(0,o.classes)([s?"Dropdown__menu-noscroll":"Dropdown__menu",l&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:f}},null,(function(t){e.menuRef=t})):null;return(0,r.createVNode)(1,"div","Dropdown",[(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({width:f,className:(0,o.classes)(["Dropdown__control","Button","Button--color--"+u,p&&"Button--disabled",v])},g,{onClick:function(){p&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,r.createVNode)(1,"span","Dropdown__selected-text",this.state.selected||m,0),!!d||(0,r.createVNode)(1,"span","Dropdown__arrow-button",(0,r.createComponentVNode)(2,a.Icon,{name:b?"chevron-up":"chevron-down"}),2)]}))),y],0)},u}(r.Component);t.Dropdown=u},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var r=n(1),o=n(124),i=n(9);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){var t=e.children,n=a(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table,Object.assign({},n,{children:(0,r.createComponentVNode)(2,o.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=i.pureComponentHooks;var u=function(e){var t=e.size,n=void 0===t?1:t,i=e.style,c=a(e,["size","style"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},i)},c)))};t.GridColumn=u,c.defaultHooks=i.pureComponentHooks,c.Column=u},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var r=n(1),o=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var c=function(e){return(0,o.isFalsy)(e)?"":e},u=function(e){var t,n;function u(){var t;return(t=e.call(this)||this).inputRef=(0,r.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,r=t.props.onInput;n||t.setEditing(!0),r&&r(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,r=t.props.onChange;n&&(t.setEditing(!1),r&&r(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,r=n.onInput,o=n.onChange,i=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),o&&o(e,e.target.value),r&&r(e,e.target.value),i&&i(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var l=u.prototype;return l.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e),this.props.autofocus&&(t.focus(),t.selectionStart=0,t.selectionEnd=t.value.length))},l.componentDidUpdate=function(e,t){var n=this.state.editing,r=e.value,o=this.props.value,i=this.inputRef.current;i&&!n&&r!==o&&(i.value=c(o))},l.setEditing=function(e){this.setState({editing:e})},l.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=(e.autofocus,a(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder","autofocus"])),u=c.className,l=c.fluid,s=a(c,["className","fluid"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["Input",l&&"Input--fluid",u])},s,{children:[(0,r.createVNode)(1,"div","Input__baseline",".",16),(0,r.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},u}(r.Component);t.Input=u},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var r=n(1),o=n(34),i=n(9),a=n(15),c=n(123),u=n(125);t.Knob=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,l=e.maxValue,s=e.minValue,d=e.onChange,f=e.onDrag,p=e.step,m=e.stepPixelSize,h=e.suppressFlicker,v=e.unit,g=e.value,b=e.className,y=e.style,C=e.fillValue,N=e.color,x=e.ranges,V=void 0===x?{}:x,w=e.size,_=e.bipolar,k=(e.children,e.popUpPosition),S=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:l,minValue:s,onChange:d,onDrag:f,step:p,stepPixelSize:m,suppressFlicker:h,unit:v,value:g},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,u=e.displayElement,d=e.inputElement,f=e.handleDragStart,p=(0,o.scale)(null!=C?C:c,s,l),m=(0,o.scale)(c,s,l),h=N||(0,o.keyOfMatchingRange)(null!=C?C:n,V)||"default",v=270*(m-.5);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Knob","Knob--color--"+h,_&&"Knob--bipolar",b,(0,a.computeBoxClassName)(S)]),[(0,r.createVNode)(1,"div","Knob__circle",(0,r.createVNode)(1,"div","Knob__cursorBox",(0,r.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+v+"deg)"}}),2),t&&(0,r.createVNode)(1,"div",(0,i.classes)(["Knob__popupValue",k&&"Knob__popupValue--"+k]),u,0),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,r.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,r.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,r.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((_?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),d],0,Object.assign({},(0,a.computeBoxProps)(Object.assign({style:Object.assign({"font-size":w+"rem"},y)},S)),{onMouseDown:f})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var r=n(1),o=n(169);function i(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var a=function(e){var t=e.children,n=i(e,["children"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=a;a.Item=function(e){var t=e.label,n=e.children,a=i(e,["label","children"]);return(0,r.createComponentVNode)(2,o.Flex.Item,{mx:1,children:(0,r.normalizeProps)((0,r.createComponentVNode)(2,o.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},a,{children:[(0,r.createComponentVNode)(2,o.Flex.Item),(0,r.createComponentVNode)(2,o.Flex.Item,{children:n}),(0,r.createComponentVNode)(2,o.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var r=n(1),o=n(9),i=n(15),a=n(168),c=function(e){var t=e.children;return(0,r.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=c,c.defaultHooks=o.pureComponentHooks;var u=function(e){var t=e.className,n=e.label,a=e.labelColor,c=void 0===a?"label":a,u=e.color,l=e.textAlign,s=e.verticalAlign,d=e.buttons,f=e.content,p=e.children;return(0,r.createVNode)(1,"tr",(0,o.classes)(["LabeledList__row",t]),[(0,r.createComponentVNode)(2,i.Box,{as:"td",color:c,verticalAlign:s,className:(0,o.classes)(["LabeledList__cell","LabeledList__label"]),children:n?n+":":null}),(0,r.createComponentVNode)(2,i.Box,{as:"td",color:u,textAlign:l,verticalAlign:s,className:(0,o.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:d?undefined:2,children:[f,p]}),d&&(0,r.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",d,0)],0)};t.LabeledListItem=u,u.defaultHooks=o.pureComponentHooks;var l=function(e){var t=e.size?(0,i.unit)(Math.max(0,e.size-1)):0;return(0,r.createVNode)(1,"tr","LabeledList__row",(0,r.createVNode)(1,"td",null,(0,r.createComponentVNode)(2,a.Divider),2,{colSpan:3,style:{"padding-top":t,"padding-bottom":t}}),2)};t.LabeledListDivider=l,l.defaultHooks=o.pureComponentHooks,c.Item=u,c.Divider=l},function(e,t,n){"use strict";t.__esModule=!0,t.NanoMap=void 0;var r=n(1),o=n(13),i=n(11);n(118);var a=function(e){var t,n;function a(t){var n;n=e.call(this,t)||this;var r=window.innerWidth/2-256;return n.state={offsetX:r,offsetY:0,transform:"none",dragging:!1,originX:null,originY:null},n.handleDragStart=function(e){document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,originX:e.screenX,originY:e.screenY}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd)},n.handleDragMove=function(e){n.setState((function(t){var n=Object.assign({},t),r=e.screenX-n.originX,o=e.screenY-n.originY;return t.dragging?(n.offsetX+=r,n.offsetY+=o,n.originX=e.screenX,n.originY=e.screenY):n.dragging=!0,n}))},n.handleDragEnd=function(e){document.body.style["pointer-events"]="auto",clearTimeout(n.timer),n.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd)},n}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=(0,i.useBackend)(this.context).config,t=this.state,n=t.offsetX,a=t.offsetY,c=this.props,u=c.children,l=c.zoom,s=(c.reset,{width:"512px",height:"512px","margin-top":a+"px","margin-left":n+"px",overflow:"hidden",position:"relative",padding:"0px","background-image":"url("+e.map+"_nanomap_z"+e.mapZLevel+".png)","background-size":"cover","text-align":"center","transform-origin":"center center",transform:"scale("+l+")"});return(0,r.createComponentVNode)(2,o.Box,{className:"NanoMap__container",children:(0,r.createComponentVNode)(2,o.Box,{style:s,textAlign:"center",onMouseDown:this.handleDragStart,children:(0,r.createComponentVNode)(2,o.Box,{children:u})})})},a}(r.Component);t.NanoMap=a;a.Marker=function(e,t){var n=e.x,i=e.y,a=e.zoom,c=e.icon,u=e.tooltip,l=e.color,s=-256*(a-1)+n*(3.65714285714*a)-1.5*a-3,d=512*a-i*(3.65714285714*a)+a-1.5;return(0,r.createVNode)(1,"div",null,(0,r.createComponentVNode)(2,o.Box,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",top:d+"px",left:s+"px",children:[(0,r.createComponentVNode)(2,o.Icon,{name:c,color:l,fontSize:"6px"}),(0,r.createComponentVNode)(2,o.Tooltip,{content:u})]}),2,{style:"transform: scale("+1/a+")"})}},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var r=n(1),o=n(9),i=n(15),a=n(167);t.Modal=function(e){var t,n=e.className,c=e.children,u=e.onEnter,l=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","children","onEnter"]);return u&&(t=function(e){13===(e.which||e.keyCode)&&u(e)}),(0,r.createComponentVNode)(2,a.Dimmer,{onKeyDown:t,children:(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Modal",n,(0,i.computeBoxClassName)(l)]),c,0,Object.assign({},(0,i.computeBoxProps)(l))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var r=n(1),o=n(9),i=n(15);var a=function(e){var t=e.className,n=e.color,a=e.info,c=(e.warning,e.success),u=e.danger,l=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","color","info","warning","success","danger"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.Box,Object.assign({className:(0,o.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,a&&"NoticeBox--type--info",c&&"NoticeBox--type--success",u&&"NoticeBox--type--danger",t])},l)))};t.NoticeBox=a,a.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var r=n(1),o=n(34),i=n(9),a=n(15);var c=function(e){var t=e.className,n=e.value,c=e.minValue,u=void 0===c?0:c,l=e.maxValue,s=void 0===l?1:l,d=e.color,f=e.ranges,p=void 0===f?{}:f,m=e.children,h=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","value","minValue","maxValue","color","ranges","children"]),v=(0,o.scale)(n,u,s),g=m!==undefined,b=d||(0,o.keyOfMatchingRange)(n,p)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar","ProgressBar--color--"+b,t,(0,a.computeBoxClassName)(h)]),[(0,r.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,o.clamp01)(v)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",g?m:(0,o.toFixed)(100*v)+"%",0)],4,Object.assign({},(0,a.computeBoxProps)(h))))};t.ProgressBar=c,c.defaultHooks=i.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var r=n(1),o=n(9),i=n(15);var a=function(e){var t=e.className,n=e.title,a=e.level,c=void 0===a?1:a,u=e.buttons,l=e.fill,s=e.stretchContents,d=e.noTopPadding,f=e.children,p=(e.scrollable,e.flexGrow),m=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["className","title","level","buttons","fill","stretchContents","noTopPadding","children","scrollable","flexGrow"]),h=!(0,o.isFalsy)(n)||!(0,o.isFalsy)(u),v=!(0,o.isFalsy)(f);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Section","Section--level--"+c,l&&"Section--fill",p&&"Section--flex",t].concat((0,i.computeBoxClassName)(m))),[h&&(0,r.createVNode)(1,"div","Section__title",[(0,r.createVNode)(1,"span","Section__titleText",n,0),(0,r.createVNode)(1,"div","Section__buttons",u,0)],4),v&&(0,r.createVNode)(1,"div",(0,o.classes)(["Section__content",!!s&&"Section__content--stretchContents",!!d&&"Section__content--noTopPadding"]),f,0)],0,Object.assign({},(0,i.computeBoxProps)(m))))};t.Section=a,a.defaultHooks=o.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Slider=void 0;var r=n(1),o=n(34),i=n(9),a=n(15),c=n(123),u=n(125);t.Slider=function(e){if(Byond.IS_LTE_IE8)return(0,r.normalizeProps)((0,r.createComponentVNode)(2,u.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,l=e.maxValue,s=e.minValue,d=e.onChange,f=e.onDrag,p=e.step,m=e.stepPixelSize,h=e.suppressFlicker,v=e.unit,g=e.value,b=e.className,y=e.fillValue,C=e.color,N=e.ranges,x=void 0===N?{}:N,V=e.children,w=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),_=V!==undefined;return(0,r.normalizeProps)((0,r.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[1,0]},{animated:t,format:n,maxValue:l,minValue:s,onChange:d,onDrag:f,step:p,stepPixelSize:m,suppressFlicker:h,unit:v,value:g},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,u=e.displayElement,d=e.inputElement,f=e.handleDragStart,p=y!==undefined&&null!==y,m=((0,o.scale)(n,s,l),(0,o.scale)(null!=y?y:c,s,l)),h=(0,o.scale)(c,s,l),v=C||(0,o.keyOfMatchingRange)(null!=y?y:n,x)||"default";return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,i.classes)(["Slider","ProgressBar","ProgressBar--color--"+v,b,(0,a.computeBoxClassName)(w)]),[(0,r.createVNode)(1,"div",(0,i.classes)(["ProgressBar__fill",p&&"ProgressBar__fill--animated"]),null,1,{style:{width:100*(0,o.clamp01)(m)+"%",opacity:.4}}),(0,r.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,o.clamp01)(Math.min(m,h))+"%"}}),(0,r.createVNode)(1,"div","Slider__cursorOffset",[(0,r.createVNode)(1,"div","Slider__cursor"),(0,r.createVNode)(1,"div","Slider__pointer"),t&&(0,r.createVNode)(1,"div","Slider__popupValue",u,0)],0,{style:{width:100*(0,o.clamp01)(h)+"%"}}),(0,r.createVNode)(1,"div","ProgressBar__content",_?V:u,0),d],0,Object.assign({},(0,a.computeBoxProps)(w),{onMouseDown:f})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var r=n(1),o=n(9),i=n(15),a=n(121);function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var u=function(e){var t=e.className,n=e.vertical,a=e.children,u=c(e,["className","vertical","children"]);return(0,r.normalizeProps)((0,r.createVNode)(1,"div",(0,o.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",t,(0,i.computeBoxClassName)(u)]),(0,r.createVNode)(1,"div","Tabs__tabBox",a,0),2,Object.assign({},(0,i.computeBoxProps)(u))))};t.Tabs=u;u.Tab=function(e){var t=e.className,n=e.selected,i=e.altSelection,u=c(e,["className","selected","altSelection"]);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.Button,Object.assign({className:(0,o.classes)(["Tabs__tab",n&&"Tabs__tab--selected",i&&n&&"Tabs__tab--altSelection",t]),selected:!i&&n,color:"transparent"},u)))}},function(e,t,n){var r={"./AiRestorer.js":436,"./BodyScanner.js":437,"./CameraConsole.js":172,"./ChemDispenser.js":438,"./ChemMaster.js":442,"./CloningConsole.js":443,"./CrewMonitor.js":174,"./Cryo.js":444,"./DNAModifier.js":445,"./DisposalBin.js":446,"./MedicalRecords.js":447,"./NtosCameraConsole.js":451,"./NtosCrewMonitor.js":452,"./OperatingComputer.js":453,"./ResleevingConsole.js":454,"./ResleevingPod.js":455,"./Sleeper.js":456,"./Wires.js":457};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=435},function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var r=n(1),o=n(11),i=n(13),a=n(17);t.AiRestorer=function(){return(0,r.createComponentVNode)(2,a.Window,{width:370,height:360,resizable:!0,children:(0,r.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,r.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.AI_present,l=c.error,s=c.name,d=c.laws,f=c.isDead,p=c.restoring,m=c.health,h=c.ejectable;return(0,r.createFragment)([l&&(0,r.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:l}),!!h&&(0,r.createComponentVNode)(2,i.Button,{fluid:!0,icon:"eject",content:u?s:"----------",disabled:!u,onClick:function(){return a("PRG_eject")}}),!!u&&(0,r.createComponentVNode)(2,i.Section,{title:h?"System Status":s,buttons:(0,r.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:f?"bad":"good",children:f?"Nonfunctional":"Functional"}),children:[(0,r.createComponentVNode)(2,i.LabeledList,{children:(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Integrity",children:(0,r.createComponentVNode)(2,i.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,r.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,r.createComponentVNode)(2,i.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return a("PRG_beginReconstruction")}}),(0,r.createComponentVNode)(2,i.Section,{title:"Laws",level:2,children:d.map((function(e){return(0,r.createComponentVNode)(2,i.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.BodyScanner=void 0;var r=n(1),o=n(34),i=n(11),a=n(13),c=n(17),u=((0,n(36).createLogger)("debugBodyScanner"),[["good","Alive"],["average","Unconscious"],["bad","DEAD"]]),l=[["hasBorer","bad",function(e){return"Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."}],["hasVirus","bad",function(e){return"Viral pathogen detected in blood stream."}],["blind","average",function(e){return"Cataracts detected."}],["colourblind","average",function(e){return"Photoreceptor abnormalities detected."}],["nearsighted","average",function(e){return"Retinal misalignment detected."}],["humanPrey","average",function(e){return"Foreign Humanoid(s) detected: "+e.humanPrey}],["livingPrey","average",function(e){return"Foreign Creature(s) detected: "+e.livingPrey}],["objectPrey","average",function(e){return"Foreign Object(s) detected: "+e.objectPrey}]],s=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],d={average:[.25,.5],bad:[.5,Infinity]},f=function(e,t){for(var n=[],r=0;r0?e.reduce((function(e,t){return null===e?t:(0,r.createFragment)([e,!!t&&(0,r.createComponentVNode)(2,a.Box,{children:t})],0)})):null},m=function(e){if(e>100){if(e<300)return"mild infection";if(e<400)return"mild infection+";if(e<500)return"mild infection++";if(e<700)return"acute infection";if(e<800)return"acute infection+";if(e<900)return"acute infection++";if(e>=900)return"septic"}return""};t.BodyScanner=function(e,t){var n=(0,i.useBackend)(t).data,o=n.occupied,a=n.occupant,u=void 0===a?{}:a,l=o?(0,r.createComponentVNode)(2,h,{occupant:u}):(0,r.createComponentVNode)(2,V);return(0,r.createComponentVNode)(2,c.Window,{width:690,height:600,resizable:!0,children:(0,r.createComponentVNode)(2,c.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:l})})};var h=function(e){var t=e.occupant;return(0,r.createComponentVNode)(2,a.Box,{children:[(0,r.createComponentVNode)(2,v,{occupant:t}),(0,r.createComponentVNode)(2,g,{occupant:t}),(0,r.createComponentVNode)(2,b,{occupant:t}),(0,r.createComponentVNode)(2,y,{occupant:t}),(0,r.createComponentVNode)(2,N,{organs:t.extOrgan}),(0,r.createComponentVNode)(2,x,{organs:t.intOrgan})]})},v=function(e,t){var n=(0,i.useBackend)(t),c=n.act,l=n.data,s=l.occupant;return(0,r.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Button,{icon:"user-slash",onClick:function(){return c("ejectify")},children:"Eject"}),(0,r.createComponentVNode)(2,a.Button,{icon:"print",onClick:function(){return c("print_p")},children:"Print Report"})],4),children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u[s.stat][0],children:u[s.stat][1]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:(0,o.round)(s.bodyTempC,0)}),"\xb0C,\xa0",(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:(0,o.round)(s.bodyTempF,0)}),"\xb0F"]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Volume",children:[(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:(0,o.round)(s.blood.volume,0)})," units\xa0(",(0,r.createComponentVNode)(2,a.AnimatedNumber,{value:(0,o.round)(s.blood.percent,0)}),"%)"]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Weight",children:(0,o.round)(l.occupant.weight)+"lbs, "+(0,o.round)(l.occupant.weight/2.20463)+"kgs"})]})})},g=function(e){var t=e.occupant;return(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Section,{title:"Blood Reagents",children:t.reagents?(0,r.createComponentVNode)(2,a.Table,{children:[(0,r.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:"Reagent"}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Amount"})]}),t.reagents.map((function(e){return(0,r.createComponentVNode)(2,a.Table.Row,{children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[e.amount," Units"]})]},e.name)}))]}):(0,r.createComponentVNode)(2,a.Box,{color:"good",children:"No Blood Reagents Detected"})}),(0,r.createComponentVNode)(2,a.Section,{title:"Stomach Reagents",children:t.ingested?(0,r.createComponentVNode)(2,a.Table,{children:[(0,r.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:"Reagent"}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Amount"})]}),t.ingested.map((function(e){return(0,r.createComponentVNode)(2,a.Table.Row,{children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[e.amount," Units"]})]},e.name)}))]}):(0,r.createComponentVNode)(2,a.Box,{color:"good",children:"No Stomach Reagents Detected"})})],4)},b=function(e){var t=e.occupant,n=t.hasBorer||t.blind||t.colourblind||t.nearsighted||t.hasVirus;return(n=n||t.humanPrey||t.livingPrey||t.objectPrey)?(0,r.createComponentVNode)(2,a.Section,{title:"Abnormalities",children:l.map((function(e,n){if(t[e[0]])return(0,r.createComponentVNode)(2,a.Box,{color:e[1],bold:"bad"===e[1],children:e[2](t)})}))}):(0,r.createComponentVNode)(2,a.Section,{title:"Abnormalities",children:(0,r.createComponentVNode)(2,a.Box,{color:"label",children:"No abnormalities found."})})},y=function(e){var t=e.occupant;return(0,r.createComponentVNode)(2,a.Section,{title:"Damage",children:(0,r.createComponentVNode)(2,a.Table,{children:f(s,(function(e,n,o){return(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Table.Row,{color:"label",children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:[e[0],":"]}),(0,r.createComponentVNode)(2,a.Table.Cell,{children:!!n&&n[0]+":"})]}),(0,r.createComponentVNode)(2,a.Table.Row,{children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:(0,r.createComponentVNode)(2,C,{value:t[e[1]],marginBottom:o0&&"0.5rem",value:e.totalLoss/100,ranges:d,children:[(0,r.createComponentVNode)(2,a.Box,{float:"left",display:"inline",children:[!!e.bruteLoss&&(0,r.createComponentVNode)(2,a.Box,{display:"inline",position:"relative",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"bone"}),(0,o.round)(e.bruteLoss,0),"\xa0",(0,r.createComponentVNode)(2,a.Tooltip,{position:"top",content:"Brute damage"})]}),!!e.fireLoss&&(0,r.createComponentVNode)(2,a.Box,{display:"inline",position:"relative",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"fire"}),(0,o.round)(e.fireLoss,0),(0,r.createComponentVNode)(2,a.Tooltip,{position:"top",content:"Burn damage"})]})]}),(0,r.createComponentVNode)(2,a.Box,{display:"inline",children:(0,o.round)(e.totalLoss,0)})]})}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:"33%",children:[(0,r.createComponentVNode)(2,a.Box,{color:"average",display:"inline",children:p([e.internalBleeding&&"Internal bleeding",!!e.status.bleeding&&"External bleeding",e.lungRuptured&&"Ruptured lung",e.destroyed&&"Destroyed",!!e.status.broken&&e.status.broken,m(e.germ_level),!!e.open&&"Open incision"])}),(0,r.createComponentVNode)(2,a.Box,{display:"inline",children:[p([!!e.status.splinted&&"Splinted",!!e.status.robotic&&"Robotic",!!e.status.dead&&(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"})]),p(e.implants.map((function(e){return e.known?e.name:"Unknown object"})))]})]})]},t)}))]})})},x=function(e){return 0===e.organs.length?(0,r.createComponentVNode)(2,a.Section,{title:"Internal Organs",children:(0,r.createComponentVNode)(2,a.Box,{color:"label",children:"N/A"})}):(0,r.createComponentVNode)(2,a.Section,{title:"Internal Organs",children:(0,r.createComponentVNode)(2,a.Table,{children:[(0,r.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,r.createComponentVNode)(2,a.Table.Cell,{children:"Name"}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Damage"}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Injuries"})]}),e.organs.map((function(e,t){return(0,r.createComponentVNode)(2,a.Table.Row,{textTransform:"capitalize",children:[(0,r.createComponentVNode)(2,a.Table.Cell,{width:"33%",children:e.name}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:e.maxHealth,value:e.damage/100,mt:t>0&&"0.5rem",ranges:d,children:(0,o.round)(e.damage,0)})}),(0,r.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:"33%",children:[(0,r.createComponentVNode)(2,a.Box,{color:"average",display:"inline",children:p([m(e.germ_level)])}),(0,r.createComponentVNode)(2,a.Box,{display:"inline",children:p([1===e.robotic&&"Robotic",2===e.robotic&&"Assisted",!!e.dead&&(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"})])})]})]},t)}))]})})},V=function(){return(0,r.createComponentVNode)(2,a.Section,{textAlign:"center",flexGrow:"1",children:(0,r.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var r=n(1),o=n(11),i=n(13),a=n(173),c=n(17),u=[5,10,20,30,40],l=[1,5,10];t.ChemDispenser=function(e,t){return(0,r.createComponentVNode)(2,c.Window,{width:390,height:655,resizable:!0,children:(0,r.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,r.createComponentVNode)(2,s),(0,r.createComponentVNode)(2,d),(0,r.createComponentVNode)(2,f)]})})};var s=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data.amount;return(0,r.createComponentVNode)(2,i.Section,{title:"Settings",flex:"content",children:(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,r.createComponentVNode)(2,i.Flex,{direction:"row",wrap:"wrap",spacing:"1",children:u.map((function(e,t){return(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",children:(0,r.createComponentVNode)(2,i.Button,{icon:"cog",selected:c===e,content:e,m:"0",width:"100%",onClick:function(){return a("amount",{amount:e})}})},t)}))})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Custom Amount",children:(0,r.createComponentVNode)(2,i.Slider,{step:1,stepPixelSize:5,value:c,minValue:1,maxValue:120,onDrag:function(e,t){return a("amount",{amount:t})}})})]})})},d=function(e,t){for(var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.chemicals,l=void 0===u?[]:u,s=[],d=0;d<(l.length+1)%3;d++)s.push(!0);return(0,r.createComponentVNode)(2,i.Section,{title:c.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:"1",children:(0,r.createComponentVNode)(2,i.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[l.map((function(e,t){return(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"40%",height:"20px",children:(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",width:"100%",height:"100%",align:"flex-start",content:e.title+" ("+e.amount+")",onClick:function(){return a("dispense",{reagent:e.id})}})},t)})),s.map((function(e,t){return(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})},f=function(e,t){var n=(0,o.useBackend)(t),c=n.act,u=n.data,s=u.isBeakerLoaded,d=u.beakerCurrentVolume,f=u.beakerMaxVolume,p=u.beakerContents,m=void 0===p?[]:p;return(0,r.createComponentVNode)(2,i.Section,{title:"Beaker",flex:"content",minHeight:"25%",buttons:(0,r.createComponentVNode)(2,i.Box,{children:[!!s&&(0,r.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[d," / ",f," units"]}),(0,r.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("ejectBeaker")}})]}),children:(0,r.createComponentVNode)(2,a.BeakerContents,{beakerLoaded:s,beakerContents:m,buttons:function(e){return(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){return c("remove",{reagent:e.id,amount:-1})}}),l.map((function(t,n){return(0,r.createComponentVNode)(2,i.Button,{content:t,onClick:function(){return c("remove",{reagent:e.id,amount:t})}},n)})),(0,r.createComponentVNode)(2,i.Button,{content:"ALL",onClick:function(){return c("remove",{reagent:e.id,amount:e.volume})}})],0)}})})}},function(e,t,n){"use strict";e.exports=n(440)()},function(e,t,n){"use strict";var r=n(441);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var r=n(1),o=n(11),i=n(13),a=n(17),c=n(173),u=n(68),l=[1,5,10];t.ChemMaster=function(e,t){var n=(0,o.useBackend)(t).data,i=n.condi,c=n.beaker,l=n.beaker_reagents,p=void 0===l?[]:l,m=n.buffer_reagents,v=void 0===m?[]:m,g=n.mode;return(0,r.createComponentVNode)(2,a.Window,{width:575,height:500,resizable:!0,children:[(0,r.createComponentVNode)(2,u.ComplexModal),(0,r.createComponentVNode)(2,a.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,r.createComponentVNode)(2,s,{beaker:c,beakerReagents:p,bufferNonEmpty:v.length>0}),(0,r.createComponentVNode)(2,d,{mode:g,bufferReagents:v}),(0,r.createComponentVNode)(2,f,{isCondiment:i,bufferNonEmpty:v.length>0}),(0,r.createComponentVNode)(2,h)]})]})};var s=function(e,t){var n=(0,o.useBackend)(t).act,a=e.beaker,s=e.beakerReagents,d=e.bufferNonEmpty;return(0,r.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:d?(0,r.createComponentVNode)(2,i.Button.Confirm,{icon:"eject",disabled:!a,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}):(0,r.createComponentVNode)(2,i.Button,{icon:"eject",disabled:!a,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}),children:a?(0,r.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:!0,beakerContents:s,buttons:function(e,o){return(0,r.createComponentVNode)(2,i.Box,{mb:o0?(0,r.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:!0,beakerContents:d,buttons:function(e,o){return(0,r.createComponentVNode)(2,i.Box,{mb:o0?u.desc:"N/A"}),u.blood_type&&(0,r.createFragment)([(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood type",children:u.blood_type}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:u.blood_dna})],4),!c.condi&&(0,r.createComponentVNode)(2,i.Button,{icon:c.printing?"spinner":"print",disabled:c.printing,iconSpin:!!c.printing,ml:"0.5rem",content:"Print",onClick:function(){return a("print",{idx:u.idx,beaker:e.args.beaker})}})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.CloningConsole=void 0;var r=n(1),o=n(34),i=n(11),a=n(13),c=n(55),u=n(68),l=n(17),s=function(e,t){var n=(0,i.useBackend)(t),o=n.act,u=n.data,l=e.args,s=l.activerecord,d=l.realname,f=l.health,p=l.unidentity,m=l.strucenzymes,h=f.split(" - ");return(0,r.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Records of "+d,children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:h.length>1?(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.oxy,display:"inline",children:h[0]}),(0,r.createTextVNode)("\xa0|\xa0"),(0,r.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.toxin,display:"inline",children:h[2]}),(0,r.createTextVNode)("\xa0|\xa0"),(0,r.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.brute,display:"inline",children:h[3]}),(0,r.createTextVNode)("\xa0|\xa0"),(0,r.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.burn,display:"inline",children:h[1]})],4):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"Unknown"})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"UI",className:"LabeledList__breakContents",children:p}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"SE",className:"LabeledList__breakContents",children:m}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk",children:[(0,r.createComponentVNode)(2,a.Button.Confirm,{disabled:!u.disk,icon:"arrow-circle-down",content:"Import",onClick:function(){return o("disk",{option:"load"})}}),(0,r.createComponentVNode)(2,a.Button,{disabled:!u.disk,icon:"arrow-circle-up",content:"Export UI",onClick:function(){return o("disk",{option:"save",savetype:"ui"})}}),(0,r.createComponentVNode)(2,a.Button,{disabled:!u.disk,icon:"arrow-circle-up",content:"Export UI and UE",onClick:function(){return o("disk",{option:"save",savetype:"ue"})}}),(0,r.createComponentVNode)(2,a.Button,{disabled:!u.disk,icon:"arrow-circle-up",content:"Export SE",onClick:function(){return o("disk",{option:"save",savetype:"se"})}})]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,r.createComponentVNode)(2,a.Button,{disabled:!u.podready,icon:"user-plus",content:"Clone",onClick:function(){return o("clone",{ref:s})}}),(0,r.createComponentVNode)(2,a.Button,{icon:"trash",content:"Delete",onClick:function(){return o("del_rec")}})]})]})})};t.CloningConsole=function(e,t){var n=(0,i.useBackend)(t);n.act,n.data.menu;return(0,u.modalRegisterBodyOverride)("view_rec",s),(0,r.createComponentVNode)(2,l.Window,{resizable:!0,children:[(0,r.createComponentVNode)(2,u.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,r.createComponentVNode)(2,l.Window.Content,{className:"Layout__content--flexColumn",children:[(0,r.createComponentVNode)(2,h),(0,r.createComponentVNode)(2,v),(0,r.createComponentVNode)(2,d),(0,r.createComponentVNode)(2,a.Section,{noTopPadding:!0,flexGrow:"1",children:(0,r.createComponentVNode)(2,f)})]})]})};var d=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data.menu;return(0,r.createComponentVNode)(2,a.Tabs,{children:[(0,r.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,icon:"home",onClick:function(){return o("menu",{num:1})},children:"Main"}),(0,r.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,icon:"folder",onClick:function(){return o("menu",{num:2})},children:"Records"})]})},f=function(e,t){var n,o=(0,i.useBackend)(t).data.menu;return 1===o?n=(0,r.createComponentVNode)(2,p):2===o&&(n=(0,r.createComponentVNode)(2,m)),n},p=function(e,t){var n=(0,i.useBackend)(t),c=n.act,u=n.data,l=u.loading,s=u.scantemp,d=u.occupant,f=u.locked,p=u.can_brainscan,m=u.scan_mode,h=u.numberofpods,v=u.pods,g=u.selected_pod,b=f&&!!d;return(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Section,{title:"Scanner",level:"2",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Box,{display:"inline",color:"label",children:"Scanner Lock:\xa0"}),(0,r.createComponentVNode)(2,a.Button,{disabled:!d,selected:b,icon:b?"toggle-on":"toggle-off",content:b?"Engaged":"Disengaged",onClick:function(){return c("lock")}}),(0,r.createComponentVNode)(2,a.Button,{disabled:b||!d,icon:"user-slash",content:"Eject Occupant",onClick:function(){return c("eject")}})],4),children:[(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l?(0,r.createComponentVNode)(2,a.Box,{color:"average",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0}),"\xa0 Scanning..."]}):(0,r.createComponentVNode)(2,a.Box,{color:s.color,children:s.text})}),!!p&&(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,r.createComponentVNode)(2,a.Button,{icon:m?"brain":"male",content:m?"Brain":"Body",onClick:function(){return c("toggle_mode")}})})]}),(0,r.createComponentVNode)(2,a.Button,{disabled:!d||l,icon:"user",content:"Scan Occupant",mt:"0.5rem",mb:"0",onClick:function(){return c("scan")}})]}),(0,r.createComponentVNode)(2,a.Section,{title:"Pods",level:"2",children:h?v.map((function(e,t){var n;return n="cloning"===e.status?(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,r.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,o.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,r.createComponentVNode)(2,a.Button,{selected:g===e.pod,icon:g===e.pod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return c("selectpod",{ref:e.pod})}}),(0,r.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,r.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,r.createComponentVNode)(2,a.Box,{color:"label",children:["Pod #",t+1]}),(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,r.createComponentVNode)(2,a.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"No pods detected. Unable to clone."})})],4)},m=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data.records;return c.length?(0,r.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:c.map((function(e,t){return(0,r.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.realname,onClick:function(){return o("view_rec",{ref:e.record})}},t)}))}):(0,r.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No records found."]})})},h=function(e,t){var n,o=(0,i.useBackend)(t),c=o.act,u=o.data.temp;if(u&&u.text&&!(u.text.length<=0)){var l=((n={})[u.style]=!0,n);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.NoticeBox,Object.assign({},l,{children:[(0,r.createComponentVNode)(2,a.Box,{display:"inline-block",verticalAlign:"middle",children:u.text}),(0,r.createComponentVNode)(2,a.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,r.createComponentVNode)(2,a.Box,{clear:"both"})]})))}},v=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data,u=c.scanner,l=c.numberofpods,s=c.autoallowed,d=c.autoprocess,f=c.disk;return(0,r.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,r.createFragment)([!!s&&(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Box,{display:"inline",color:"label",children:"Auto-processing:\xa0"}),(0,r.createComponentVNode)(2,a.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"Enabled":"Disabled",onClick:function(){return o("autoprocess",{on:d?0:1})}})],4),(0,r.createComponentVNode)(2,a.Button,{disabled:!f,icon:"eject",content:"Eject Disk",onClick:function(){return o("disk",{option:"eject"})}})],0),children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanner",children:u?(0,r.createComponentVNode)(2,a.Box,{color:"good",children:"Connected"}):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"Not connected!"})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Pods",children:l?(0,r.createComponentVNode)(2,a.Box,{color:"good",children:[l," connected"]}):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var r=n(1),o=n(11),i=n(13),a=n(17),c=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],u=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]];t.Cryo=function(e,t){return(0,r.createComponentVNode)(2,a.Window,{width:520,height:470,resizeable:!0,children:(0,r.createComponentVNode)(2,a.Window.Content,{className:"Layout__content--flexColumn",children:(0,r.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,o.useBackend)(t),a=n.act,l=n.data,d=l.isOperating,f=l.hasOccupant,p=l.occupant,m=void 0===p?[]:p,h=l.cellTemperature,v=l.cellTemperatureStatus,g=l.isBeakerLoaded;return(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Section,{title:"Occupant",flexGrow:"1",buttons:(0,r.createComponentVNode)(2,i.Button,{icon:"user-slash",onClick:function(){return a("ejectOccupant")},disabled:!f,children:"Eject"}),children:f?(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Occupant",children:m.name||"Unknown"}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,r.createComponentVNode)(2,i.ProgressBar,{min:m.health,max:m.maxHealth,value:m.health/m.maxHealth,color:m.health>0?"good":"average",children:(0,r.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m.health)})})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:u[m.stat][0],children:u[m.stat][1]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,r.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m.bodyTemperature)})," K"]}),(0,r.createComponentVNode)(2,i.LabeledList.Divider),c.map((function(e){return(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:(0,r.createComponentVNode)(2,i.ProgressBar,{value:m[e.type]/100,ranges:{bad:[.01,Infinity]},children:(0,r.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m[e.type])})})},e.id)}))]}):(0,r.createComponentVNode)(2,i.Flex,{height:"100%",textAlign:"center",children:(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No occupant detected."]})})}),(0,r.createComponentVNode)(2,i.Section,{title:"Cell",buttons:(0,r.createComponentVNode)(2,i.Button,{icon:"eject",onClick:function(){return a("ejectBeaker")},disabled:!g,children:"Eject Beaker"}),children:(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Power",children:(0,r.createComponentVNode)(2,i.Button,{icon:"power-off",onClick:function(){return a(d?"switchOff":"switchOn")},selected:d,children:d?"On":"Off"})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",color:v,children:[(0,r.createComponentVNode)(2,i.AnimatedNumber,{value:h})," K"]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",children:(0,r.createComponentVNode)(2,s)})]})})],4)},s=function(e,t){var n=(0,o.useBackend)(t),a=(n.act,n.data),c=a.isBeakerLoaded,u=a.beakerLabel,l=a.beakerVolume;return c?(0,r.createFragment)([u||(0,r.createComponentVNode)(2,i.Box,{color:"average",children:"No label"}),(0,r.createComponentVNode)(2,i.Box,{color:!l&&"bad",children:l?(0,r.createComponentVNode)(2,i.AnimatedNumber,{value:l,format:function(e){return Math.round(e)+" units remaining"}}):"Beaker is empty"})],0):(0,r.createComponentVNode)(2,i.Box,{color:"average",children:"No beaker loaded"})}},function(e,t,n){"use strict";t.__esModule=!0,t.DNAModifier=void 0;var r=n(1),o=n(11),i=n(13),a=n(17),c=n(68),u=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],l=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],s=[5,10,20,30,50];t.DNAModifier=function(e,t){var n,i=(0,o.useBackend)(t),u=(i.act,i.data),l=u.irradiating,s=u.dnaBlockSize,p=u.occupant;return t.dnaBlockSize=s,t.isDNAInvalid=!p.isViableSubject||!p.uniqueIdentity||!p.structuralEnzymes,l&&(n=(0,r.createComponentVNode)(2,C,{duration:l})),(0,r.createComponentVNode)(2,a.Window,{width:660,height:700,resizable:!0,children:[(0,r.createComponentVNode)(2,c.ComplexModal),n,(0,r.createComponentVNode)(2,a.Window.Content,{className:"Layout__content--flexColumn",children:[(0,r.createComponentVNode)(2,d),(0,r.createComponentVNode)(2,f)]})]})};var d=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,l=c.locked,s=c.hasOccupant,d=c.occupant;return(0,r.createComponentVNode)(2,i.Section,{title:"Occupant",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Box,{color:"label",display:"inline",mr:"0.5rem",children:"Door Lock:"}),(0,r.createComponentVNode)(2,i.Button,{disabled:!s,selected:l,icon:l?"toggle-on":"toggle-off",content:l?"Engaged":"Disengaged",onClick:function(){return a("toggleLock")}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!s||l,icon:"user-slash",content:"Eject",onClick:function(){return a("ejectOccupant")}})],4),children:s?(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Box,{children:(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Name",children:d.name}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,r.createComponentVNode)(2,i.ProgressBar,{min:d.minHealth,max:d.maxHealth,value:d.health/d.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:u[d.stat][0],children:u[d.stat][1]}),(0,r.createComponentVNode)(2,i.LabeledList.Divider)]})}),t.isDNAInvalid?(0,r.createComponentVNode)(2,i.Box,{color:"bad",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"exclamation-circle"}),"\xa0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Radiation",children:(0,r.createComponentVNode)(2,i.ProgressBar,{min:"0",max:"100",value:d.radiationLevel/100,color:"average"})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Unique Enzymes",children:c.occupant.uniqueEnzymes?c.occupant.uniqueEnzymes:(0,r.createComponentVNode)(2,i.Box,{color:"bad",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"exclamation-circle"}),"\xa0 Unknown"]})})]})],0):(0,r.createComponentVNode)(2,i.Box,{color:"label",children:"Cell unoccupied."})})},f=function(e,t){var n,a=(0,o.useBackend)(t),c=a.act,u=a.data,s=u.selectedMenuKey,d=u.hasOccupant;u.occupant;return d?t.isDNAInvalid?(0,r.createComponentVNode)(2,i.Section,{flexGrow:"1",children:(0,r.createComponentVNode)(2,i.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No operation possible on this subject."]})})}):("ui"===s?n=(0,r.createFragment)([(0,r.createComponentVNode)(2,p),(0,r.createComponentVNode)(2,h)],4):"se"===s?n=(0,r.createFragment)([(0,r.createComponentVNode)(2,m),(0,r.createComponentVNode)(2,h)],4):"buffer"===s?n=(0,r.createComponentVNode)(2,v):"rejuvenators"===s&&(n=(0,r.createComponentVNode)(2,y)),(0,r.createComponentVNode)(2,i.Section,{flexGrow:"1",children:[(0,r.createComponentVNode)(2,i.Tabs,{children:l.map((function(e,t){return(0,r.createComponentVNode)(2,i.Tabs.Tab,{selected:s===e[0],onClick:function(){return c("selectMenuKey",{key:e[0]})},children:[(0,r.createComponentVNode)(2,i.Icon,{name:e[2]}),e[1]]},t)}))}),n]})):(0,r.createComponentVNode)(2,i.Section,{flexGrow:"1",children:(0,r.createComponentVNode)(2,i.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No occupant in DNA modifier."]})})})},p=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.selectedUIBlock,l=c.selectedUISubBlock,s=c.selectedUITarget,d=c.occupant;return(0,r.createComponentVNode)(2,i.Section,{title:"Modify Unique Identifier",level:"2",children:[(0,r.createComponentVNode)(2,N,{dnaString:d.uniqueIdentity,selectedBlock:u,selectedSubblock:l,blockSize:t.dnaBlockSize,action:"selectUIBlock"}),(0,r.createComponentVNode)(2,i.LabeledList,{children:(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,r.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"15",stepPixelSize:"20",value:s,format:function(e){return e.toString(16).toUpperCase()},ml:"0",onChange:function(e,t){return a("changeUITarget",{value:t})}})})}),(0,r.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){return a("pulseUIRadiation")}})]})},m=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.selectedSEBlock,l=c.selectedSESubBlock,s=c.occupant;return(0,r.createComponentVNode)(2,i.Section,{title:"Modify Structural Enzymes",level:"2",children:[(0,r.createComponentVNode)(2,N,{dnaString:s.structuralEnzymes,selectedBlock:u,selectedSubblock:l,blockSize:t.dnaBlockSize,action:"selectSEBlock"}),(0,r.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){return a("pulseSERadiation")}})]})},h=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.radiationIntensity,l=c.radiationDuration;return(0,r.createComponentVNode)(2,i.Section,{title:"Radiation Emitter",level:"2",children:[(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Intensity",children:(0,r.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"10",stepPixelSize:"20",value:u,popUpPosition:"right",ml:"0",onChange:function(e,t){return a("radiationIntensity",{value:t})}})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Duration",children:(0,r.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"20",stepPixelSize:"10",unit:"s",value:l,popUpPosition:"right",ml:"0",onChange:function(e,t){return a("radiationDuration",{value:t})}})})]}),(0,r.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-right",mt:"0.5rem",onClick:function(){return a("pulseRadiation")}})]})},v=function(e,t){var n=(0,o.useBackend)(t),a=(n.act,n.data.buffers.map((function(e,t){return(0,r.createComponentVNode)(2,g,{id:t+1,name:"Buffer "+(t+1),buffer:e},t)})));return(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Section,{title:"Buffers",level:"2",children:a}),(0,r.createComponentVNode)(2,b)],4)},g=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=e.id,l=e.name,s=e.buffer,d=c.isInjectorReady,f=l+(s.data?" - "+s.label:"");return(0,r.createComponentVNode)(2,i.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,r.createComponentVNode)(2,i.Section,{title:f,level:"3",mx:"0",lineHeight:"18px",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Button.Confirm,{disabled:!s.data,icon:"trash",content:"Clear",onClick:function(){return a("bufferOption",{option:"clear",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!s.data,icon:"pen",content:"Rename",onClick:function(){return a("bufferOption",{option:"changeLabel",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!s.data||!c.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-left",onClick:function(){return a("bufferOption",{option:"saveDisk",id:u})}})],4),children:[(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Write",children:[(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUI",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUIAndUE",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){return a("bufferOption",{option:"saveSE",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!c.hasDisk||!c.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){return a("bufferOption",{option:"loadDisk",id:u})}})]}),!!s.data&&(0,r.createFragment)([(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Subject",children:s.owner||(0,r.createComponentVNode)(2,i.Box,{color:"average",children:"Unknown"})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Data Type",children:["ui"===s.type?"Unique Identifiers":"Structural Enzymes",!!s.ue&&" and Unique Enzymes"]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Transfer to",children:[(0,r.createComponentVNode)(2,i.Button,{disabled:!d,icon:d?"syringe":"spinner",iconSpin:!d,content:"Injector",mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:u})}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!d,icon:d?"syringe":"spinner",iconSpin:!d,content:"Block Injector",mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:u,block:1})}}),(0,r.createComponentVNode)(2,i.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){return a("bufferOption",{option:"transfer",id:u})}})]})],4)]}),!s.data&&(0,r.createComponentVNode)(2,i.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},b=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.hasDisk,l=c.disk;return(0,r.createComponentVNode)(2,i.Section,{title:"Data Disk",level:"2",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Button.Confirm,{disabled:!u||!l.data,icon:"trash",content:"Wipe",onClick:function(){return a("wipeDisk")}}),(0,r.createComponentVNode)(2,i.Button,{disabled:!u,icon:"eject",content:"Eject",onClick:function(){return a("ejectDisk")}})],4),children:u?l.data?(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Label",children:l.label?l.label:"No label"}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Subject",children:l.owner?l.owner:(0,r.createComponentVNode)(2,i.Box,{color:"average",children:"Unknown"})}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Data Type",children:["ui"===l.type?"Unique Identifiers":"Structural Enzymes",!!l.ue&&" and Unique Enzymes"]})]}):(0,r.createComponentVNode)(2,i.Box,{color:"label",children:"Disk is blank."}):(0,r.createComponentVNode)(2,i.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"save-o",size:"4"}),(0,r.createVNode)(1,"br"),"No disk inserted."]})})},y=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.isBeakerLoaded,l=c.beakerVolume,d=c.beakerLabel;return(0,r.createComponentVNode)(2,i.Section,{title:"Rejuvenators and Beaker",level:"2",buttons:(0,r.createComponentVNode)(2,i.Button,{disabled:!u,icon:"eject",content:"Eject",onClick:function(){return a("ejectBeaker")}}),children:u?(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Inject",children:[s.map((function(e,t){return(0,r.createComponentVNode)(2,i.Button,{disabled:e>l,icon:"syringe",content:e,onClick:function(){return a("injectRejuvenators",{amount:e})}},t)})),(0,r.createComponentVNode)(2,i.Button,{disabled:l<=0,icon:"syringe",content:"All",onClick:function(){return a("injectRejuvenators",{amount:l})}})]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",children:[(0,r.createComponentVNode)(2,i.Box,{mb:"0.5rem",children:d||"No label"}),l?(0,r.createComponentVNode)(2,i.Box,{color:"good",children:[l," unit",1===l?"":"s"," remaining"]}):(0,r.createComponentVNode)(2,i.Box,{color:"bad",children:"Empty"})]})]}):(0,r.createComponentVNode)(2,i.Box,{color:"label",textAlign:"center",my:"25%",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"exclamation-triangle",size:"4"}),(0,r.createVNode)(1,"br"),"No beaker loaded."]})})},C=function(e,t){return(0,r.createComponentVNode)(2,i.Dimmer,{textAlign:"center",children:[(0,r.createComponentVNode)(2,i.Icon,{name:"spinner",size:"5",spin:!0}),(0,r.createVNode)(1,"br"),(0,r.createComponentVNode)(2,i.Box,{color:"average",children:(0,r.createVNode)(1,"h1",null,[(0,r.createComponentVNode)(2,i.Icon,{name:"radiation"}),(0,r.createTextVNode)("\xa0Irradiating occupant\xa0"),(0,r.createComponentVNode)(2,i.Icon,{name:"radiation"})],4)}),(0,r.createComponentVNode)(2,i.Box,{color:"label",children:(0,r.createVNode)(1,"h3",null,[(0,r.createTextVNode)("For "),e.duration,(0,r.createTextVNode)(" second"),1===e.duration?"":"s"],0)})]})},N=function(e,t){for(var n=(0,o.useBackend)(t),a=n.act,c=(n.data,e.dnaString),u=e.selectedBlock,l=e.selectedSubblock,s=e.blockSize,d=e.action,f=c.split(""),p=[],m=function(e){for(var t=e/s+1,n=[],o=function(o){var c=o+1;n.push((0,r.createComponentVNode)(2,i.Button,{selected:u===t&&l===c,content:f[e+o],mb:"0",onClick:function(){return a(d,{block:t,subblock:c})}}))},c=0;ct.name?1:-1})),c.map((function(e,t){return(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Button,{icon:"flask",content:e.name,mb:"0.5rem",onClick:function(){return a("vir",{vir:e.D})}}),(0,r.createVNode)(1,"br")],4,t)}))},y=function(e,t){var n=(0,o.useBackend)(t).data.medbots;return 0===n.length?(0,r.createComponentVNode)(2,i.Box,{color:"label",children:"There are no Medbots."}):n.map((function(e,t){return(0,r.createComponentVNode)(2,i.Collapsible,{open:!0,title:e.name,children:(0,r.createComponentVNode)(2,i.Box,{px:"0.5rem",children:(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:[e.area||"Unknown"," (",e.x,", ",e.y,")"]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:e.on?(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Box,{color:"good",children:"Online"}),(0,r.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:e.use_beaker?"Reservoir: "+e.total_volume+"/"+e.maximum_volume:"Using internal synthesizer."})],4):(0,r.createComponentVNode)(2,i.Box,{color:"average",children:"Offline"})})]})})},t)}))},C=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data.screen;return(0,r.createComponentVNode)(2,i.Tabs,{children:[(0,r.createComponentVNode)(2,i.Tabs.Tab,{selected:2===c,onClick:function(){return a("screen",{screen:2})},children:[(0,r.createComponentVNode)(2,i.Icon,{name:"list"}),"List Records"]}),(0,r.createComponentVNode)(2,i.Tabs.Tab,{selected:5===c,onClick:function(){return a("screen",{screen:5})},children:[(0,r.createComponentVNode)(2,i.Icon,{name:"database"}),"Virus Database"]}),(0,r.createComponentVNode)(2,i.Tabs.Tab,{selected:6===c,onClick:function(){return a("screen",{screen:6})},children:[(0,r.createComponentVNode)(2,i.Icon,{name:"plus-square"}),"Medbot Tracking"]}),(0,r.createComponentVNode)(2,i.Tabs.Tab,{selected:3===c,onClick:function(){return a("screen",{screen:3})},children:[(0,r.createComponentVNode)(2,i.Icon,{name:"wrench"}),"Record Maintenance"]})]})};(0,a.modalRegisterBodyOverride)("virus",(function(e,t){var n=e.args;return(0,r.createComponentVNode)(2,i.Section,{level:2,m:"-1rem",pb:"1rem",title:n.name||"Virus",children:(0,r.createComponentVNode)(2,i.Box,{mx:"0.5rem",children:(0,r.createComponentVNode)(2,i.LabeledList,{children:[(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Number of stages",children:n.max_stages}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:[n.spread_text," Transmission"]}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible cure",children:n.cure}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Notes",children:n.desc}),(0,r.createComponentVNode)(2,i.LabeledList.Item,{label:"Severity",color:d[n.severity],children:n.severity})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.LoginInfo=void 0;var r=n(1),o=n(11),i=n(13);t.LoginInfo=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.authenticated,l=c.rank;if(c)return(0,r.createComponentVNode)(2,i.NoticeBox,{info:!0,children:[(0,r.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:["Logged in as: ",u," (",l,")"]}),(0,r.createComponentVNode)(2,i.Button,{icon:"sign-out-alt",content:"Logout and Eject ID",color:"good",float:"right",onClick:function(){return a("logout")}}),(0,r.createComponentVNode)(2,i.Box,{clear:"both"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LoginScreen=void 0;var r=n(1),o=n(11),i=n(13);t.LoginScreen=function(e,t){var n=(0,o.useBackend)(t),a=n.act,c=n.data,u=c.scan,l=c.isAI,s=c.isRobot;return(0,r.createComponentVNode)(2,i.Section,{title:"Welcome",height:"100%",stretchContents:!0,children:(0,r.createComponentVNode)(2,i.Flex,{height:"100%",align:"center",justify:"center",children:(0,r.createComponentVNode)(2,i.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,r.createComponentVNode)(2,i.Box,{fontSize:"1.5rem",bold:!0,children:[(0,r.createComponentVNode)(2,i.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,r.createComponentVNode)(2,i.Box,{color:"label",my:"1rem",children:["ID:",(0,r.createComponentVNode)(2,i.Button,{icon:"id-card",content:u||"----------",ml:"0.5rem",onClick:function(){return a("scan")}})]}),(0,r.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",disabled:!u,content:"Login",onClick:function(){return a("login",{login_type:1})}}),!!l&&(0,r.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){return a("login",{login_type:2})}}),!!s&&(0,r.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){return a("login",{login_type:3})}})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TemporaryNotice=void 0;var r=n(1),o=n(11),i=n(13);t.TemporaryNotice=function(e,t){var n,a=(0,o.useBackend)(t),c=a.act,u=a.data.temp;if(u){var l=((n={})[u.style]=!0,n);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,i.NoticeBox,Object.assign({},l,{children:[(0,r.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:u.text}),(0,r.createComponentVNode)(2,i.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,r.createComponentVNode)(2,i.Box,{clear:"both"})]})))}}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCameraConsole=void 0;var r=n(1),o=n(17),i=n(172);t.NtosCameraConsole=function(){return(0,r.createComponentVNode)(2,o.NtosWindow,{width:870,height:708,resizable:!0,children:(0,r.createComponentVNode)(2,o.NtosWindow.Content,{children:(0,r.createComponentVNode)(2,i.CameraConsoleContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewMonitor=void 0;var r=n(1),o=n(17),i=n(174);t.NtosCrewMonitor=function(){return(0,r.createComponentVNode)(2,o.NtosWindow,{width:800,height:600,resizable:!0,children:(0,r.createComponentVNode)(2,o.NtosWindow.Content,{children:(0,r.createComponentVNode)(2,i.CrewMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var r=n(1),o=n(34),i=n(11),a=n(17),c=n(13),u=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],l=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],s={average:[.25,.5],bad:[.5,Infinity]},d=["bad","average","average","good","average","average","bad"];t.OperatingComputer=function(e,t){var n,o=(0,i.useBackend)(t),u=o.act,l=o.data,s=l.hasOccupant,d=l.choice;return n=d?(0,r.createComponentVNode)(2,m):s?(0,r.createComponentVNode)(2,f):(0,r.createComponentVNode)(2,p),(0,r.createComponentVNode)(2,a.Window,{width:650,height:455,resizable:!0,children:(0,r.createComponentVNode)(2,a.Window.Content,{children:[(0,r.createComponentVNode)(2,c.Tabs,{children:[(0,r.createComponentVNode)(2,c.Tabs.Tab,{selected:!d,icon:"user",onClick:function(){return u("choiceOff")},children:"Patient"}),(0,r.createComponentVNode)(2,c.Tabs.Tab,{selected:!!d,icon:"cog",onClick:function(){return u("choiceOn")},children:"Options"})]}),(0,r.createComponentVNode)(2,c.Section,{flexGrow:"1",children:n})]})})};var f=function(e,t){var n=(0,i.useBackend)(t).data.occupant;return(0,r.createFragment)([(0,r.createComponentVNode)(2,c.Section,{title:"Patient",level:"2",children:(0,r.createComponentVNode)(2,c.LabeledList,{children:[(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:n.name}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:u[n.stat][0],children:u[n.stat][1]}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,r.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.maxHealth,value:n.health/n.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),l.map((function(e,t){return(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:e[0]+" Damage",children:(0,r.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:s,children:(0,o.round)(n[e[1]])},t)},t)})),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,r.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.maxTemp,value:n.bodyTemperature/n.maxTemp,color:d[n.temperatureSuitability+3],children:[(0,o.round)(n.btCelsius),"\xb0C, ",(0,o.round)(n.btFaren),"\xb0F"]})}),!!n.hasBlood&&(0,r.createFragment)([(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Level",children:(0,r.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.bloodMax,value:n.bloodLevel/n.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[n.bloodPercent,"%, ",n.bloodLevel,"cl"]})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Pulse",children:[n.pulse," BPM"]})],4)]})}),(0,r.createComponentVNode)(2,c.Section,{title:"Current Procedure",level:"2",children:n.surgery&&n.surgery.length?(0,r.createComponentVNode)(2,c.LabeledList,{children:n.surgery.map((function(e){return(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,r.createComponentVNode)(2,c.LabeledList,{children:[(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Current State",children:e.currentStage}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Next Steps",children:e.nextSteps.map((function(e){return(0,r.createVNode)(1,"div",null,e,0,null,e)}))})]})},e.name)}))}):(0,r.createComponentVNode)(2,c.Box,{color:"label",children:"No procedure ongoing."})})],4)},p=function(){return(0,r.createComponentVNode)(2,c.Flex,{textAlign:"center",height:"100%",children:(0,r.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,r.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No patient detected."]})})},m=function(e,t){var n=(0,i.useBackend)(t),o=n.act,a=n.data,u=a.verbose,l=a.health,s=a.healthAlarm,d=a.oxy,f=a.oxyAlarm,p=a.crit;return(0,r.createComponentVNode)(2,c.LabeledList,{children:[(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Loudspeaker",children:(0,r.createComponentVNode)(2,c.Button,{selected:u,icon:u?"toggle-on":"toggle-off",content:u?"On":"Off",onClick:function(){return o(u?"verboseOff":"verboseOn")}})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Health Announcer",children:(0,r.createComponentVNode)(2,c.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return o(l?"healthOff":"healthOn")}})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,r.createComponentVNode)(2,c.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:s,stepPixelSize:"5",ml:"0",onChange:function(e,t){return o("health_adj",{"new":t})}})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Oxygen Alarm",children:(0,r.createComponentVNode)(2,c.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"On":"Off",onClick:function(){return o(d?"oxyOff":"oxyOn")}})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,r.createComponentVNode)(2,c.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:f,stepPixelSize:"5",ml:"0",onChange:function(e,t){return o("oxy_adj",{"new":t})}})}),(0,r.createComponentVNode)(2,c.LabeledList.Item,{label:"Critical Alert",children:(0,r.createComponentVNode)(2,c.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){return o(p?"critOff":"critOn")}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ResleevingConsole=void 0;var r=n(1),o=n(34),i=n(11),a=n(13),c=(n(55),n(68)),u=n(17),l=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=(n.data,e.args),u=c.activerecord,l=c.realname,s=c.obviously_dead,d=c.oocnotes,f=c.can_sleeve_active;return(0,r.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Mind Record ("+l+")",children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:s}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,r.createComponentVNode)(2,a.Button,{disabled:!f,icon:"user-plus",content:"Sleeve",onClick:function(){return o("sleeve",{ref:u,mode:1})}}),(0,r.createComponentVNode)(2,a.Button,{icon:"user-plus",content:"Card",onClick:function(){return o("sleeve",{ref:u,mode:2})}})]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"OOC Notes",children:d})]})})},s=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=(n.data,e.args),u=c.activerecord,l=c.realname,s=c.species,d=c.sex,f=c.mind_compat,p=c.synthetic,m=c.oocnotes,h=c.can_grow_active;return(0,r.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Body Record ("+l+")",children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Bio. Sex",children:d}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Compat",children:f}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Synthetic",children:p?"Yes":"No"}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"OOC Notes",children:m}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,r.createComponentVNode)(2,a.Button,{disabled:!h,icon:"user-plus",content:p?"Build":"Grow",onClick:function(){return o("create",{ref:u})}})})]})})};t.ResleevingConsole=function(e,t){var n=(0,i.useBackend)(t),o=(n.act,n.data),h=(o.menu,o.coredumped),v=o.emergency,g=(0,r.createFragment)([(0,r.createComponentVNode)(2,C),(0,r.createComponentVNode)(2,N),(0,r.createComponentVNode)(2,d),(0,r.createComponentVNode)(2,a.Section,{noTopPadding:!0,flexGrow:"1",children:(0,r.createComponentVNode)(2,f)})],4);return h&&(g=(0,r.createComponentVNode)(2,p)),v&&(g=(0,r.createComponentVNode)(2,m)),(0,c.modalRegisterBodyOverride)("view_b_rec",s),(0,c.modalRegisterBodyOverride)("view_m_rec",l),(0,r.createComponentVNode)(2,u.Window,{width:640,height:520,resizable:!0,children:[(0,r.createComponentVNode)(2,c.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,r.createComponentVNode)(2,u.Window.Content,{className:"Layout__content--flexColumn",children:g})]})};var d=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data.menu;return(0,r.createComponentVNode)(2,a.Tabs,{children:[(0,r.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,icon:"home",onClick:function(){return o("menu",{num:1})},children:"Main"}),(0,r.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,icon:"folder",onClick:function(){return o("menu",{num:2})},children:"Body Records"}),(0,r.createComponentVNode)(2,a.Tabs.Tab,{selected:3===c,icon:"folder",onClick:function(){return o("menu",{num:3})},children:"Mind Records"})]})},f=function(e,t){var n,o=(0,i.useBackend)(t).data,a=o.menu,c=o.bodyrecords,u=o.mindrecords;return 1===a?n=(0,r.createComponentVNode)(2,h):2===a?n=(0,r.createComponentVNode)(2,y,{records:c,actToDo:"view_b_rec"}):3===a&&(n=(0,r.createComponentVNode)(2,y,{records:u,actToDo:"view_m_rec"})),n},p=function(e,t){return(0,r.createComponentVNode)(2,a.Dimmer,{children:(0,r.createComponentVNode)(2,a.Flex,{direction:"column",justify:"space-evenly",align:"center",children:[(0,r.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,r.createComponentVNode)(2,a.Icon,{size:12,color:"bad",name:"exclamation-triangle"})}),(0,r.createComponentVNode)(2,a.Flex.Item,{grow:1,color:"bad",mt:5,children:(0,r.createVNode)(1,"h2",null,"TransCore dump completed. Resleeving offline.",16)})]})})},m=function(e,t){var n=(0,i.useBackend)(t).act;return(0,r.createComponentVNode)(2,a.Dimmer,{textAlign:"center",children:[(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:(0,r.createVNode)(1,"h1",null,"TRANSCORE DUMP",16)}),(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:(0,r.createVNode)(1,"h2",null,"!!WARNING!!",16)}),(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"This will transfer all minds to the dump disk, and the TransCore will be made unusable until post-shift maintenance! This should only be used in emergencies!"}),(0,r.createComponentVNode)(2,a.Box,{mt:4,children:(0,r.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Disk",color:"good",onClick:function(){return n("ejectdisk")}})}),(0,r.createComponentVNode)(2,a.Box,{mt:4,children:(0,r.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",content:"Core Dump",confirmContent:"Disable Transcore?",color:"bad",onClick:function(){return n("coredump")}})})]})},h=function(e,t){var n=(0,i.useBackend)(t),o=(n.act,n.data);o.loading,o.scantemp,o.occupant,o.locked,o.can_brainscan,o.scan_mode,o.pods,o.selected_pod;return(0,r.createComponentVNode)(2,a.Section,{title:"Pods",level:"2",children:[(0,r.createComponentVNode)(2,v),(0,r.createComponentVNode)(2,b),(0,r.createComponentVNode)(2,g)]})},v=function(e,t){var n=(0,i.useBackend)(t),c=n.act,u=n.data,l=u.pods,s=u.spods,d=u.selected_pod;return l&&l.length?l.map((function(e,t){var n;return n="cloning"===e.status?(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,r.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,o.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,r.createComponentVNode)(2,a.Button,{selected:d===e.pod,icon:d===e.pod&&"check",content:"Select",mt:s&&s.length?"2rem":"0.5rem",onClick:function(){return c("selectpod",{ref:e.pod})}}),(0,r.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,r.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,r.createComponentVNode)(2,a.Box,{color:"label",children:e.name}),(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,r.createComponentVNode)(2,a.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):null},g=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data,u=c.sleevers,l=c.spods,s=c.selected_sleever;return u&&u.length?u.map((function(e,t){var n;return n=e.occupied?(0,r.createComponentVNode)(2,a.Button,{selected:s===e.sleever,icon:s===e.sleever&&"check",content:"Select",mt:l&&l.length?"3rem":"1.5rem",onClick:function(){return o("selectsleever",{ref:e.sleever})}}):(0,r.createComponentVNode)(2,a.Box,{mt:l&&l.length?"2rem":"0.5rem",color:"bad",children:"Sleever Empty."}),(0,r.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,r.createVNode)(1,"img",null,null,1,{src:"sleeve_"+(e.occupied?"occupied":"empty")+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,r.createComponentVNode)(2,a.Box,{color:"label",children:e.name}),n]},t)})):null},b=function(e,t){var n=(0,i.useBackend)(t),c=n.act,u=n.data,l=u.spods,s=u.selected_printer;return l&&l.length?l.map((function(e,t){var n;return n="cloning"===e.status?(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,r.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,o.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,r.createComponentVNode)(2,a.Button,{selected:s===e.spod,icon:s===e.spod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return c("selectprinter",{ref:e.spod})}}),(0,r.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,r.createVNode)(1,"img",null,null,1,{src:"synthprinter"+(e.busy?"_working":"")+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,r.createComponentVNode)(2,a.Box,{color:"label",children:e.name}),(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:e.steel>=15e3?"good":"bad",display:"inline",children:[(0,r.createComponentVNode)(2,a.Icon,{name:e.steel>=15e3?"circle":"circle-o"}),"\xa0",e.steel]}),(0,r.createComponentVNode)(2,a.Box,{bold:!0,color:e.glass>=15e3?"good":"bad",display:"inline",children:[(0,r.createComponentVNode)(2,a.Icon,{name:e.glass>=15e3?"circle":"circle-o"}),"\xa0",e.glass]}),n]},t)})):null},y=function(e,t){var n=(0,i.useBackend)(t).act,o=e.records,c=e.actToDo;return o.length?(0,r.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:o.map((function(e,t){return(0,r.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.name,onClick:function(){return n(c,{ref:e.recref})}},t)}))}):(0,r.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No records found."]})})},C=function(e,t){var n,o=(0,i.useBackend)(t),c=o.act,u=o.data.temp;if(u&&u.text&&!(u.text.length<=0)){var l=((n={})[u.style]=!0,n);return(0,r.normalizeProps)((0,r.createComponentVNode)(2,a.NoticeBox,Object.assign({},l,{children:[(0,r.createComponentVNode)(2,a.Box,{display:"inline-block",verticalAlign:"middle",children:u.text}),(0,r.createComponentVNode)(2,a.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,r.createComponentVNode)(2,a.Box,{clear:"both"})]})))}},N=function(e,t){var n=(0,i.useBackend)(t),o=(n.act,n.data),c=o.pods,u=o.spods,l=o.sleevers;o.autoallowed,o.autoprocess,o.disk;return(0,r.createComponentVNode)(2,a.Section,{title:"Status",children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Pods",children:c&&c.length?(0,r.createComponentVNode)(2,a.Box,{color:"good",children:[c.length," connected"]}):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"SynthFabs",children:u&&u.length?(0,r.createComponentVNode)(2,a.Box,{color:"good",children:[u.length," connected"]}):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Sleevers",children:l&&l.length?(0,r.createComponentVNode)(2,a.Box,{color:"good",children:[l.length," Connected"]}):(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ResleevingPod=void 0;var r=n(1),o=n(17),i=n(11),a=n(13);t.ResleevingPod=function(e,t){var n=(0,i.useBackend)(t).data,c=n.occupied,u=n.name,l=n.health,s=n.maxHealth,d=n.stat,f=n.mindStatus,p=n.mindName,m=n.resleeveSick,h=n.initialSick;return(0,r.createComponentVNode)(2,o.Window,{width:300,height:350,resizeable:!0,children:(0,r.createComponentVNode)(2,o.Window.Content,{children:(0,r.createComponentVNode)(2,a.Section,{title:"Occupant",children:c?(0,r.createFragment)([(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:u}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:2===d?(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"}):1===d?(0,r.createComponentVNode)(2,a.Box,{color:"average",children:"Unconscious"}):(0,r.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},value:l/s,children:[l,"%"]})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Status",children:f?"Present":"Missing"}),f?(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Occupying",children:p}):""]}),m?(0,r.createComponentVNode)(2,a.Box,{color:"average",mt:3,children:["Warning: Resleeving Sickness detected.",h?(0,r.createFragment)([(0,r.createTextVNode)(" Motion Sickness also detected. Please allow the newly resleeved person a moment to get their bearings. This warning will disappear when Motion Sickness is no longer detected.")],4):""]}):""],0):(0,r.createComponentVNode)(2,a.Box,{bold:!0,m:1,children:"Unoccupied."})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var r=n(1),o=n(34),i=n(11),a=n(13),c=n(17),u=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],l=[["Resp","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],s={average:[.25,.5],bad:[.5,Infinity]},d=["bad","average","average","good","average","average","bad"];t.Sleeper=function(e,t){var n=(0,i.useBackend)(t),o=(n.act,n.data.hasOccupant?(0,r.createComponentVNode)(2,f):(0,r.createComponentVNode)(2,g));return(0,r.createComponentVNode)(2,c.Window,{width:550,height:820,resizable:!0,children:(0,r.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:o})})};var f=function(e,t){var n=(0,i.useBackend)(t),o=(n.act,n.data),a=(o.occupant,o.dialysis),c=o.stomachpumping;return(0,r.createFragment)([(0,r.createComponentVNode)(2,p),(0,r.createComponentVNode)(2,m),(0,r.createComponentVNode)(2,h,{title:"Dialysis",active:a,actToDo:"togglefilter"}),(0,r.createComponentVNode)(2,h,{title:"Stomach Pump",active:c,actToDo:"togglepump"}),(0,r.createComponentVNode)(2,v)],4)},p=function(e,t){var n=(0,i.useBackend)(t),c=n.act,l=n.data,s=l.occupant,f=l.auto_eject_dead,p=l.stasis;return(0,r.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Box,{color:"label",display:"inline",children:"Auto-eject if dead:\xa0"}),(0,r.createComponentVNode)(2,a.Button,{icon:f?"toggle-on":"toggle-off",selected:f,content:f?"On":"Off",onClick:function(){return c("auto_eject_dead_"+(f?"off":"on"))}}),(0,r.createComponentVNode)(2,a.Button,{icon:"user-slash",content:"Eject",onClick:function(){return c("ejectify")}}),(0,r.createComponentVNode)(2,a.Button,{content:p,onClick:function(){return c("changestasis")}})],4),children:(0,r.createComponentVNode)(2,a.LabeledList,{children:[(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:0,max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]},children:(0,o.round)(s.health,0)})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u[s.stat][0],children:u[s.stat][1]}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.maxTemp,value:s.bodyTemperature/s.maxTemp,color:d[s.temperatureSuitability+3],children:[(0,o.round)(s.btCelsius,0),"\xb0C,",(0,o.round)(s.btFaren,0),"\xb0F"]})}),!!s.hasBlood&&(0,r.createFragment)([(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Level",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.bloodMax,value:s.bloodLevel/s.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[s.bloodPercent,"%, ",s.bloodLevel,"cl"]})}),(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[s.pulse," BPM"]})],4)]})})},m=function(e,t){var n=(0,i.useBackend)(t).data.occupant;return(0,r.createComponentVNode)(2,a.Section,{title:"Damage",children:(0,r.createComponentVNode)(2,a.LabeledList,{children:l.map((function(e,t){return(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:e[0],children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:s,children:(0,o.round)(n[e[1]],0)},t)},t)}))})})},h=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data,u=c.isBeakerLoaded,l=c.beakerMaxSpace,s=c.beakerFreeSpace,d=e.active,f=e.actToDo,p=e.title,m=d&&s>0;return(0,r.createComponentVNode)(2,a.Section,{title:p,buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,a.Button,{disabled:!u||s<=0,selected:m,icon:m?"toggle-on":"toggle-off",content:m?"Active":"Inactive",onClick:function(){return o(f)}}),(0,r.createComponentVNode)(2,a.Button,{disabled:!u,icon:"eject",content:"Eject",onClick:function(){return o("removebeaker")}})],4),children:u?(0,r.createComponentVNode)(2,a.LabeledList,{children:(0,r.createComponentVNode)(2,a.LabeledList.Item,{label:"Remaining Space",children:(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:l,value:s/l,ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},children:[s,"u"]})})}):(0,r.createComponentVNode)(2,a.Box,{color:"label",children:"No beaker loaded."})})},v=function(e,t){var n=(0,i.useBackend)(t),o=n.act,c=n.data,u=c.occupant,l=c.chemicals,s=c.maxchem,d=c.amounts;return(0,r.createComponentVNode)(2,a.Section,{title:"Chemicals",flexGrow:"1",children:l.map((function(e,t){var n,i="";return e.overdosing?(i="bad",n=(0,r.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 Overdosing!"]})):e.od_warning&&(i="average",n=(0,r.createComponentVNode)(2,a.Box,{color:"average",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"\xa0 Close to overdosing"]})),(0,r.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,r.createComponentVNode)(2,a.Section,{title:e.title,level:"3",mx:"0",lineHeight:"18px",buttons:n,children:(0,r.createComponentVNode)(2,a.Flex,{align:"flex-start",children:[(0,r.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s,value:e.occ_amount/s,color:i,mr:"0.5rem",children:[e.pretty_amount,"/",s,"u"]}),d.map((function(t,n){return(0,r.createComponentVNode)(2,a.Button,{disabled:!e.injectable||e.occ_amount+t>s||2===u.stat,icon:"syringe",content:t,mb:"0",height:"19px",onClick:function(){return o("chemical",{chemid:e.id,amount:t})}},n)}))]})})},t)}))})},g=function(e,t){return(0,r.createComponentVNode)(2,a.Section,{textAlign:"center",flexGrow:"1",children:(0,r.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,r.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,r.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,r.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var r=n(1),o=n(11),i=n(13),a=n(17);t.Wires=function(e,t){var n=(0,o.useBackend)(t),c=n.act,u=n.data,l=u.wires||[],s=u.status||[];return(0,r.createComponentVNode)(2,a.Window,{width:350,height:150+30*l.length,resizable:!0,children:(0,r.createComponentVNode)(2,a.Window.Content,{children:[(0,r.createComponentVNode)(2,i.Section,{children:(0,r.createComponentVNode)(2,i.LabeledList,{children:l.map((function(e){return(0,r.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:e.color_name,labelColor:e.seen_color,color:e.seen_color,buttons:(0,r.createFragment)([(0,r.createComponentVNode)(2,i.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return c("cut",{wire:e.color})}}),(0,r.createComponentVNode)(2,i.Button,{content:"Pulse",onClick:function(){return c("pulse",{wire:e.color})}}),(0,r.createComponentVNode)(2,i.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return c("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,r.createVNode)(1,"i",null,[(0,r.createTextVNode)("("),e.wire,(0,r.createTextVNode)(")")],0)},e.seen_color)}))})}),!!s.length&&(0,r.createComponentVNode)(2,i.Section,{children:s.map((function(e){return(0,r.createComponentVNode)(2,i.Box,{color:"lightgray",mt:.1,children:e},e)}))})]})})}}]);
\ No newline at end of file
+var n;n=void 0!==e?e:void 0,t.loadCSS=function(e,t,o,r){var i,a=n.document,c=a.createElement("link");if(t)i=t;else{var l=(a.body||a.getElementsByTagName("head")[0]).childNodes;i=l[l.length-1]}var u=a.styleSheets;if(r)for(var s in r)r.hasOwnProperty(s)&&c.setAttribute(s,r[s]);c.rel="stylesheet",c.href=e,c.media="only x",function p(e){if(a.body)return e();setTimeout((function(){p(e)}))}((function(){i.parentNode.insertBefore(c,t?i:i.nextSibling)}));var d=function m(e){for(var t=c.href,n=u.length;n--;)if(u[n].href===t)return e();setTimeout((function(){m(e)}))};function f(){c.addEventListener&&c.removeEventListener("load",f),c.media=o||"all"}return c.addEventListener&&c.addEventListener("load",f),c.onloadcssdefined=d,d(f),c}}).call(this,n(69))},function(e,t,n){"use strict";t.__esModule=!0,t.getRoutedComponent=void 0;var o=n(1),r=n(10),i=(n(118),n(16)),a=n(435),c=function(e,t){return function(){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:["notFound"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" was not found.")],4),"missingExport"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" is missing an export.")],4)]})})}},l=function(){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0})})};t.getRoutedComponent=function(e){var t=(0,r.selectBackend)(e),n=t.suspended,o=t.config;if(n)return l;var i,u=null==o?void 0:o["interface"];try{i=a("./"+u+".js")}catch(d){if("MODULE_NOT_FOUND"===d.code)return c("notFound",u);throw d}var s=i[u];return s||c("missingExport",u)}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWindow=void 0;var o=n(1),r=n(119),i=n(10),a=n(12),c=n(120),l=n(171),u=function(e,t){var n=e.title,u=e.width,s=void 0===u?575:u,d=e.height,f=void 0===d?700:d,p=e.resizable,m=e.theme,h=void 0===m?"ntos":m,g=e.children,v=(0,i.useBackend)(t),b=v.act,y=v.data,C=y.PC_device_theme,N=y.PC_batteryicon,V=y.PC_showbatteryicon,x=y.PC_batterypercent,_=y.PC_ntneticon,w=y.PC_apclinkicon,k=y.PC_stationtime,S=y.PC_programheaders,E=void 0===S?[]:S,B=y.PC_showexitprogram;return(0,o.createComponentVNode)(2,l.Window,{title:n,width:s,height:f,theme:h,resizable:p,children:(0,o.createVNode)(1,"div","NtosWindow",[(0,o.createVNode)(1,"div","NtosWindow__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:k}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:["ntos"===C&&"NtOS","syndicate"===C&&"Syndix"]})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[E.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,r.resolveAsset)(e.icon)})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:_&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,r.resolveAsset)(_)})}),!!V&&N&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[N&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,r.resolveAsset)(N)}),x&&x]}),w&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:(0,r.resolveAsset)(w)})}),!!B&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return b("PC_minimize")}}),!!B&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return b("PC_exit")}}),!B&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return b("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,c.refocusLayout)()}}),g],0)})};t.NtosWindow=u;u.Content=function(e){return(0,o.createVNode)(1,"div","NtosWindow__content",(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.Window.Content,Object.assign({},e))),2)}},function(e,t,n){"use strict";t.__esModule=!0,t.BlockQuote=void 0;var o=n(1),r=n(9),i=n(15);t.BlockQuote=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var o=n(1),r=n(9),i=n(418),a=n(36),c=n(15);function l(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var u=(0,a.createLogger)("ByondUi"),s=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),g=this.state.viewBox,v=function(e,t,n,o){if(0===e.length)return[];var i=(0,r.zipWith)(Math.min).apply(void 0,e),a=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(i[0]=n[0],a[0]=n[1]),o!==undefined&&(i[1]=o[0],a[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,i,a,t)}))(e)}(i,g,c,l);if(v.length>0){var b=v[0],y=v[v.length-1];v.push([g[0]+m,y[1]]),v.push([g[0]+m,-m]),v.push([-m,-m]),v.push([-m,b[1]])}var C=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},d,{children:u}))),2),s&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",s,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:a})]})},a}(o.Component);t.Collapsible=a},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(1),r=n(9),i=n(15);var a=function(e){var t=e.content,n=(e.children,e.className),a=e.color,c=e.backgroundColor,l=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["content","children","className","color","backgroundColor"]);return l.color=t?null:"transparent",l.backgroundColor=a||c,(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["ColorBox",n,(0,i.computeBoxClassName)(l)]),t||".",0,Object.assign({},(0,i.computeBoxProps)(l))))};t.ColorBox=a,a.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(1),r=n(9),i=n(15),a=n(123);function c(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props,n=t.options,r=void 0===n?[]:n,i=t.placeholder,a=r.map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(){e.setSelected(t)}},t)}));return i&&a.unshift((0,o.createVNode)(1,"div","Dropdown__menuentry",[(0,o.createTextVNode)("-- "),i,(0,o.createTextVNode)(" --")],0,{onClick:function(){e.setSelected(null)}},i)),a},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,s=t.noscroll,d=t.nochevron,f=t.width,p=t.maxHeight,m=(t.onClick,t.selected,t.disabled),h=t.placeholder,g=c(t,["color","over","noscroll","nochevron","width","maxHeight","onClick","selected","disabled","placeholder"]),v=g.className,b=c(g,["className"]),y=u?!this.state.open:this.state.open,C=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)([s?"Dropdown__menu-noscroll":"Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:f,"max-height":p}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({width:f,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,m&&"Button--disabled",v])},b,{onClick:function(){m&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected||h,0),!!d||(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,a.Icon,{name:y?"chevron-up":"chevron-down"}),2)]}))),C],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(1),r=n(125),i=n(9);function a(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=a(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=i.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,i=e.style,c=a(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},i)},c)))};t.GridColumn=l,c.defaultHooks=i.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(1),r=n(9),i=n(15);function a(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,i=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),i&&i(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e),this.props.autofocus&&(t.focus(),t.selectionStart=0,t.selectionEnd=t.value.length))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,i=this.inputRef.current;i&&!n&&o!==r&&(i.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=(e.autofocus,a(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder","autofocus"])),l=c.className,u=c.fluid,s=a(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},s,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var o=n(1),r=n(30),i=n(9),a=n(15),c=n(124),l=n(126);t.Knob=function(e){if(Byond.IS_LTE_IE8)return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,u=e.maxValue,s=e.minValue,d=e.onChange,f=e.onDrag,p=e.step,m=e.stepPixelSize,h=e.suppressFlicker,g=e.unit,v=e.value,b=e.className,y=e.style,C=e.fillValue,N=e.color,V=e.ranges,x=void 0===V?{}:V,_=e.size,w=e.bipolar,k=(e.children,e.popUpPosition),S=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:u,minValue:s,onChange:d,onDrag:f,step:p,stepPixelSize:m,suppressFlicker:h,unit:g,value:v},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,l=e.displayElement,d=e.inputElement,f=e.handleDragStart,p=(0,r.scale)(null!=C?C:c,s,u),m=(0,r.scale)(c,s,u),h=N||(0,r.keyOfMatchingRange)(null!=C?C:n,x)||"default",g=270*(m-.5);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,i.classes)(["Knob","Knob--color--"+h,w&&"Knob--bipolar",b,(0,a.computeBoxClassName)(S)]),[(0,o.createVNode)(1,"div","Knob__circle",(0,o.createVNode)(1,"div","Knob__cursorBox",(0,o.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+g+"deg)"}}),2),t&&(0,o.createVNode)(1,"div",(0,i.classes)(["Knob__popupValue",k&&"Knob__popupValue--"+k]),l,0),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,o.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,o.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((w?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),d],0,Object.assign({},(0,a.computeBoxProps)(Object.assign({style:Object.assign({"font-size":_+"rem"},y)},S)),{onMouseDown:f})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var o=n(1),r=n(170);function i(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var a=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=a;a.Item=function(e){var t=e.label,n=e.children,a=i(e,["label","children"]);return(0,o.createComponentVNode)(2,r.Flex.Item,{mx:1,children:(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},a,{children:[(0,o.createComponentVNode)(2,r.Flex.Item),(0,o.createComponentVNode)(2,r.Flex.Item,{children:n}),(0,o.createComponentVNode)(2,r.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(1),r=n(9),i=n(15),a=n(169),c=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.label,a=e.labelColor,c=void 0===a?"label":a,l=e.color,u=e.textAlign,s=e.verticalAlign,d=e.buttons,f=e.content,p=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,i.Box,{as:"td",color:c,verticalAlign:s,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),children:n?n+":":null}),(0,o.createComponentVNode)(2,i.Box,{as:"td",color:l,textAlign:u,verticalAlign:s,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:d?undefined:2,children:[f,p]}),d&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",d,0)],0)};t.LabeledListItem=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.size?(0,i.unit)(Math.max(0,e.size-1)):0;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,a.Divider),2,{colSpan:3,style:{"padding-top":t,"padding-bottom":t}}),2)};t.LabeledListDivider=u,u.defaultHooks=r.pureComponentHooks,c.Item=l,c.Divider=u},function(e,t,n){"use strict";t.__esModule=!0,t.NanoMap=void 0;var o=n(1),r=n(12),i=n(10);n(119),n(36);var a=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).state={offsetX:0,offsetY:0,transform:"none",dragging:!1,originX:null,originY:null},n.handleDragStart=function(e){document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,originX:e.screenX,originY:e.screenY}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd)},n.handleDragMove=function(e){n.setState((function(t){var o=Object.assign({},t),r=e.screenX-o.originX,i=e.screenY-o.originY;return t.dragging?(o.offsetX+=r/n.props.zoom,o.offsetY+=i/n.props.zoom,o.originX=e.screenX,o.originY=e.screenY):o.dragging=!0,o}))},n.handleDragEnd=function(e){document.body.style["pointer-events"]="auto",clearTimeout(n.timer),n.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd)},n}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=(0,i.useBackend)(this.context).config,t=this.state,n=t.offsetX,a=t.offsetY,c=this.props,l=c.children,u=c.zoom,s=(c.reset,"matrix("+u+", 0, 0, "+u+", "+n*u+", "+a*u+")"),d={width:"560px",height:"560px",overflow:"hidden",position:"relative",padding:"0px","background-image":"url("+e.map+"_nanomap_z"+e.mapZLevel+".png)","background-size":"cover","text-align":"center",transform:s};return(0,o.createComponentVNode)(2,r.Box,{className:"NanoMap__container",children:(0,o.createComponentVNode)(2,r.Box,{style:d,textAlign:"center",onMouseDown:this.handleDragStart,children:(0,o.createComponentVNode)(2,r.Box,{children:l})})})},a}(o.Component);t.NanoMap=a;a.Marker=function(e,t){var n=e.x,i=e.y,a=e.zoom,c=e.icon,l=e.tooltip,u=e.color,s=e.onClick,d=4*n-5,f=4*i-4;return(0,o.createComponentVNode)(2,r.Box,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:f+"px",left:d+"px",onMouseDown:s,children:[(0,o.createComponentVNode)(2,r.Icon,{name:c,color:u,fontSize:"4px"}),(0,o.createComponentVNode)(2,r.Tooltip,{content:l,scale:a})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var o=n(1),r=n(9),i=n(15),a=n(168);t.Modal=function(e){var t,n=e.className,c=e.children,l=e.onEnter,u=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","children","onEnter"]);return l&&(t=function(e){13===(e.which||e.keyCode)&&l(e)}),(0,o.createComponentVNode)(2,a.Dimmer,{onKeyDown:t,children:(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Modal",n,(0,i.computeBoxClassName)(u)]),c,0,Object.assign({},(0,i.computeBoxProps)(u))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(1),r=n(9),i=n(15);var a=function(e){var t=e.className,n=e.color,a=e.info,c=(e.warning,e.success),l=e.danger,u=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","color","info","warning","success","danger"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Box,Object.assign({className:(0,r.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,a&&"NoticeBox--type--info",c&&"NoticeBox--type--success",l&&"NoticeBox--type--danger",t])},u)))};t.NoticeBox=a,a.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(1),r=n(30),i=n(9),a=n(15);var c=function(e){var t=e.className,n=e.value,c=e.minValue,l=void 0===c?0:c,u=e.maxValue,s=void 0===u?1:u,d=e.color,f=e.ranges,p=void 0===f?{}:f,m=e.children,h=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","value","minValue","maxValue","color","ranges","children"]),g=(0,r.scale)(n,l,s),v=m!==undefined,b=d||(0,r.keyOfMatchingRange)(n,p)||"default";return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,i.classes)(["ProgressBar","ProgressBar--color--"+b,t,(0,a.computeBoxClassName)(h)]),[(0,o.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,r.clamp01)(g)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",v?m:(0,r.toFixed)(100*g)+"%",0)],4,Object.assign({},(0,a.computeBoxProps)(h))))};t.ProgressBar=c,c.defaultHooks=i.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(1),r=n(9),i=n(15);var a=function(e){var t=e.className,n=e.title,a=e.level,c=void 0===a?1:a,l=e.buttons,u=e.fill,s=e.stretchContents,d=e.noTopPadding,f=e.children,p=e.scrollable,m=e.flexGrow,h=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","fill","stretchContents","noTopPadding","children","scrollable","flexGrow"]),g=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),v=!(0,r.isFalsy)(f);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Section","Section--level--"+c,u&&"Section--fill",p&&"Section--scrollable",m&&"Section--flex",t].concat((0,i.computeBoxClassName)(h))),[g&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),v&&(0,o.createVNode)(1,"div",(0,r.classes)(["Section__content",!!s&&"Section__content--stretchContents",!!d&&"Section__content--noTopPadding"]),f,0)],0,Object.assign({},(0,i.computeBoxProps)(h))))};t.Section=a,a.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Slider=void 0;var o=n(1),r=n(30),i=n(9),a=n(15),c=n(124),l=n(126);t.Slider=function(e){if(Byond.IS_LTE_IE8)return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,u=e.maxValue,s=e.minValue,d=e.onChange,f=e.onDrag,p=e.step,m=e.stepPixelSize,h=e.suppressFlicker,g=e.unit,v=e.value,b=e.className,y=e.fillValue,C=e.color,N=e.ranges,V=void 0===N?{}:N,x=e.children,_=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),w=x!==undefined;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.DraggableControl,Object.assign({dragMatrix:[1,0]},{animated:t,format:n,maxValue:u,minValue:s,onChange:d,onDrag:f,step:p,stepPixelSize:m,suppressFlicker:h,unit:g,value:v},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,l=e.displayElement,d=e.inputElement,f=e.handleDragStart,p=y!==undefined&&null!==y,m=((0,r.scale)(n,s,u),(0,r.scale)(null!=y?y:c,s,u)),h=(0,r.scale)(c,s,u),g=C||(0,r.keyOfMatchingRange)(null!=y?y:n,V)||"default";return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,i.classes)(["Slider","ProgressBar","ProgressBar--color--"+g,b,(0,a.computeBoxClassName)(_)]),[(0,o.createVNode)(1,"div",(0,i.classes)(["ProgressBar__fill",p&&"ProgressBar__fill--animated"]),null,1,{style:{width:100*(0,r.clamp01)(m)+"%",opacity:.4}}),(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,r.clamp01)(Math.min(m,h))+"%"}}),(0,o.createVNode)(1,"div","Slider__cursorOffset",[(0,o.createVNode)(1,"div","Slider__cursor"),(0,o.createVNode)(1,"div","Slider__pointer"),t&&(0,o.createVNode)(1,"div","Slider__popupValue",l,0)],0,{style:{width:100*(0,r.clamp01)(h)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",w?x:l,0),d],0,Object.assign({},(0,a.computeBoxProps)(_),{onMouseDown:f})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var o=n(1),r=n(9),i=n(15),a=n(122);function c(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e.className,n=e.vertical,a=e.children,l=c(e,["className","vertical","children"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",t,(0,i.computeBoxClassName)(l)]),(0,o.createVNode)(1,"div","Tabs__tabBox",a,0),2,Object.assign({},(0,i.computeBoxProps)(l))))};t.Tabs=l;l.Tab=function(e){var t=e.className,n=e.selected,i=e.altSelection,l=c(e,["className","selected","altSelection"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",n&&"Tabs__tab--selected",i&&n&&"Tabs__tab--altSelection",t]),selected:!i&&n,color:"transparent"},l)))}},function(e,t,n){var o={"./AiRestorer.js":436,"./BodyScanner.js":437,"./CameraConsole.js":172,"./ChemDispenser.js":438,"./ChemMaster.js":442,"./CloningConsole.js":443,"./CrewMonitor.js":174,"./Cryo.js":444,"./DNAModifier.js":445,"./DisposalBin.js":446,"./MedicalRecords.js":447,"./NtosCameraConsole.js":452,"./NtosCrewMonitor.js":453,"./OperatingComputer.js":454,"./ResleevingConsole.js":455,"./ResleevingPod.js":456,"./Sleeper.js":457,"./VorePanel.js":458,"./Wires.js":459};function r(e){var t=i(e);return n(t)}function i(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=435},function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var o=n(1),r=n(10),i=n(12),a=n(16);t.AiRestorer=function(){return(0,o.createComponentVNode)(2,a.Window,{width:370,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.AI_present,u=c.error,s=c.name,d=c.laws,f=c.isDead,p=c.restoring,m=c.health,h=c.ejectable;return(0,o.createFragment)([u&&(0,o.createComponentVNode)(2,i.NoticeBox,{textAlign:"center",children:u}),!!h&&(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"eject",content:l?s:"----------",disabled:!l,onClick:function(){return a("PRG_eject")}}),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:h?"System Status":s,buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:f?"bad":"good",children:f?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return a("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,i.Section,{title:"Laws",level:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.BodyScanner=void 0;var o=n(1),r=n(30),i=n(10),a=n(12),c=n(16),l=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],u=[["hasBorer","bad",function(e){return"Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."}],["hasVirus","bad",function(e){return"Viral pathogen detected in blood stream."}],["blind","average",function(e){return"Cataracts detected."}],["colourblind","average",function(e){return"Photoreceptor abnormalities detected."}],["nearsighted","average",function(e){return"Retinal misalignment detected."}],["humanPrey","average",function(e){return"Foreign Humanoid(s) detected: "+e.humanPrey}],["livingPrey","average",function(e){return"Foreign Creature(s) detected: "+e.livingPrey}],["objectPrey","average",function(e){return"Foreign Object(s) detected: "+e.objectPrey}]],s=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],d={average:[.25,.5],bad:[.5,Infinity]},f=function(e,t){for(var n=[],o=0;o0?e.reduce((function(e,t){return null===e?t:(0,o.createFragment)([e,!!t&&(0,o.createComponentVNode)(2,a.Box,{children:t})],0)})):null},m=function(e){if(e>100){if(e<300)return"mild infection";if(e<400)return"mild infection+";if(e<500)return"mild infection++";if(e<700)return"acute infection";if(e<800)return"acute infection+";if(e<900)return"acute infection++";if(e>=900)return"septic"}return""};t.BodyScanner=function(e,t){var n=(0,i.useBackend)(t).data,r=n.occupied,a=n.occupant,l=void 0===a?{}:a,u=r?(0,o.createComponentVNode)(2,h,{occupant:l}):(0,o.createComponentVNode)(2,x);return(0,o.createComponentVNode)(2,c.Window,{width:690,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:u})})};var h=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,g,{occupant:t}),(0,o.createComponentVNode)(2,v,{occupant:t}),(0,o.createComponentVNode)(2,b,{occupant:t}),(0,o.createComponentVNode)(2,y,{occupant:t}),(0,o.createComponentVNode)(2,N,{organs:t.extOrgan}),(0,o.createComponentVNode)(2,V,{organs:t.intOrgan})]})},g=function(e,t){var n=(0,i.useBackend)(t),c=n.act,u=n.data,s=u.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"user-slash",onClick:function(){return c("ejectify")},children:"Eject"}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",onClick:function(){return c("print_p")},children:"Print Report"})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[s.stat][0],children:l[s.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:(0,r.round)(s.bodyTempC,0)}),"\xb0C,\xa0",(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:(0,r.round)(s.bodyTempF,0)}),"\xb0F"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Volume",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:(0,r.round)(s.blood.volume,0)})," units\xa0(",(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:(0,r.round)(s.blood.percent,0)}),"%)"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Weight",children:(0,r.round)(u.occupant.weight)+"lbs, "+(0,r.round)(u.occupant.weight/2.20463)+"kgs"})]})})},v=function(e){var t=e.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Blood Reagents",children:t.reagents?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Reagent"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Amount"})]}),t.reagents.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[e.amount," Units ",e.overdose?(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"OVERDOSING"}):null]})]},e.name)}))]}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"No Blood Reagents Detected"})}),(0,o.createComponentVNode)(2,a.Section,{title:"Stomach Reagents",children:t.ingested?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Reagent"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Amount"})]}),t.ingested.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[e.amount," Units ",e.overdose?(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"OVERDOSING"}):null]})]},e.name)}))]}):(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"No Stomach Reagents Detected"})})],4)},b=function(e){var t=e.occupant,n=t.hasBorer||t.blind||t.colourblind||t.nearsighted||t.hasVirus;return(n=n||t.humanPrey||t.livingPrey||t.objectPrey)?(0,o.createComponentVNode)(2,a.Section,{title:"Abnormalities",children:u.map((function(e,n){if(t[e[0]])return(0,o.createComponentVNode)(2,a.Box,{color:e[1],bold:"bad"===e[1],children:e[2](t)})}))}):(0,o.createComponentVNode)(2,a.Section,{title:"Abnormalities",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No abnormalities found."})})},y=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Damage",children:(0,o.createComponentVNode)(2,a.Table,{children:f(s,(function(e,n,r){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{color:"label",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[e[0],":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:!!n&&n[0]+":"})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,C,{value:t[e[1]],marginBottom:r0&&"0.5rem",value:e.totalLoss/100,ranges:d,children:[(0,o.createComponentVNode)(2,a.Box,{float:"left",display:"inline",children:[!!e.bruteLoss&&(0,o.createComponentVNode)(2,a.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"bone"}),(0,r.round)(e.bruteLoss,0),"\xa0",(0,o.createComponentVNode)(2,a.Tooltip,{position:"top",content:"Brute damage"})]}),!!e.fireLoss&&(0,o.createComponentVNode)(2,a.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"fire"}),(0,r.round)(e.fireLoss,0),(0,o.createComponentVNode)(2,a.Tooltip,{position:"top",content:"Burn damage"})]})]}),(0,o.createComponentVNode)(2,a.Box,{display:"inline",children:(0,r.round)(e.totalLoss,0)})]})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:"33%",children:[(0,o.createComponentVNode)(2,a.Box,{color:"average",display:"inline",children:p([e.internalBleeding&&"Internal bleeding",!!e.status.bleeding&&"External bleeding",e.lungRuptured&&"Ruptured lung",e.destroyed&&"Destroyed",!!e.status.broken&&e.status.broken,m(e.germ_level),!!e.open&&"Open incision"])}),(0,o.createComponentVNode)(2,a.Box,{display:"inline",children:[p([!!e.status.splinted&&"Splinted",!!e.status.robotic&&"Robotic",!!e.status.dead&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"})]),p(e.implants.map((function(e){return e.known?e.name:"Unknown object"})))]})]})]},t)}))]})})},V=function(e){return 0===e.organs.length?(0,o.createComponentVNode)(2,a.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"N/A"})}):(0,o.createComponentVNode)(2,a.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Damage"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:"Injuries"})]}),e.organs.map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{textTransform:"capitalize",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"33%",children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:e.maxHealth,value:e.damage/100,mt:t>0&&"0.5rem",ranges:d,children:(0,r.round)(e.damage,0)})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:"33%",children:[(0,o.createComponentVNode)(2,a.Box,{color:"average",display:"inline",children:p([m(e.germ_level)])}),(0,o.createComponentVNode)(2,a.Box,{display:"inline",children:p([1===e.robotic&&"Robotic",2===e.robotic&&"Assisted",!!e.dead&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"})])})]})]},t)}))]})})},x=function(){return(0,o.createComponentVNode)(2,a.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(1),r=n(10),i=n(12),a=n(173),c=n(16),l=[5,10,20,30,40],u=[1,5,10];t.ChemDispenser=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:390,height:655,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,f)]})})};var s=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data.amount;return(0,o.createComponentVNode)(2,i.Section,{title:"Settings",flex:"content",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"row",wrap:"wrap",spacing:"1",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",children:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",selected:c===e,content:e,m:"0",width:"100%",onClick:function(){return a("amount",{amount:e})}})},t)}))})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Custom Amount",children:(0,o.createComponentVNode)(2,i.Slider,{step:1,stepPixelSize:5,value:c,minValue:1,maxValue:120,onDrag:function(e,t){return a("amount",{amount:t})}})})]})})},d=function(e,t){for(var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.chemicals,u=void 0===l?[]:l,s=[],d=0;d<(u.length+1)%3;d++)s.push(!0);return(0,o.createComponentVNode)(2,i.Section,{title:c.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:"1",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[u.map((function(e,t){return(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"40%",height:"20px",children:(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",width:"100%",height:"100%",align:"flex-start",content:e.title+" ("+e.amount+")",onClick:function(){return a("dispense",{reagent:e.id})}})},t)})),s.map((function(e,t){return(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,s=l.isBeakerLoaded,d=l.beakerCurrentVolume,f=l.beakerMaxVolume,p=l.beakerContents,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",flex:"content",minHeight:"25%",buttons:(0,o.createComponentVNode)(2,i.Box,{children:[!!s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:2,children:[d," / ",f," units"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("ejectBeaker")}})]}),children:(0,o.createComponentVNode)(2,a.BeakerContents,{beakerLoaded:s,beakerContents:m,buttons:function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){return c("remove",{reagent:e.id,amount:-1})}}),u.map((function(t,n){return(0,o.createComponentVNode)(2,i.Button,{content:t,onClick:function(){return c("remove",{reagent:e.id,amount:t})}},n)})),(0,o.createComponentVNode)(2,i.Button,{content:"ALL",onClick:function(){return c("remove",{reagent:e.id,amount:e.volume})}})],0)}})})}},function(e,t,n){"use strict";e.exports=n(440)()},function(e,t,n){"use strict";var o=n(441);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,a){if(a!==o){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(1),r=n(10),i=n(12),a=n(16),c=n(173),l=n(68),u=[1,5,10];t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data,i=n.condi,c=n.beaker,u=n.beaker_reagents,p=void 0===u?[]:u,m=n.buffer_reagents,g=void 0===m?[]:m,v=n.mode;return(0,o.createComponentVNode)(2,a.Window,{width:575,height:500,resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal),(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s,{beaker:c,beakerReagents:p,bufferNonEmpty:g.length>0}),(0,o.createComponentVNode)(2,d,{mode:v,bufferReagents:g}),(0,o.createComponentVNode)(2,f,{isCondiment:i,bufferNonEmpty:g.length>0}),(0,o.createComponentVNode)(2,h)]})]})};var s=function(e,t){var n=(0,r.useBackend)(t).act,a=e.beaker,s=e.beakerReagents,d=e.bufferNonEmpty;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:d?(0,o.createComponentVNode)(2,i.Button.Confirm,{icon:"eject",disabled:!a,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}):(0,o.createComponentVNode)(2,i.Button,{icon:"eject",disabled:!a,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}),children:a?(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:!0,beakerContents:s,buttons:function(e,r){return(0,o.createComponentVNode)(2,i.Box,{mb:r0?(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:!0,beakerContents:d,buttons:function(e,r){return(0,o.createComponentVNode)(2,i.Box,{mb:r0?l.desc:"N/A"}),l.blood_type&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood type",children:l.blood_type}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:l.blood_dna})],4),!c.condi&&(0,o.createComponentVNode)(2,i.Button,{icon:c.printing?"spinner":"print",disabled:c.printing,iconSpin:!!c.printing,ml:"0.5rem",content:"Print",onClick:function(){return a("print",{idx:l.idx,beaker:e.args.beaker})}})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.CloningConsole=void 0;var o=n(1),r=n(30),i=n(10),a=n(12),c=n(55),l=n(68),u=n(16),s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,l=n.data,u=e.args,s=u.activerecord,d=u.realname,f=u.health,p=u.unidentity,m=u.strucenzymes,h=f.split(" - ");return(0,o.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Records of "+d,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:h.length>1?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.oxy,display:"inline",children:h[0]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.toxin,display:"inline",children:h[2]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.brute,display:"inline",children:h[3]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,a.Box,{color:c.COLORS.damageType.burn,display:"inline",children:h[1]})],4):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Unknown"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"UI",className:"LabeledList__breakContents",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"SE",className:"LabeledList__breakContents",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk",children:[(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!l.disk,icon:"arrow-circle-down",content:"Import",onClick:function(){return r("disk",{option:"load"})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI",onClick:function(){return r("disk",{option:"save",savetype:"ui"})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI and UE",onClick:function(){return r("disk",{option:"save",savetype:"ue"})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export SE",onClick:function(){return r("disk",{option:"save",savetype:"se"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:!l.podready,icon:"user-plus",content:"Clone",onClick:function(){return r("clone",{ref:s})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Delete",onClick:function(){return r("del_rec")}})]})]})})};t.CloningConsole=function(e,t){var n=(0,i.useBackend)(t);n.act,n.data.menu;return(0,l.modalRegisterBodyOverride)("view_rec",s),(0,o.createComponentVNode)(2,u.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,o.createComponentVNode)(2,u.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,g),(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,a.Section,{noTopPadding:!0,flexGrow:"1",children:(0,o.createComponentVNode)(2,f)})]})]})};var d=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data.menu;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,icon:"home",onClick:function(){return r("menu",{num:1})},children:"Main"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,icon:"folder",onClick:function(){return r("menu",{num:2})},children:"Records"})]})},f=function(e,t){var n,r=(0,i.useBackend)(t).data.menu;return 1===r?n=(0,o.createComponentVNode)(2,p):2===r&&(n=(0,o.createComponentVNode)(2,m)),n},p=function(e,t){var n=(0,i.useBackend)(t),c=n.act,l=n.data,u=l.loading,s=l.scantemp,d=l.occupant,f=l.locked,p=l.can_brainscan,m=l.scan_mode,h=l.numberofpods,g=l.pods,v=l.selected_pod,b=f&&!!d;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Scanner",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{display:"inline",color:"label",children:"Scanner Lock:\xa0"}),(0,o.createComponentVNode)(2,a.Button,{disabled:!d,selected:b,icon:b?"toggle-on":"toggle-off",content:b?"Engaged":"Disengaged",onClick:function(){return c("lock")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:b||!d,icon:"user-slash",content:"Eject Occupant",onClick:function(){return c("eject")}})],4),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:u?(0,o.createComponentVNode)(2,a.Box,{color:"average",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0}),"\xa0 Scanning..."]}):(0,o.createComponentVNode)(2,a.Box,{color:s.color,children:s.text})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"brain":"male",content:m?"Brain":"Body",onClick:function(){return c("toggle_mode")}})})]}),(0,o.createComponentVNode)(2,a.Button,{disabled:!d||u,icon:"user",content:"Scan Occupant",mt:"0.5rem",mb:"0",onClick:function(){return c("scan")}})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Pods",level:"2",children:h?g.map((function(e,t){var n;return n="cloning"===e.status?(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,r.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,o.createComponentVNode)(2,a.Button,{selected:v===e.pod,icon:v===e.pod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return c("selectpod",{ref:e.pod})}}),(0,o.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,a.Box,{color:"label",children:["Pod #",t+1]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No pods detected. Unable to clone."})})],4)},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data.records;return c.length?(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.realname,onClick:function(){return r("view_rec",{ref:e.record})}},t)}))}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No records found."]})})},h=function(e,t){var n,r=(0,i.useBackend)(t),c=r.act,l=r.data.temp;if(l&&l.text&&!(l.text.length<=0)){var u=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.NoticeBox,Object.assign({},u,{children:[(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,a.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,o.createComponentVNode)(2,a.Box,{clear:"both"})]})))}},g=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data,l=c.scanner,u=c.numberofpods,s=c.autoallowed,d=c.autoprocess,f=c.disk;return(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createFragment)([!!s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{display:"inline",color:"label",children:"Auto-processing:\xa0"}),(0,o.createComponentVNode)(2,a.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"Enabled":"Disabled",onClick:function(){return r("autoprocess",{on:d?0:1})}})],4),(0,o.createComponentVNode)(2,a.Button,{disabled:!f,icon:"eject",content:"Eject Disk",onClick:function(){return r("disk",{option:"eject"})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanner",children:l?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Connected"}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not connected!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pods",children:u?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[u," connected"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(1),r=n(10),i=n(12),a=n(16),c=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]];t.Cryo=function(e,t){return(0,o.createComponentVNode)(2,a.Window,{width:520,height:470,resizeable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{className:"Layout__content--flexColumn",children:(0,o.createComponentVNode)(2,u)})})};var u=function(e,t){var n=(0,r.useBackend)(t),a=n.act,u=n.data,d=u.isOperating,f=u.hasOccupant,p=u.occupant,m=void 0===p?[]:p,h=u.cellTemperature,g=u.cellTemperatureStatus,v=u.isBeakerLoaded;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Occupant",flexGrow:"1",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"user-slash",onClick:function(){return a("ejectOccupant")},disabled:!f,children:"Eject"}),children:f?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Occupant",children:m.name||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:m.health,max:m.maxHealth,value:m.health/m.maxHealth,color:m.health>0?"good":"average",children:(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m.health)})})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:l[m.stat][0],children:l[m.stat][1]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m.bodyTemperature)})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Divider),c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:m[e.type]/100,ranges:{bad:[.01,Infinity]},children:(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(m[e.type])})})},e.id)}))]}):(0,o.createComponentVNode)(2,i.Flex,{height:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})}),(0,o.createComponentVNode)(2,i.Section,{title:"Cell",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",onClick:function(){return a("ejectBeaker")},disabled:!v,children:"Eject Beaker"}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,i.Button,{icon:"power-off",onClick:function(){return a(d?"switchOff":"switchOn")},selected:d,children:d?"On":"Off"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",color:g,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:h})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",children:(0,o.createComponentVNode)(2,s)})]})})],4)},s=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data),c=a.isBeakerLoaded,l=a.beakerLabel,u=a.beakerVolume;return c?(0,o.createFragment)([l||(0,o.createComponentVNode)(2,i.Box,{color:"average",children:"No label"}),(0,o.createComponentVNode)(2,i.Box,{color:!u&&"bad",children:u?(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:u,format:function(e){return Math.round(e)+" units remaining"}}):"Beaker is empty"})],0):(0,o.createComponentVNode)(2,i.Box,{color:"average",children:"No beaker loaded"})}},function(e,t,n){"use strict";t.__esModule=!0,t.DNAModifier=void 0;var o=n(1),r=n(10),i=n(12),a=n(16),c=n(68),l=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],u=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],s=[5,10,20,30,50];t.DNAModifier=function(e,t){var n,i=(0,r.useBackend)(t),l=(i.act,i.data),u=l.irradiating,s=l.dnaBlockSize,p=l.occupant;return t.dnaBlockSize=s,t.isDNAInvalid=!p.isViableSubject||!p.uniqueIdentity||!p.structuralEnzymes,u&&(n=(0,o.createComponentVNode)(2,C,{duration:u})),(0,o.createComponentVNode)(2,a.Window,{width:660,height:700,resizable:!0,children:[(0,o.createComponentVNode)(2,c.ComplexModal),n,(0,o.createComponentVNode)(2,a.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,f)]})]})};var d=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,u=c.locked,s=c.hasOccupant,d=c.occupant;return(0,o.createComponentVNode)(2,i.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{color:"label",display:"inline",mr:"0.5rem",children:"Door Lock:"}),(0,o.createComponentVNode)(2,i.Button,{disabled:!s,selected:u,icon:u?"toggle-on":"toggle-off",content:u?"Engaged":"Disengaged",onClick:function(){return a("toggleLock")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!s||u,icon:"user-slash",content:"Eject",onClick:function(){return a("ejectOccupant")}})],4),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:d.minHealth,max:d.maxHealth,value:d.health/d.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:l[d.stat][0],children:l[d.stat][1]}),(0,o.createComponentVNode)(2,i.LabeledList.Divider)]})}),t.isDNAInvalid?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"exclamation-circle"}),"\xa0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:"100",value:d.radiationLevel/100,color:"average"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unique Enzymes",children:c.occupant.uniqueEnzymes?c.occupant.uniqueEnzymes:(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"exclamation-circle"}),"\xa0 Unknown"]})})]})],0):(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"Cell unoccupied."})})},f=function(e,t){var n,a=(0,r.useBackend)(t),c=a.act,l=a.data,s=l.selectedMenuKey,d=l.hasOccupant;l.occupant;return d?t.isDNAInvalid?(0,o.createComponentVNode)(2,i.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,i.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No operation possible on this subject."]})})}):("ui"===s?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,h)],4):"se"===s?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,h)],4):"buffer"===s?n=(0,o.createComponentVNode)(2,g):"rejuvenators"===s&&(n=(0,o.createComponentVNode)(2,y)),(0,o.createComponentVNode)(2,i.Section,{flexGrow:"1",children:[(0,o.createComponentVNode)(2,i.Tabs,{children:u.map((function(e,t){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:s===e[0],onClick:function(){return c("selectMenuKey",{key:e[0]})},children:[(0,o.createComponentVNode)(2,i.Icon,{name:e[2]}),e[1]]},t)}))}),n]})):(0,o.createComponentVNode)(2,i.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,i.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant in DNA modifier."]})})})},p=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.selectedUIBlock,u=c.selectedUISubBlock,s=c.selectedUITarget,d=c.occupant;return(0,o.createComponentVNode)(2,i.Section,{title:"Modify Unique Identifier",level:"2",children:[(0,o.createComponentVNode)(2,N,{dnaString:d.uniqueIdentity,selectedBlock:l,selectedSubblock:u,blockSize:t.dnaBlockSize,action:"selectUIBlock"}),(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"15",stepPixelSize:"20",value:s,format:function(e){return e.toString(16).toUpperCase()},ml:"0",onChange:function(e,t){return a("changeUITarget",{value:t})}})})}),(0,o.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){return a("pulseUIRadiation")}})]})},m=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.selectedSEBlock,u=c.selectedSESubBlock,s=c.occupant;return(0,o.createComponentVNode)(2,i.Section,{title:"Modify Structural Enzymes",level:"2",children:[(0,o.createComponentVNode)(2,N,{dnaString:s.structuralEnzymes,selectedBlock:l,selectedSubblock:u,blockSize:t.dnaBlockSize,action:"selectSEBlock"}),(0,o.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){return a("pulseSERadiation")}})]})},h=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.radiationIntensity,u=c.radiationDuration;return(0,o.createComponentVNode)(2,i.Section,{title:"Radiation Emitter",level:"2",children:[(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Intensity",children:(0,o.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"10",stepPixelSize:"20",value:l,popUpPosition:"right",ml:"0",onChange:function(e,t){return a("radiationIntensity",{value:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Duration",children:(0,o.createComponentVNode)(2,i.Knob,{minValue:"1",maxValue:"20",stepPixelSize:"10",unit:"s",value:u,popUpPosition:"right",ml:"0",onChange:function(e,t){return a("radiationDuration",{value:t})}})})]}),(0,o.createComponentVNode)(2,i.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-right",mt:"0.5rem",onClick:function(){return a("pulseRadiation")}})]})},g=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data.buffers.map((function(e,t){return(0,o.createComponentVNode)(2,v,{id:t+1,name:"Buffer "+(t+1),buffer:e},t)})));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Buffers",level:"2",children:a}),(0,o.createComponentVNode)(2,b)],4)},v=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=e.id,u=e.name,s=e.buffer,d=c.isInjectorReady,f=u+(s.data?" - "+s.label:"");return(0,o.createComponentVNode)(2,i.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,i.Section,{title:f,level:"3",mx:"0",lineHeight:"18px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button.Confirm,{disabled:!s.data,icon:"trash",content:"Clear",onClick:function(){return a("bufferOption",{option:"clear",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!s.data,icon:"pen",content:"Rename",onClick:function(){return a("bufferOption",{option:"changeLabel",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!s.data||!c.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-left",onClick:function(){return a("bufferOption",{option:"saveDisk",id:l})}})],4),children:[(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Write",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUI",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){return a("bufferOption",{option:"saveUIAndUE",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){return a("bufferOption",{option:"saveSE",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!c.hasDisk||!c.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){return a("bufferOption",{option:"loadDisk",id:l})}})]}),!!s.data&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Subject",children:s.owner||(0,o.createComponentVNode)(2,i.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Data Type",children:["ui"===s.type?"Unique Identifiers":"Structural Enzymes",!!s.ue&&" and Unique Enzymes"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transfer to",children:[(0,o.createComponentVNode)(2,i.Button,{disabled:!d,icon:d?"syringe":"spinner",iconSpin:!d,content:"Injector",mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:l})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!d,icon:d?"syringe":"spinner",iconSpin:!d,content:"Block Injector",mb:"0",onClick:function(){return a("bufferOption",{option:"createInjector",id:l,block:1})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){return a("bufferOption",{option:"transfer",id:l})}})]})],4)]}),!s.data&&(0,o.createComponentVNode)(2,i.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},b=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.hasDisk,u=c.disk;return(0,o.createComponentVNode)(2,i.Section,{title:"Data Disk",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button.Confirm,{disabled:!l||!u.data,icon:"trash",content:"Wipe",onClick:function(){return a("wipeDisk")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return a("ejectDisk")}})],4),children:l?u.data?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Label",children:u.label?u.label:"No label"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Subject",children:u.owner?u.owner:(0,o.createComponentVNode)(2,i.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Data Type",children:["ui"===u.type?"Unique Identifiers":"Structural Enzymes",!!u.ue&&" and Unique Enzymes"]})]}):(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"Disk is blank."}):(0,o.createComponentVNode)(2,i.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"save-o",size:"4"}),(0,o.createVNode)(1,"br"),"No disk inserted."]})})},y=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.isBeakerLoaded,u=c.beakerVolume,d=c.beakerLabel;return(0,o.createComponentVNode)(2,i.Section,{title:"Rejuvenators and Beaker",level:"2",buttons:(0,o.createComponentVNode)(2,i.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return a("ejectBeaker")}}),children:l?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Inject",children:[s.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{disabled:e>u,icon:"syringe",content:e,onClick:function(){return a("injectRejuvenators",{amount:e})}},t)})),(0,o.createComponentVNode)(2,i.Button,{disabled:u<=0,icon:"syringe",content:"All",onClick:function(){return a("injectRejuvenators",{amount:u})}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",children:[(0,o.createComponentVNode)(2,i.Box,{mb:"0.5rem",children:d||"No label"}),u?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:[u," unit",1===u?"":"s"," remaining"]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Empty"})]})]}):(0,o.createComponentVNode)(2,i.Box,{color:"label",textAlign:"center",my:"25%",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"exclamation-triangle",size:"4"}),(0,o.createVNode)(1,"br"),"No beaker loaded."]})})},C=function(e,t){return(0,o.createComponentVNode)(2,i.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"spinner",size:"5",spin:!0}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,i.Box,{color:"average",children:(0,o.createVNode)(1,"h1",null,[(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"}),(0,o.createTextVNode)("\xa0Irradiating occupant\xa0"),(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})],4)}),(0,o.createComponentVNode)(2,i.Box,{color:"label",children:(0,o.createVNode)(1,"h3",null,[(0,o.createTextVNode)("For "),e.duration,(0,o.createTextVNode)(" second"),1===e.duration?"":"s"],0)})]})},N=function(e,t){for(var n=(0,r.useBackend)(t),a=n.act,c=(n.data,e.dnaString),l=e.selectedBlock,u=e.selectedSubblock,s=e.blockSize,d=e.action,f=c.split(""),p=[],m=function(e){for(var t=e/s+1,n=[],r=function(r){var c=r+1;n.push((0,o.createComponentVNode)(2,i.Button,{selected:l===t&&u===c,content:f[e+r],mb:"0",onClick:function(){return a(d,{block:t,subblock:c})}}))},c=0;ct.name?1:-1})),c.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:e.name,mb:"0.5rem",onClick:function(){return a("vir",{vir:e.D})}}),(0,o.createVNode)(1,"br")],4,t)}))},b=function(e,t){var n=(0,r.useBackend)(t).data.medbots;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"There are no Medbots."}):n.map((function(e,t){return(0,o.createComponentVNode)(2,i.Collapsible,{open:!0,title:e.name,children:(0,o.createComponentVNode)(2,i.Box,{px:"0.5rem",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Location",children:[e.area||"Unknown"," (",e.x,", ",e.y,")"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:e.on?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"Online"}),(0,o.createComponentVNode)(2,i.Box,{mt:"0.5rem",children:e.use_beaker?"Reservoir: "+e.total_volume+"/"+e.maximum_volume:"Using internal synthesizer."})],4):(0,o.createComponentVNode)(2,i.Box,{color:"average",children:"Offline"})})]})})},t)}))},y=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data.screen;return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:2===c,onClick:function(){return a("screen",{screen:2})},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"list"}),"List Records"]}),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:5===c,onClick:function(){return a("screen",{screen:5})},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"database"}),"Virus Database"]}),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:6===c,onClick:function(){return a("screen",{screen:6})},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"plus-square"}),"Medbot Tracking"]}),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:3===c,onClick:function(){return a("screen",{screen:3})},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"wrench"}),"Record Maintenance"]})]})};(0,a.modalRegisterBodyOverride)("virus",(function(e,t){var n=(0,r.useBackend)(t).act,a=e.args;return(0,o.createComponentVNode)(2,i.Section,{level:2,m:"-1rem",title:a.name||"Virus",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"red",onClick:function(){return n("modal_close")}}),children:(0,o.createComponentVNode)(2,i.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:[a.spread_text," Transmission"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible cure",children:a.antigen}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Rate of Progression",children:a.rate}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Antibiotic Resistance",children:[a.resistance,"%"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Species Affected",children:a.species}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Symptoms",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:a.symptoms.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.stage+". "+e.name,children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",children:"Strength:"})," ",e.strength,"\xa0",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",children:"Aggressiveness:"})," ",e.aggressiveness]},e.stage)}))})})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.LoginInfo=void 0;var o=n(1),r=n(10),i=n(12);t.LoginInfo=function(e,t){var n=(0,r.useBackend)(t),a=n.act,c=n.data,l=c.authenticated,u=c.rank;if(c)return(0,o.createComponentVNode)(2,i.NoticeBox,{info:!0,children:[(0,o.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:["Logged in as: ",l," (",u,")"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"sign-out-alt",content:"Logout and Eject ID",color:"good",float:"right",onClick:function(){return a("logout")}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LoginScreen=void 0;var o=n(1),r=n(10),i=n(12),a=n(450);t.LoginScreen=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,u=l.scan,s=l.isAI,d=l.isRobot;return(0,o.createComponentVNode)(2,a.FullscreenNotice,{title:"Welcome",children:[(0,o.createComponentVNode)(2,i.Box,{fontSize:"1.5rem",bold:!0,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,o.createComponentVNode)(2,i.Box,{color:"label",my:"1rem",children:["ID:",(0,o.createComponentVNode)(2,i.Button,{icon:"id-card",content:u||"----------",ml:"0.5rem",onClick:function(){return c("scan")}})]}),(0,o.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",disabled:!u,content:"Login",onClick:function(){return c("login",{login_type:1})}}),!!s&&(0,o.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){return c("login",{login_type:2})}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){return c("login",{login_type:3})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.FullscreenNotice=void 0;var o=n(1),r=n(12);t.FullscreenNotice=function(e,t){var n=e.children,i=e.title,a=void 0===i?"Welcome":i;return(0,o.createComponentVNode)(2,r.Section,{title:a,height:"100%",stretchContents:!0,children:(0,o.createComponentVNode)(2,r.Flex,{height:"100%",align:"center",justify:"center",children:(0,o.createComponentVNode)(2,r.Flex.Item,{textAlign:"center",mt:"-2rem",children:n})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TemporaryNotice=void 0;var o=n(1),r=n(10),i=n(12);t.TemporaryNotice=function(e,t){var n,a=(0,r.useBackend)(t),c=a.act,l=a.data.temp;if(l){var u=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.NoticeBox,Object.assign({},u,{children:[(0,o.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,i.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]})))}}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCameraConsole=void 0;var o=n(1),r=n(16),i=n(172);t.NtosCameraConsole=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:870,height:708,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i.CameraConsoleContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewMonitor=void 0;var o=n(1),r=n(16),i=n(174);t.NtosCrewMonitor=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i.CrewMonitorContent)})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(1),r=n(30),i=n(10),a=n(16),c=n(12),l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],u=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],s={average:[.25,.5],bad:[.5,Infinity]},d=["bad","average","average","good","average","average","bad"];t.OperatingComputer=function(e,t){var n,r=(0,i.useBackend)(t),l=r.act,u=r.data,s=u.hasOccupant,d=u.choice;return n=d?(0,o.createComponentVNode)(2,m):s?(0,o.createComponentVNode)(2,f):(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,a.Window,{width:650,height:455,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:!d,icon:"user",onClick:function(){return l("choiceOff")},children:"Patient"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:!!d,icon:"cog",onClick:function(){return l("choiceOn")},children:"Options"})]}),(0,o.createComponentVNode)(2,c.Section,{flexGrow:"1",children:n})]})})};var f=function(e,t){var n=(0,i.useBackend)(t).data.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Patient",level:"2",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:n.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:l[n.stat][0],children:l[n.stat][1]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.maxHealth,value:n.health/n.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),u.map((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e[0]+" Damage",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:s,children:(0,r.round)(n[e[1]])},t)},t)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.maxTemp,value:n.bodyTemperature/n.maxTemp,color:d[n.temperatureSuitability+3],children:[(0,r.round)(n.btCelsius),"\xb0C, ",(0,r.round)(n.btFaren),"\xb0F"]})}),!!n.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:n.bloodMax,value:n.bloodLevel/n.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[n.bloodPercent,"%, ",n.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pulse",children:[n.pulse," BPM"]})],4)]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Current Procedure",level:"2",children:n.surgery&&n.surgery.length?(0,o.createComponentVNode)(2,c.LabeledList,{children:n.surgery.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Current State",children:e.currentStage}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Next Steps",children:e.nextSteps.map((function(e){return(0,o.createVNode)(1,"div",null,e,0,null,e)}))})]})},e.name)}))}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No procedure ongoing."})})],4)},p=function(){return(0,o.createComponentVNode)(2,c.Flex,{textAlign:"center",height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No patient detected."]})})},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,l=a.verbose,u=a.health,s=a.healthAlarm,d=a.oxy,f=a.oxyAlarm,p=a.crit;return(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Loudspeaker",children:(0,o.createComponentVNode)(2,c.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return r(l?"verboseOff":"verboseOn")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health Announcer",children:(0,o.createComponentVNode)(2,c.Button,{selected:u,icon:u?"toggle-on":"toggle-off",content:u?"On":"Off",onClick:function(){return r(u?"healthOff":"healthOn")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,o.createComponentVNode)(2,c.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:s,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("health_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Oxygen Alarm",children:(0,o.createComponentVNode)(2,c.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"On":"Off",onClick:function(){return r(d?"oxyOff":"oxyOn")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,o.createComponentVNode)(2,c.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:f,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("oxy_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Critical Alert",children:(0,o.createComponentVNode)(2,c.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){return r(p?"critOff":"critOn")}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ResleevingConsole=void 0;var o=n(1),r=n(30),i=n(10),a=n(12),c=(n(55),n(68)),l=n(16),u=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=(n.data,e.args),l=c.activerecord,u=c.realname,s=c.obviously_dead,d=c.oocnotes,f=c.can_sleeve_active;return(0,o.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Mind Record ("+u+")",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",color:"red",onClick:function(){return r("modal_close")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:!f,icon:"user-plus",content:"Sleeve",onClick:function(){return r("sleeve",{ref:l,mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"user-plus",content:"Card",onClick:function(){return r("sleeve",{ref:l,mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"OOC Notes",children:(0,o.createComponentVNode)(2,a.Section,{style:{"word-break":"break-all",height:"100px"},scrollable:!0,children:d})})]})})},s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=(n.data,e.args),l=c.activerecord,u=c.realname,s=c.species,d=c.sex,f=c.mind_compat,p=c.synthetic,m=c.oocnotes,h=c.can_grow_active;return(0,o.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:"Body Record ("+u+")",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",color:"red",onClick:function(){return r("modal_close")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bio. Sex",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Compat",children:f}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Synthetic",children:p?"Yes":"No"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"OOC Notes",children:(0,o.createComponentVNode)(2,a.Section,{style:{"word-break":"break-all",height:"100px"},scrollable:!0,children:m})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{disabled:!h,icon:"user-plus",content:p?"Build":"Grow",onClick:function(){return r("create",{ref:l})}})})]})})};t.ResleevingConsole=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data),h=(r.menu,r.coredumped),g=r.emergency,v=(0,o.createFragment)([(0,o.createComponentVNode)(2,C),(0,o.createComponentVNode)(2,N),(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,a.Section,{noTopPadding:!0,flexGrow:"1",children:(0,o.createComponentVNode)(2,f)})],4);return h&&(v=(0,o.createComponentVNode)(2,p)),g&&(v=(0,o.createComponentVNode)(2,m)),(0,c.modalRegisterBodyOverride)("view_b_rec",s),(0,c.modalRegisterBodyOverride)("view_m_rec",u),(0,o.createComponentVNode)(2,l.Window,{width:640,height:520,resizable:!0,children:[(0,o.createComponentVNode)(2,c.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,o.createComponentVNode)(2,l.Window.Content,{className:"Layout__content--flexColumn",children:v})]})};var d=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data.menu;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,icon:"home",onClick:function(){return r("menu",{num:1})},children:"Main"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,icon:"folder",onClick:function(){return r("menu",{num:2})},children:"Body Records"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===c,icon:"folder",onClick:function(){return r("menu",{num:3})},children:"Mind Records"})]})},f=function(e,t){var n,r=(0,i.useBackend)(t).data,a=r.menu,c=r.bodyrecords,l=r.mindrecords;return 1===a?n=(0,o.createComponentVNode)(2,h):2===a?n=(0,o.createComponentVNode)(2,y,{records:c,actToDo:"view_b_rec"}):3===a&&(n=(0,o.createComponentVNode)(2,y,{records:l,actToDo:"view_m_rec"})),n},p=function(e,t){return(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",justify:"space-evenly",align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Icon,{size:12,color:"bad",name:"exclamation-triangle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,color:"bad",mt:5,children:(0,o.createVNode)(1,"h2",null,"TransCore dump completed. Resleeving offline.",16)})]})})},m=function(e,t){var n=(0,i.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:(0,o.createVNode)(1,"h1",null,"TRANSCORE DUMP",16)}),(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:(0,o.createVNode)(1,"h2",null,"!!WARNING!!",16)}),(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"This will transfer all minds to the dump disk, and the TransCore will be made unusable until post-shift maintenance! This should only be used in emergencies!"}),(0,o.createComponentVNode)(2,a.Box,{mt:4,children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Disk",color:"good",onClick:function(){return n("ejectdisk")}})}),(0,o.createComponentVNode)(2,a.Box,{mt:4,children:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",content:"Core Dump",confirmContent:"Disable Transcore?",color:"bad",onClick:function(){return n("coredump")}})})]})},h=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data);r.loading,r.scantemp,r.occupant,r.locked,r.can_brainscan,r.scan_mode,r.pods,r.selected_pod;return(0,o.createComponentVNode)(2,a.Section,{title:"Pods",level:"2",children:[(0,o.createComponentVNode)(2,g),(0,o.createComponentVNode)(2,b),(0,o.createComponentVNode)(2,v)]})},g=function(e,t){var n=(0,i.useBackend)(t),c=n.act,l=n.data,u=l.pods,s=l.spods,d=l.selected_pod;return u&&u.length?u.map((function(e,t){var n;return n="cloning"===e.status?(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,r.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,o.createComponentVNode)(2,a.Button,{selected:d===e.pod,icon:d===e.pod&&"check",content:"Select",mt:s&&s.length?"2rem":"0.5rem",onClick:function(){return c("selectpod",{ref:e.pod})}}),(0,o.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,a.Box,{color:"label",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):null},v=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data,l=c.sleevers,u=c.spods,s=c.selected_sleever;return l&&l.length?l.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"sleeve_"+(e.occupied?"occupied":"empty")+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,a.Box,{color:e.occupied?"label":"bad",children:e.name}),(0,o.createComponentVNode)(2,a.Button,{selected:s===e.sleever,icon:s===e.sleever&&"check",content:"Select",mt:u&&u.length?"3rem":"1.5rem",onClick:function(){return r("selectsleever",{ref:e.sleever})}})]},t)})):null},b=function(e,t){var n=(0,i.useBackend)(t),c=n.act,l=n.data,u=l.spods,s=l.selected_printer;return u&&u.length?u.map((function(e,t){var n;return n="cloning"===e.status?(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:(0,r.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,o.createComponentVNode)(2,a.Button,{selected:s===e.spod,icon:s===e.spod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return c("selectprinter",{ref:e.spod})}}),(0,o.createComponentVNode)(2,a.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"synthprinter"+(e.busy?"_working":"")+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,a.Box,{color:"label",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:e.steel>=15e3?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.steel>=15e3?"circle":"circle-o"}),"\xa0",e.steel]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:e.glass>=15e3?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.glass>=15e3?"circle":"circle-o"}),"\xa0",e.glass]}),n]},t)})):null},y=function(e,t){var n=(0,i.useBackend)(t).act,r=e.records,c=e.actToDo;return r.length?(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:r.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.name,onClick:function(){return n(c,{ref:e.recref})}},t)}))}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No records found."]})})},C=function(e,t){var n,r=(0,i.useBackend)(t),c=r.act,l=r.data.temp;if(l&&l.text&&!(l.text.length<=0)){var u=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.NoticeBox,Object.assign({},u,{children:[(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,a.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,o.createComponentVNode)(2,a.Box,{clear:"both"})]})))}},N=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data),c=r.pods,l=r.spods,u=r.sleevers;r.autoallowed,r.autoprocess,r.disk;return(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pods",children:c&&c.length?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[c.length," connected"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"SynthFabs",children:l&&l.length?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[l.length," connected"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sleevers",children:u&&u.length?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[u.length," Connected"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ResleevingPod=void 0;var o=n(1),r=n(16),i=n(10),a=n(12);t.ResleevingPod=function(e,t){var n=(0,i.useBackend)(t).data,c=n.occupied,l=n.name,u=n.health,s=n.maxHealth,d=n.stat,f=n.mindStatus,p=n.mindName,m=n.resleeveSick,h=n.initialSick;return(0,o.createComponentVNode)(2,r.Window,{width:300,height:350,resizeable:!0,children:(0,o.createComponentVNode)(2,r.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:c?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:2===d?(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"DEAD"}):1===d?(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Unconscious"}):(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},value:u/s,children:[u,"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Status",children:f?"Present":"Missing"}),f?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mind Occupying",children:p}):""]}),m?(0,o.createComponentVNode)(2,a.Box,{color:"average",mt:3,children:["Warning: Resleeving Sickness detected.",h?(0,o.createFragment)([(0,o.createTextVNode)(" Motion Sickness also detected. Please allow the newly resleeved person a moment to get their bearings. This warning will disappear when Motion Sickness is no longer detected.")],4):""]}):""],0):(0,o.createComponentVNode)(2,a.Box,{bold:!0,m:1,children:"Unoccupied."})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(1),r=n(30),i=n(10),a=n(12),c=n(16),l=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],u=[["Resp","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],s={average:[.25,.5],bad:[.5,Infinity]},d=["bad","average","average","good","average","average","bad"];t.Sleeper=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data.hasOccupant?(0,o.createComponentVNode)(2,f):(0,o.createComponentVNode)(2,v));return(0,o.createComponentVNode)(2,c.Window,{width:550,height:820,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:r})})};var f=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data),a=(r.occupant,r.dialysis),c=r.stomachpumping;return(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,h,{title:"Dialysis",active:a,actToDo:"togglefilter"}),(0,o.createComponentVNode)(2,h,{title:"Stomach Pump",active:c,actToDo:"togglepump"}),(0,o.createComponentVNode)(2,g)],4)},p=function(e,t){var n=(0,i.useBackend)(t),c=n.act,u=n.data,s=u.occupant,f=u.auto_eject_dead,p=u.stasis;return(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"label",display:"inline",children:"Auto-eject if dead:\xa0"}),(0,o.createComponentVNode)(2,a.Button,{icon:f?"toggle-on":"toggle-off",selected:f,content:f?"On":"Off",onClick:function(){return c("auto_eject_dead_"+(f?"off":"on"))}}),(0,o.createComponentVNode)(2,a.Button,{icon:"user-slash",content:"Eject",onClick:function(){return c("ejectify")}}),(0,o.createComponentVNode)(2,a.Button,{content:p,onClick:function(){return c("changestasis")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:0,max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]},children:(0,r.round)(s.health,0)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[s.stat][0],children:l[s.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.maxTemp,value:s.bodyTemperature/s.maxTemp,color:d[s.temperatureSuitability+3],children:[(0,r.round)(s.btCelsius,0),"\xb0C,",(0,r.round)(s.btFaren,0),"\xb0F"]})}),!!s.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s.bloodMax,value:s.bloodLevel/s.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[s.bloodPercent,"%, ",s.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[s.pulse," BPM"]})],4)]})})},m=function(e,t){var n=(0,i.useBackend)(t).data.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Damage",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u.map((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e[0],children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:s,children:(0,r.round)(n[e[1]],0)},t)},t)}))})})},h=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data,l=c.isBeakerLoaded,u=c.beakerMaxSpace,s=c.beakerFreeSpace,d=e.active,f=e.actToDo,p=e.title,m=d&&s>0;return(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{disabled:!l||s<=0,selected:m,icon:m?"toggle-on":"toggle-off",content:m?"Active":"Inactive",onClick:function(){return r(f)}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return r("removebeaker")}})],4),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remaining Space",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:u,value:s/u,ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},children:[s,"u"]})})}):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No beaker loaded."})})},g=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data,l=c.occupant,u=c.chemicals,s=c.maxchem,d=c.amounts;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemicals",flexGrow:"1",children:u.map((function(e,t){var n,i="";return e.overdosing?(i="bad",n=(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 Overdosing!"]})):e.od_warning&&(i="average",n=(0,o.createComponentVNode)(2,a.Box,{color:"average",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"\xa0 Close to overdosing"]})),(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,a.Section,{title:e.title,level:"3",mx:"0",lineHeight:"18px",buttons:n,children:(0,o.createComponentVNode)(2,a.Flex,{align:"flex-start",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:s,value:e.occ_amount/s,color:i,mr:"0.5rem",children:[e.pretty_amount,"/",s,"u"]}),d.map((function(t,n){return(0,o.createComponentVNode)(2,a.Button,{disabled:!e.injectable||e.occ_amount+t>s||2===l.stat,icon:"syringe",content:t,mb:"0",height:"19px",onClick:function(){return r("chemical",{chemid:e.id,amount:t})}},n)}))]})})},t)}))})},v=function(e,t){return(0,o.createComponentVNode)(2,a.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.VorePanel=void 0;var o=n(1),r=(n(30),n(88)),i=n(10),a=n(12),c=n(16),l=[null,"average","bad"],u={Hold:null,Digest:"red",Absorb:"purple",Unabsorb:"purple",Drain:"purple",Shrink:"purple",Grow:"purple","Size Steal":"purple",Heal:"purple","Encase In Egg":"purple",Transform:"purple","Transform (Hair and eyes)":"purple","Transform (Male)":"purple","Transform (Female)":"purple","Transform (Keep Gender)":"purple","Transform (Replica Of Self)":"purple","Transform (Change Species and Taur)":"purple","Transform (Change Species and Taur) (EGG)":"purple","Transform (Replica Of Self) (EGG)":"purple","Transform (Keep Gender) (EGG)":"purple","Transform (Male) (EGG)":"purple","Transform (Female) (EGG)":"purple"},s={Hold:"being held.",Digest:"being digested.",Absorb:"being absorbed.",Unabsorb:"being unabsorbed.",Drain:"being drained.",Shrink:"being shrunken.",Grow:"being grown.","Size Steal":"having your size stolen.",Heal:"being healed.","Encase In Egg":"being encased in an egg.",Transform:"being transformed.","Transform (Hair and eyes)":"being transformed.","Transform (Male)":"being transformed.","Transform (Female)":"being transformed.","Transform (Keep Gender)":"being transformed.","Transform (Replica Of Self)":"being transformed.","Transform (Change Species and Taur)":"being transformed.","Transform (Change Species and Taur) (EGG)":"being transformed.","Transform (Replica Of Self) (EGG)":"being transformed.","Transform (Keep Gender) (EGG)":"being transformed.","Transform (Male) (EGG)":"being transformed.","Transform (Female) (EGG)":"being transformed."};t.VorePanel=function(e,t){var n=(0,i.useBackend)(t),r=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:700,height:660,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[l.unsaved_changes&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"90%",children:"Warning: Unsaved Changes!"}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Save Prefs",icon:"save",onClick:function(){return r("saveprefs")}})})]})})||null,(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,f),(0,o.createComponentVNode)(2,h)]})})};var d=function(e,t){var n=(0,i.useBackend)(t),r=(n.act,n.data.inside),c=r.absorbed,l=r.belly_name,d=r.belly_mode,f=r.desc,p=r.pred,h=r.contents,g=r.ref;return l?(0,o.createComponentVNode)(2,a.Section,{title:"Inside",children:[(0,o.createComponentVNode)(2,a.Box,{color:"green",inline:!0,children:["You are currently ",c?"absorbed into":"inside"]}),"\xa0",(0,o.createComponentVNode)(2,a.Box,{color:"yellow",inline:!0,children:[p,"'s"]}),"\xa0",(0,o.createComponentVNode)(2,a.Box,{color:"red",inline:!0,children:l}),"\xa0",(0,o.createComponentVNode)(2,a.Box,{color:"yellow",inline:!0,children:"and you are"}),"\xa0",(0,o.createComponentVNode)(2,a.Box,{color:u[d],inline:!0,children:s[d]}),"\xa0",(0,o.createComponentVNode)(2,a.Box,{color:"label",children:f}),h.length&&(0,o.createComponentVNode)(2,a.Collapsible,{title:"Belly Contents",children:(0,o.createComponentVNode)(2,m,{contents:h,belly:g})})||"There is nothing else around you."]}):(0,o.createComponentVNode)(2,a.Section,{title:"Inside",children:"You aren't inside anyone."})},f=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data,l=c.our_bellies,s=c.selected;return(0,o.createComponentVNode)(2,a.Section,{title:"My Bellies",children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{color:e.selected?"green":u[e.digest_mode],onClick:function(){return r("bellypick",{bellypick:e.ref})},children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:e.selected&&u[e.digest_mode]||null,children:[e.name," (",e.contents,")"]})},e.name)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{onClick:function(){return r("newbelly")},children:["New",(0,o.createComponentVNode)(2,a.Icon,{name:"plus",ml:.5})]})]}),s&&(0,o.createComponentVNode)(2,p,{belly:s})]})},p=function(e,t){var n=(0,i.useBackend)(t).act,c=e.belly,l=c.belly_name,s=c.is_wet,d=c.wet_loop,f=c.mode,p=c.item_mode,h=c.verb,g=c.desc,v=c.fancy,b=c.sound,y=c.release_sound,C=c.can_taste,N=c.nutrition_percent,V=c.digest_brute,x=c.digest_burn,_=c.bulge_size,w=c.shrink_grow_size,k=c.addons,S=c.contaminates,E=c.contaminate_flavor,B=c.contaminate_color,L=c.escapable,I=c.interacts,T=c.contents,O=(0,i.useLocalState)(t,"tabIndex",0),A=O[0],M=O[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===A,onClick:function(){return M(0)},children:"Controls"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===A,onClick:function(){return M(1)},children:"Options"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===A,onClick:function(){return M(2)},children:["Contents (",T.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===A,onClick:function(){return M(3)},children:"Interactions"})]}),0===A&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_name"})},content:l})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,a.Button,{color:u[f],onClick:function(){return n("set_attribute",{attribute:"b_mode"})},content:f})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Flavor Text",buttons:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_desc"})},icon:"pen"}),children:g}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode Addons",children:[k.length&&k.join(", ")||"None",(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_addons"})},ml:1,icon:"plus"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Item Mode",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_item_mode"})},content:p})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Vore Verb",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_verb"})},content:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Belly Messages",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"dmp"})},content:"Digest Message (to prey)"}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"dmo"})},content:"Digest Message (to you)"}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"smo"})},content:"Struggle Message (outside)"}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"smi"})},content:"Struggle Message (inside)"}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"em"})},content:"Examine Message (when full)"}),(0,o.createComponentVNode)(2,a.Button,{color:"red",onClick:function(){return n("set_attribute",{attribute:"b_msgs",msgtype:"reset"})},content:"Reset Messages"})]})]})||1===A&&(0,o.createComponentVNode)(2,a.Flex,{wrap:"wrap",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",grow:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Digest Brute Damage",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_brute_dmg"})},content:V})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Digest Burn Damage",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_burn_dmg"})},content:x})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nutritional Gain",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_nutritionpercent"})},content:N+"%"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contaminates",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_contaminates"})},icon:S?"toggle-on":"toggle-off",selected:S,content:S?"Yes":"No"})}),S&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contamination Flavor",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_contamination_flavor"})},icon:"pen",content:E})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contamination Color",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_contamination_color"})},icon:"pen",content:(0,r.capitalize)(B)})})],4)||null,(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Can Taste",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_tastes"})},icon:C?"toggle-on":"toggle-off",selected:C,content:C?"Yes":"No"})})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",grow:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fleshy Belly",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_wetness"})},icon:s?"toggle-on":"toggle-off",selected:s,content:s?"Yes":"No"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Loop",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_wetloop"})},icon:d?"toggle-on":"toggle-off",selected:d,content:d?"Yes":"No"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Fancy Sounds",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_fancy_sound"})},icon:v?"toggle-on":"toggle-off",selected:v,content:v?"Yes":"No"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Vore Sound",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_sound"})},content:b}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_soundtest"})},icon:"volume-up"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Sound",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_release"})},content:y}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_releasesoundtest"})},icon:"volume-up"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Examine Size",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_bulge_size"})},content:100*_+"%"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shrink/Grow Size",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_grow_shrink"})},content:100*w+"%"})})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"100%",mt:1,children:(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,icon:"exclamation-triangle",confirmIcon:"trash",color:"red",content:"Delete Belly",confirmContent:"This is irreversable!",onClick:function(){return n("set_attribute",{attribute:"b_del"})}})})]})||2===A&&(0,o.createComponentVNode)(2,m,{contents:T})||3===A&&(0,o.createComponentVNode)(2,a.Section,{title:"Belly Interactions",buttons:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return n("set_attribute",{attribute:"b_escapable"})},icon:L?"toggle-on":"toggle-off",selected:L,content:L?"Interactions On":"Interactions Off"}),children:L?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Escape Chance",children:(0,o.createComponentVNode)(2,a.Button,{content:I.escapechance+"%",onClick:function(){return n("set_attribute",{attribute:"b_escapechance"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Escape Time",children:(0,o.createComponentVNode)(2,a.Button,{content:I.escapetime/10+"s",onClick:function(){return n("set_attribute",{attribute:"b_escapetime"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Chance",children:(0,o.createComponentVNode)(2,a.Button,{content:I.transferchance+"%",onClick:function(){return n("set_attribute",{attribute:"b_transferchance"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Location",children:(0,o.createComponentVNode)(2,a.Button,{content:I.transferlocation?I.transferlocation:"Disabled",onClick:function(){return n("set_attribute",{attribute:"b_transferlocation"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Absorb Chance",children:(0,o.createComponentVNode)(2,a.Button,{content:I.absorbchance+"%",onClick:function(){return n("set_attribute",{attribute:"b_absorbchance"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Digest Chance",children:(0,o.createComponentVNode)(2,a.Button,{content:I.digestchance+"%",onClick:function(){return n("set_attribute",{attribute:"b_digestchance"})}})})]}):"These options only display while interactions are turned on."})||"Error."],0)},m=function(e,t){var n=(0,i.useBackend)(t).act,r=e.contents,c=e.belly;return(0,o.createComponentVNode)(2,a.Flex,{wrap:"wrap",justify:"center",align:"center",children:r.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"33%",children:[(0,o.createComponentVNode)(2,a.Button,{width:"64px",color:e.absorbed?"purple":l[e.stat],style:{"vertical-align":"middle","margin-right":"5px","border-radius":"20px"},onClick:function(){return n(e.outside?"pick_from_outside":"pick_from_inside",{pick:e.ref,belly:c})},children:(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64, "+e.icon,width:"64px",height:"64px",style:{"-ms-interpolation-mode":"nearest-neighbor","margin-left":"-5px"}})}),e.name]},e.name)}))})},h=function(e,t){var n=(0,i.useBackend)(t),r=n.act,c=n.data.prefs,l=c.digestable,u=c.devourable,s=c.feeding,d=c.absorbable,f=c.digest_leave_remains,p=c.allowmobvore,m=c.permit_healbelly,h=c.can_be_drop_prey,g=c.can_be_drop_pred,v=c.noisy;return(0,o.createComponentVNode)(2,a.Section,{title:"Preferences",children:[(0,o.createComponentVNode)(2,a.Flex,{spacing:1,wrap:"wrap",justify:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_digest")},icon:l?"toggle-on":"toggle-off",selected:l,fluid:!0,tooltip:"This button is for those who don't like being digested. It can make you undigestable."+(l?" Click here to prevent digestion.":" Click here to allow digestion."),content:l?"Digestion Allowed":"No Digestion"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",grow:1,children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_absorbable")},icon:d?"toggle-on":"toggle-off",selected:d,fluid:!0,tooltip:"This button allows preds to know whether you prefer or don't prefer to be absorbed. "+(d?"Click here to disallow being absorbed.":"Click here to allow being absorbed."),content:d?"Absorption Allowed":"No Absorption"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_devour")},icon:u?"toggle-on":"toggle-off",selected:u,fluid:!0,tooltip:"This button is to toggle your ability to be devoured by others. "+(u?"Click here to prevent being devoured.":"Click here to allow being devoured."),content:u?"Devouring Allowed":"No Devouring"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_mobvore")},icon:p?"toggle-on":"toggle-off",selected:p,fluid:!0,tooltip:"This button is for those who don't like being eaten by mobs. "+(p?"Click here to prevent being eaten by mobs.":"Click here to allow being eaten by mobs."),content:p?"Mobs eating you allowed":"No Mobs eating you"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",grow:1,children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_feed")},icon:s?"toggle-on":"toggle-off",selected:s,fluid:!0,tooltip:"This button is to toggle your ability to be fed to or by others vorishly. "+(s?"Click here to prevent being fed to/by other people.":"Click here to allow being fed to/by other people."),content:s?"Feeding Allowed":"No Feeding"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_healbelly")},icon:m?"toggle-on":"toggle-off",selected:m,fluid:!0,tooltipPosition:"top",tooltip:"This button is for those who don't like healbelly used on them as a mechanic. It does not affect anything, but is displayed under mechanical prefs for ease of quick checks. "+(m?"Click here to prevent being heal-bellied.":"Click here to allow being heal-bellied."),content:m?"Heal-bellies Allowed":"No Heal-bellies"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_dropnom_prey")},icon:h?"toggle-on":"toggle-off",selected:h,fluid:!0,tooltip:"This toggle is for spontaneous, environment related vore as prey, including drop-noms, teleporters, etc. "+(h?"Click here to allow being spontaneous prey.":"Click here to disable being spontaneous prey."),content:h?"Spontaneous Prey Enabled":"Spontaneous Prey Disabled"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",grow:1,children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_dropnom_pred")},icon:g?"toggle-on":"toggle-off",selected:g,fluid:!0,tooltip:"This toggle is for spontaneous, environment related vore as a predator, including drop-noms, teleporters, etc. "+(g?"Click here to allow being spontaneous pred.":"Click here to disable being spontaneous pred."),content:g?"Spontaneous Pred Enabled":"Spontaneous Pred Disabled"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"32%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_noisy")},icon:v?"toggle-on":"toggle-off",selected:v,fluid:!0,tooltip:"Toggle audible hunger noises. "+(v?"Click here to turn off hunger noises.":"Click here to turn on hunger noises."),content:v?"Hunger Noises Enabled":"Hunger Noises Disabled"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"100%",children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return r("toggle_leaveremains")},icon:f?"toggle-on":"toggle-off",selected:f,fluid:!0,tooltipPosition:"top",tooltip:f?"Your Predator must have this setting enabled in their belly modes to allow remains to show up,if they do not, they will not leave your remains behind, even with this on. Click to disable remains":"Regardless of Predator Setting, you will not leave remains behind. Click this to allow leaving remains.",content:f?"Allow Leaving Remains Behind":"Do Not Allow Leaving Remains Behind"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Taste",icon:"grin-tongue",onClick:function(){return r("setflavor")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Smell",icon:"wind",onClick:function(){return r("setsmell")}})})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Save Prefs",icon:"save",onClick:function(){return r("saveprefs")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"49%",grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Reload Prefs",icon:"undo",onClick:function(){return r("reloadprefs")}})})]})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(1),r=n(10),i=n(12),a=n(16);t.Wires=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,u=l.wires||[],s=l.status||[];return(0,o.createComponentVNode)(2,a.Window,{width:350,height:150+30*u.length,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{children:[(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:u.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:e.color_name,labelColor:e.seen_color,color:e.seen_color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return c("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Pulse",onClick:function(){return c("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,i.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return c("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.seen_color)}))})}),!!s.length&&(0,o.createComponentVNode)(2,i.Section,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{color:"lightgray",mt:.1,children:e},e)}))})]})})}}]);
\ No newline at end of file
diff --git a/tgui/packages/tgui/public/tgui.html b/tgui/packages/tgui/public/tgui.html
index 0707c6c244..c806ff196c 100644
--- a/tgui/packages/tgui/public/tgui.html
+++ b/tgui/packages/tgui/public/tgui.html
@@ -259,7 +259,7 @@ A fatal exception has occurred at 002B:C562F1B7 in TGUI.
The current application will be terminated.
Please remain calm. Get to the nearest NTNet workstation
and send the copy of the following stack trace to:
-www.github.com/tgstation/tgstation. Thank you for your cooperation.
+www.github.com/VOREStation/VOREStation. Thank you for your cooperation.