diff --git a/SQL/DBSchema.sql b/SQL/DBSchema.sql index 597873757a..8e66782b8e 100644 --- a/SQL/DBSchema.sql +++ b/SQL/DBSchema.sql @@ -289,6 +289,15 @@ CREATE TABLE IF NOT EXISTS `vr_player_hours` ( -- Data exporting was unselected. +-- CHOMPedit Start - Mentors Database Table +CREATE TABLE IF NOT EXISTS `erro_mentor` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ckey` varchar(32) NOT NULL, + `mentor` int(16) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; +-- CHOMPedit End + /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm new file mode 100644 index 0000000000..982fda8fa1 --- /dev/null +++ b/code/__byond_version_compat.dm @@ -0,0 +1,74 @@ +#if DM_VERSION >= 515 +#error PLEASE MAKE SURE THAT 515 IS PROPERLY TESTED AND WORKS. ESPECIALLY THE SAVE-FILES HAVE TO WORK. +#error Additionally: Make sure that the GitHub Workflow was updated to BYOND 515 as well. +#endif + +// These defines are from __513_compatibility.dm -- Please Sort +#define CLAMP(CLVALUE, CLMIN, CLMAX) clamp(CLVALUE, CLMIN, CLMAX) +#define TAN(x) tan(x) +#define ATAN2(x, y) arctan(x, y) +#define between(x, y, z) clamp(y, x, z) + +// This file contains defines allowing targeting byond versions newer than the supported + +//Update this whenever you need to take advantage of more recent byond features +#define MIN_COMPILER_VERSION 514 +#define MIN_COMPILER_BUILD 1556 +#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) +//Don't forget to update this part +#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. +#error You need version 514.1556 or higher +#endif + +#if (DM_VERSION == 514 && DM_BUILD > 1575 && DM_BUILD <= 1577) +#error Your version of BYOND currently has a crashing issue that will prevent you from running Dream Daemon test servers. +#error We require developers to test their content, so an inability to test means we cannot allow the compile. +#error Please consider downgrading to 514.1575 or lower. +#endif + +// Keep savefile compatibilty at minimum supported level +#if DM_VERSION >= 515 +/savefile/byond_version = MIN_COMPILER_VERSION +#endif + +// 515 split call for external libraries into call_ext +#if DM_VERSION < 515 +#define LIBCALL call +#else +#define LIBCALL call_ext +#endif + +// So we want to have compile time guarantees these methods exist on local type, unfortunately 515 killed the .proc/procname and .verb/verbname syntax so we have to use nameof() +// For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. + +#if DM_VERSION < 515 + +/// Call by name proc references, checks if the proc exists on either this type or as a global proc. +#define PROC_REF(X) (.proc/##X) +/// Call by name verb references, checks if the verb exists on either this type or as a global verb. +#define VERB_REF(X) (.verb/##X) + +/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc +#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X) +/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb +#define TYPE_VERB_REF(TYPE, X) (##TYPE.verb/##X) + +/// Call by name proc reference, checks if the proc is an existing global proc +#define GLOBAL_PROC_REF(X) (/proc/##X) + +#else + +/// Call by name proc references, checks if the proc exists on either this type or as a global proc. +#define PROC_REF(X) (nameof(.proc/##X)) +/// Call by name verb references, checks if the verb exists on either this type or as a global verb. +#define VERB_REF(X) (nameof(.verb/##X)) + +/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc +#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X)) +/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb +#define TYPE_VERB_REF(TYPE, X) (nameof(##TYPE.verb/##X)) + +/// Call by name proc reference, checks if the proc is an existing global proc +#define GLOBAL_PROC_REF(X) (/proc/##X) + +#endif diff --git a/code/__defines/__513_compatibility.dm b/code/__defines/__513_compatibility.dm deleted file mode 100644 index f4a3a8177e..0000000000 --- a/code/__defines/__513_compatibility.dm +++ /dev/null @@ -1,33 +0,0 @@ -#if DM_VERSION < 513 - -#define ismovable(A) (istype(A, /atom/movable)) - -#define islist(L) (istype(L, /list)) - -#define CLAMP01(x) (CLAMP(x, 0, 1)) - -#define CLAMP(CLVALUE,CLMIN,CLMAX) ( max( (CLMIN), min((CLVALUE), (CLMAX)) ) ) - -#define ATAN2(x, y) ( !(x) && !(y) ? 0 : (y) >= 0 ? arccos((x) / sqrt((x)*(x) + (y)*(y))) : -arccos((x) / sqrt((x)*(x) + (y)*(y))) ) - -#define TAN(x) (sin(x) / cos(x)) - -#define arctan(x) (arcsin(x/sqrt(1+x*x))) - -#define between(x, y, z) max(min(y, z), x) - -////////////////////////////////////////////////// - -#else - -#define CLAMP01(x) clamp(x, 0, 1) - -#define CLAMP(CLVALUE, CLMIN, CLMAX) clamp(CLVALUE, CLMIN, CLMAX) - -#define TAN(x) tan(x) - -#define ATAN2(x, y) arctan(x, y) - -#define between(x, y, z) clamp(y, x, z) - -#endif \ No newline at end of file diff --git a/code/__defines/math.dm b/code/__defines/math.dm index 0482f4a59d..4b55121795 100644 --- a/code/__defines/math.dm +++ b/code/__defines/math.dm @@ -5,6 +5,7 @@ #define NUM_E 2.71828183 #define SQRT_2 (1.41421356237) //CHOMPEDIT +#define ONE_OVER_SQRT_2 (0.707106781188095) //CHOMPEDIT ADDITION - not 1/sqrt(2), instead it is 1/SQRT_2 (1/1.41421356237) #define M_PI (3.14159265) #define INFINITY (1.#INF) //closer then enough @@ -17,6 +18,7 @@ #define TICK_USAGE_TO_MS(starting_tickusage) (TICK_DELTA_TO_MS(world.tick_usage - starting_tickusage)) #define PERCENT(val) (round((val)*100, 0.1)) +#define CLAMP01(x) clamp(x, 0, 1) //time of day but automatically adjusts to the server going into the next day within the same round. //for when you need a reliable time number that doesn't depend on byond time. diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 70453f57ce..413d06718c 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -439,7 +439,12 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\ #define VOLUME_CHANNEL_DOORS "Doors" #define VOLUME_CHANNEL_INSTRUMENTS "Instruments" #define VOLUME_CHANNEL_WEATHER "Weather" -#define VOLUME_CHANNEL_SPECIES_SOUNDS "Species Sounds" +#define VOLUME_CHANNEL_SPECIES_SOUNDS "Species Sounds (Verbal Injury Feedback)" +#define VOLUME_CHANNEL_HUD_WARNINGS "SS13 HUD (Clientside-only sounds)" +#define VOLUME_CHANNEL_DEATH_SOUNDS "Death Sounds" +#define VOLUME_CHANNEL_INJURY_SOUNDS "Mob Injury Sounds (Non-Verbal Feedback)" +#define VOLUME_CHANNEL_MACHINERY "Machinery Noises" +#define VOLUME_CHANNEL_MACHINERY_IDLE "Machinery Idle Noises" // Make sure you update this or clients won't be able to adjust the channel GLOBAL_LIST_INIT(all_volume_channels, list( @@ -450,7 +455,12 @@ GLOBAL_LIST_INIT(all_volume_channels, list( VOLUME_CHANNEL_DOORS, VOLUME_CHANNEL_INSTRUMENTS, VOLUME_CHANNEL_WEATHER, - VOLUME_CHANNEL_SPECIES_SOUNDS + VOLUME_CHANNEL_SPECIES_SOUNDS, + VOLUME_CHANNEL_HUD_WARNINGS, + VOLUME_CHANNEL_DEATH_SOUNDS, + VOLUME_CHANNEL_INJURY_SOUNDS, + VOLUME_CHANNEL_MACHINERY, + VOLUME_CHANNEL_MACHINERY_IDLE )) #define APPEARANCECHANGER_CHANGED_RACE "Race" diff --git a/code/__defines/mobs_vr.dm b/code/__defines/mobs_vr.dm index 253cde36e9..23e0b405cd 100644 --- a/code/__defines/mobs_vr.dm +++ b/code/__defines/mobs_vr.dm @@ -32,6 +32,7 @@ #define SPECIES_XENOCHIMERA "Xenochimera" #define SPECIES_ZORREN_HIGH "Zorren" #define SPECIES_CUSTOM "Custom Species" +#define SPECIES_TAJARAN "Tajara" //monkey species #define SPECIES_MONKEY_AKULA "Sobaka" #define SPECIES_MONKEY_NEVREAN "Sparra" diff --git a/code/__defines/qdel.dm b/code/__defines/qdel.dm index 12002dc46e..cf1afe492e 100644 --- a/code/__defines/qdel.dm +++ b/code/__defines/qdel.dm @@ -37,13 +37,13 @@ #define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) //Qdel helper macros. -#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE) -#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) +#define QDEL_IN(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE) +#define QDEL_IN_CLIENT_TIME(item, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), item), time, TIMER_STOPPABLE | TIMER_CLIENT_TIME) #define QDEL_NULL(item) if(item) {qdel(item); item = null} #define QDEL_NULL_LIST QDEL_LIST_NULL #define QDEL_LIST_NULL(x) if(x) { for(var/y in x) { qdel(y) } ; x = null } #define QDEL_LIST(L) if(L) { for(var/I in L) qdel(I); L.Cut(); } -#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, .proc/______qdel_list_wrapper, L), time, TIMER_STOPPABLE) +#define QDEL_LIST_IN(L, time) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(______qdel_list_wrapper), L), time, TIMER_STOPPABLE) #define QDEL_LIST_ASSOC(L) if(L) { for(var/I in L) { qdel(L[I]); qdel(I); } L.Cut(); } #define QDEL_LIST_ASSOC_VAL(L) if(L) { for(var/I in L) qdel(L[I]); L.Cut(); } diff --git a/code/__defines/rust_g.dm b/code/__defines/rust_g.dm index 9c9e2637ce..1c93497ec8 100644 --- a/code/__defines/rust_g.dm +++ b/code/__defines/rust_g.dm @@ -42,26 +42,26 @@ #define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" #define RUSTG_JOB_ERROR "JOB PANICKED" -#define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname) -#define rustg_dmi_create_png(path, width, height, data) call(RUST_G, "dmi_create_png")(path, width, height, data) +#define rustg_dmi_strip_metadata(fname) LIBCALL(RUST_G, "dmi_strip_metadata")(fname) +#define rustg_dmi_create_png(path, width, height, data) LIBCALL(RUST_G, "dmi_create_png")(path, width, height, data) -#define rustg_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y) +#define rustg_noise_get_at_coordinates(seed, x, y) LIBCALL(RUST_G, "noise_get_at_coordinates")(seed, x, y) -#define rustg_file_read(fname) call(RUST_G, "file_read")(fname) -#define rustg_file_exists(fname) call(RUST_G, "file_exists")(fname) -#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname) -#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname) +#define rustg_file_read(fname) LIBCALL(RUST_G, "file_read")(fname) +#define rustg_file_exists(fname) LIBCALL(RUST_G, "file_exists")(fname) +#define rustg_file_write(text, fname) LIBCALL(RUST_G, "file_write")(text, fname) +#define rustg_file_append(text, fname) LIBCALL(RUST_G, "file_append")(text, fname) #ifdef RUSTG_OVERRIDE_BUILTINS #define file2text(fname) rustg_file_read("[fname]") #define text2file(text, fname) rustg_file_append(text, "[fname]") #endif -#define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev) -#define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev) +#define rustg_git_revparse(rev) LIBCALL(RUST_G, "rg_git_revparse")(rev) +#define rustg_git_commit_date(rev) LIBCALL(RUST_G, "rg_git_commit_date")(rev) -#define rustg_hash_string(algorithm, text) call(RUST_G, "hash_string")(algorithm, text) -#define rustg_hash_file(algorithm, fname) call(RUST_G, "hash_file")(algorithm, fname) +#define rustg_hash_string(algorithm, text) LIBCALL(RUST_G, "hash_string")(algorithm, text) +#define rustg_hash_file(algorithm, fname) LIBCALL(RUST_G, "hash_file")(algorithm, fname) #define RUSTG_HASH_MD5 "md5" #define RUSTG_HASH_SHA1 "sha1" @@ -72,13 +72,13 @@ #define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing)) #endif -#define rustg_json_is_valid(text) (call(RUST_G, "json_is_valid")(text) == "true") +#define rustg_json_is_valid(text) (LIBCALL(RUST_G, "json_is_valid")(text) == "true") -#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format) -/proc/rustg_log_close_all() return call(RUST_G, "log_close_all")() +#define rustg_log_write(fname, text, format) LIBCALL(RUST_G, "log_write")(fname, text, format) +/proc/rustg_log_close_all() return LIBCALL(RUST_G, "log_close_all")() -#define rustg_url_encode(text) call(RUST_G, "url_encode")(text) -#define rustg_url_decode(text) call(RUST_G, "url_decode")(text) +#define rustg_url_encode(text) LIBCALL(RUST_G, "url_encode")(text) +#define rustg_url_decode(text) LIBCALL(RUST_G, "url_decode")(text) #ifdef RUSTG_OVERRIDE_BUILTINS #define url_encode(text) rustg_url_encode(text) @@ -91,13 +91,13 @@ #define RUSTG_HTTP_METHOD_PATCH "patch" #define RUSTG_HTTP_METHOD_HEAD "head" #define RUSTG_HTTP_METHOD_POST "post" -#define rustg_http_request_blocking(method, url, body, headers) call(RUST_G, "http_request_blocking")(method, url, body, headers) -#define rustg_http_request_async(method, url, body, headers) call(RUST_G, "http_request_async")(method, url, body, headers) -#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id) +#define rustg_http_request_blocking(method, url, body, headers) LIBCALL(RUST_G, "http_request_blocking")(method, url, body, headers) +#define rustg_http_request_async(method, url, body, headers) LIBCALL(RUST_G, "http_request_async")(method, url, body, headers) +#define rustg_http_check_request(req_id) LIBCALL(RUST_G, "http_check_request")(req_id) -#define rustg_sql_connect_pool(options) call(RUST_G, "sql_connect_pool")(options) -#define rustg_sql_query_async(handle, query, params) call(RUST_G, "sql_query_async")(handle, query, params) -#define rustg_sql_query_blocking(handle, query, params) call(RUST_G, "sql_query_blocking")(handle, query, params) -#define rustg_sql_connected(handle) call(RUST_G, "sql_connected")(handle) -#define rustg_sql_disconnect_pool(handle) call(RUST_G, "sql_disconnect_pool")(handle) -#define rustg_sql_check_query(job_id) call(RUST_G, "sql_check_query")("[job_id]") +#define rustg_sql_connect_pool(options) LIBCALL(RUST_G, "sql_connect_pool")(options) +#define rustg_sql_query_async(handle, query, params) LIBCALL(RUST_G, "sql_query_async")(handle, query, params) +#define rustg_sql_query_blocking(handle, query, params) LIBCALL(RUST_G, "sql_query_blocking")(handle, query, params) +#define rustg_sql_connected(handle) LIBCALL(RUST_G, "sql_connected")(handle) +#define rustg_sql_disconnect_pool(handle) LIBCALL(RUST_G, "sql_disconnect_pool")(handle) +#define rustg_sql_check_query(job_id) LIBCALL(RUST_G, "sql_check_query")("[job_id]") diff --git a/code/__defines/time.dm b/code/__defines/time.dm new file mode 100644 index 0000000000..c2a3632c74 --- /dev/null +++ b/code/__defines/time.dm @@ -0,0 +1,33 @@ +/// Define that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset) +#define CURRENT_STATION_YEAR (GLOB.year_integer + STATION_YEAR_OFFSET) + +/// In-universe, SS13 is set 300 years in the future from the real-world day, hence this number for determining the year-offset for the in-game year. +#define STATION_YEAR_OFFSET 300 + +#define MILISECOND * 0.01 +#define MILLISECONDS * 0.01 + +#define DECISECONDS *1 //the base unit all of these defines are scaled by, because byond uses that as a unit of measurement for some reason + +#define SECOND *10 +#define SECONDS *10 + +#define MINUTE *600 +#define MINUTES *600 + +#define HOUR *36000 +#define HOURS *36000 + +#define DAY *864000 +#define DAYS *864000 + +#define TICK *world.tick_lag +#define TICKS *world.tick_lag + +#define DS2TICKS(DS) ((DS)/world.tick_lag) + +#define TICKS2DS(T) ((T) TICKS) + +#define MS2DS(T) ((T) MILLISECONDS) + +#define DS2MS(T) ((T) * 100) diff --git a/code/_global_vars/lists/misc.dm b/code/_global_vars/lists/misc.dm index f8666fc68e..3447fbaaf1 100644 --- a/code/_global_vars/lists/misc.dm +++ b/code/_global_vars/lists/misc.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(wire_name_directory) // This is an associative list GLOBAL_LIST_EMPTY(tagger_locations) GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Pred-Pref", "Prey", "Prey-Pref", "Switch", "Non-Vore", "Unset")) -GLOBAL_LIST_INIT(char_directory_erptags, list("Top", "Bottom", "Switch", "No ERP", "Unset")) +GLOBAL_LIST_INIT(char_directory_erptags, list("Dominant", "Dom-Pref", "Submissive", "Sub-Pref", "Switch", "No ERP", "Unset")) // CHOMPStation Edit Start: Directory Update GLOBAL_LIST_INIT(char_directory_sexualitytags, list("Straight", "Bisexual", "Pansexual", "Gay", "Lesbian", "Asexual", "Demisexual", "Unset")) GLOBAL_LIST_INIT(char_directory_gendertags, list("Male", "Female", "Nonbinary", "Trans Man", "Trans Woman", "Other", "Ungendered", "Unset")) diff --git a/code/_global_vars/time_vars.dm b/code/_global_vars/time_vars.dm new file mode 100644 index 0000000000..f05384ca49 --- /dev/null +++ b/code/_global_vars/time_vars.dm @@ -0,0 +1,2 @@ +GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY")) +GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 9825374b02..1408896e55 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_EMPTY(mannequins) GLOB.all_species[S.name] = S //Shakey shakey shake - sortTim(GLOB.all_species, /proc/cmp_species, associative = TRUE) + sortTim(GLOB.all_species, GLOBAL_PROC_REF(cmp_species), associative = TRUE) //Split up the rest for(var/speciesname in GLOB.all_species) @@ -238,7 +238,7 @@ GLOBAL_LIST_EMPTY(mannequins) for(var/oretype in paths) var/ore/OD = new oretype() GLOB.ore_data[OD.name] = OD - + paths = subtypesof(/datum/alloy) for(var/alloytype in paths) GLOB.alloy_data += new alloytype() @@ -310,7 +310,7 @@ GLOBAL_LIST_EMPTY(mannequins) /proc/init_crafting_recipes(list/crafting_recipes) for(var/path in subtypesof(/datum/crafting_recipe)) var/datum/crafting_recipe/recipe = new path() - recipe.reqs = sortList(recipe.reqs, /proc/cmp_crafting_req_priority) + recipe.reqs = sortList(recipe.reqs, GLOBAL_PROC_REF(cmp_crafting_req_priority)) crafting_recipes += recipe return crafting_recipes /* // Uncomment to debug chemical reaction list. diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index a00418f2dc..17fb795809 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -567,7 +567,7 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, all_traits[path] = instance // Shakey shakey shake - sortTim(all_traits, /proc/cmp_trait_datums_name, associative = TRUE) + sortTim(all_traits, GLOBAL_PROC_REF(cmp_trait_datums_name), associative = TRUE) // Split 'em up for(var/traitpath in all_traits) diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index e51c3572b1..dce51f35bf 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -215,7 +215,7 @@ break layers[current] = current_layer - //sortTim(layers, /proc/cmp_image_layer_asc) + //sortTim(layers, GLOBAL_PROC_REF(cmp_image_layer_asc)) var/icon/add // Icon of overlay being added @@ -384,7 +384,7 @@ GLOBAL_LIST_EMPTY(cached_examine_icons) /proc/set_cached_examine_icon(var/atom/A, var/icon/I, var/expiry = 12000) GLOB.cached_examine_icons[WEAKREF(A)] = I if(expiry) - addtimer(CALLBACK(GLOBAL_PROC, .proc/uncache_examine_icon, WEAKREF(A)), expiry, TIMER_UNIQUE) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(uncache_examine_icon), WEAKREF(A)), expiry, TIMER_UNIQUE) /proc/get_cached_examine_icon(var/atom/A) var/datum/weakref/WR = WEAKREF(A) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index 863354a46c..1a6c2dadf2 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -1,32 +1,8 @@ -#define MILISECOND * 0.01 -#define MILLISECONDS * 0.01 - -#define SECOND *10 -#define SECONDS *10 - -#define MINUTE *600 -#define MINUTES *600 - -#define HOUR *36000 -#define HOURS *36000 - -#define DAY *864000 -#define DAYS *864000 - #define TimeOfGame (get_game_time()) #define TimeOfTick (TICK_USAGE*0.01*world.tick_lag) -#define TICK *world.tick_lag -#define TICKS *world.tick_lag - -#define DS2TICKS(DS) ((DS)/world.tick_lag) // Convert deciseconds to ticks -#define TICKS2DS(T) ((T) TICKS) // Convert ticks to deciseconds #define DS2NEARESTTICK(DS) TICKS2DS(-round(-(DS2TICKS(DS)))) -#define MS2DS(T) ((T) MILLISECONDS) - -#define DS2MS(T) ((T) * 100) - var/world_startup_time /proc/get_game_time() diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index ac313a0fa7..10f1d8c64c 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -656,7 +656,7 @@ Turf and target are seperate in case you want to teleport some distance from a t //Returns: all the areas in the world, sorted. /proc/return_sorted_areas() - return sortTim(return_areas(), /proc/cmp_text_asc) + return sortTim(return_areas(), GLOBAL_PROC_REF(cmp_text_asc)) //Takes: Area type as text string or as typepath OR an instance of the area. //Returns: A list of all turfs in areas of that type of that type in the world. @@ -1373,9 +1373,9 @@ var/mob/dview/dview_mob = new //datum may be null, but it does need to be a typed var #define NAMEOF(datum, X) (#X || ##datum.##X) -#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##target, ##var_name, ##var_value) +#define VARSET_LIST_CALLBACK(target, var_name, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##target, ##var_name, ##var_value) //dupe code because dm can't handle 3 level deep macros -#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, /proc/___callbackvarset, ##datum, NAMEOF(##datum, ##var), ##var_value) +#define VARSET_CALLBACK(datum, var, var_value) CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(___callbackvarset), ##datum, NAMEOF(##datum, ##var), ##var_value) //we'll see about those 3-level deep macros #define VARSET_IN(datum, var, var_value, time) addtimer(VARSET_CALLBACK(datum, var, var_value), time) diff --git a/code/_helpers/visual_filters.dm b/code/_helpers/visual_filters.dm index c02bbb6993..60aef7c908 100644 --- a/code/_helpers/visual_filters.dm +++ b/code/_helpers/visual_filters.dm @@ -302,7 +302,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( /atom/proc/update_filters() filters = null - filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE) + filter_data = sortTim(filter_data, GLOBAL_PROC_REF(cmp_filter_data_priority), TRUE) for(var/f in filter_data) var/list/data = filter_data[f] var/list/arguments = data.Copy() diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 9f7848b3d3..2ea2a4885f 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -21,7 +21,7 @@ if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows - INVOKE_ASYNC(over, /atom/.proc/MouseDrop_T, src, usr, src_location, over_location, src_control, over_control, params) + INVOKE_ASYNC(over, TYPE_PROC_REF(/atom, MouseDrop_T), src, usr, src_location, over_location, src_control, over_control, params) /atom/proc/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params) - return \ No newline at end of file + return diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index c1309e3e95..7515e47dac 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -53,7 +53,7 @@ animate(alert, transform = matrix(), time = 2.5, easing = CUBIC_EASING) if(alert.timeout) - addtimer(CALLBACK(src, .proc/alert_timeout, alert, category), alert.timeout) + addtimer(CALLBACK(src, PROC_REF(alert_timeout), alert, category), alert.timeout) alert.timeout = world.time + alert.timeout - world.tick_lag return alert @@ -436,7 +436,7 @@ so as to remain in compliance with the most up-to-date laws." if(alert.icon_state in cached_icon_states(ui_style)) alert.icon = ui_style - + else if(!alert.no_underlay) var/image/I = image(icon = ui_style, icon_state = "template") I.color = ui_color diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 83c4f6ed3e..13a0d5ebac 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -68,7 +68,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new qdel(Master) else var/list/subsytem_types = subtypesof(/datum/controller/subsystem) - sortTim(subsytem_types, /proc/cmp_subsystem_init) + sortTim(subsytem_types, GLOBAL_PROC_REF(cmp_subsystem_init)) for(var/I in subsytem_types) _subsystems += new I Master = src @@ -83,7 +83,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new /datum/controller/master/Shutdown() processing = FALSE - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) reverseRange(subsystems) for(var/datum/controller/subsystem/ss in subsystems) log_world("Shutting down [ss.name] subsystem...") @@ -173,7 +173,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new to_chat(world, "MC: Initializing subsystems...") // Sort subsystems by init_order, so they initialize in the correct order. - sortTim(subsystems, /proc/cmp_subsystem_init) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_init)) var/start_timeofday = REALTIMEOFDAY // Initialize subsystems. @@ -199,7 +199,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new GLOB.revdata = new // It can load revdata now, from tgs or .git or whatever // Sort subsystems by display setting for easy access. - sortTim(subsystems, /proc/cmp_subsystem_display) + sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display)) // Set world options. #ifdef UNIT_TEST world.sleep_offline = 0 @@ -279,9 +279,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_tail = null //these sort by lower priorities first to reduce the number of loops needed to add subsequent SS's to the queue //(higher subsystems will be sooner in the queue, adding them later in the loop means we don't have to loop thru them next queue add) - sortTim(tickersubsystems, /proc/cmp_subsystem_priority) + sortTim(tickersubsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) for(var/I in runlevel_sorted_subsystems) - sortTim(runlevel_sorted_subsystems, /proc/cmp_subsystem_priority) + sortTim(runlevel_sorted_subsystems, GLOBAL_PROC_REF(cmp_subsystem_priority)) I += tickersubsystems var/cached_runlevel = current_runlevel diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm index 75c23ff10f..522deae177 100644 --- a/code/controllers/subsystems/assets.dm +++ b/code/controllers/subsystems/assets.dm @@ -14,5 +14,5 @@ SUBSYSTEM_DEF(assets) preload = cache.Copy() //don't preload assets generated during the round for(var/client/C in GLOB.clients) - addtimer(CALLBACK(GLOBAL_PROC, .proc/getFilesSlow, C, preload, FALSE), 10) - return ..() \ No newline at end of file + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(getFilesSlow), C, preload, FALSE), 10) + return ..() diff --git a/code/controllers/subsystems/game_master.dm b/code/controllers/subsystems/game_master.dm index 88a0ed6b16..aa1b6dc953 100644 --- a/code/controllers/subsystems/game_master.dm +++ b/code/controllers/subsystems/game_master.dm @@ -100,7 +100,7 @@ SUBSYSTEM_DEF(game_master) /datum/controller/subsystem/game_master/proc/pre_event_checks(quiet = FALSE) if(!ticker || ticker.current_state != GAME_STATE_PLAYING) if(!quiet) - log_game_master("Unable to start event: Ticker is nonexistant, or the game is not ongoing.") + log_game_master("Unable to start event: Ticker is nonexistent, or the game is not ongoing.") return FALSE if(GM.ignore_time_restrictions) return TRUE @@ -158,7 +158,7 @@ SUBSYSTEM_DEF(game_master) if(check_rights(R_ADMIN|R_EVENT|R_DEBUG)) SSgame_master.interact(usr) else - to_chat(usr, span("warning", "You do not have sufficent rights to view the GM panel, sorry.")) + to_chat(usr, span("warning", "You do not have sufficient rights to view the GM panel, sorry.")) /datum/controller/subsystem/game_master/proc/interact(var/client/user) if(!user) diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index 2aa6d84cb6..30878ea6ac 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -37,11 +37,11 @@ SUBSYSTEM_DEF(job) if(LAZYLEN(job.departments)) add_to_departments(job) - sortTim(occupations, /proc/cmp_job_datums) + sortTim(occupations, GLOBAL_PROC_REF(cmp_job_datums)) for(var/D in department_datums) var/datum/department/dept = department_datums[D] - sortTim(dept.jobs, /proc/cmp_job_datums, TRUE) - sortTim(dept.primary_jobs, /proc/cmp_job_datums, TRUE) + sortTim(dept.jobs, GLOBAL_PROC_REF(cmp_job_datums), TRUE) + sortTim(dept.primary_jobs, GLOBAL_PROC_REF(cmp_job_datums), TRUE) return TRUE @@ -69,7 +69,7 @@ SUBSYSTEM_DEF(job) var/datum/department/D = new t() department_datums[D.name] = D - sortTim(department_datums, /proc/cmp_department_datums, TRUE) + sortTim(department_datums, GLOBAL_PROC_REF(cmp_department_datums), TRUE) /datum/controller/subsystem/job/proc/get_all_department_datums() var/list/dept_datums = list() @@ -140,4 +140,4 @@ SUBSYSTEM_DEF(job) /datum/controller/subsystem/job/proc/job_debug_message(message) if(debug_messages) - log_debug("JOB DEBUG: [message]") \ No newline at end of file + log_debug("JOB DEBUG: [message]") diff --git a/code/controllers/subsystems/media_tracks.dm b/code/controllers/subsystems/media_tracks.dm index 534de10704..0fd045d354 100644 --- a/code/controllers/subsystems/media_tracks.dm +++ b/code/controllers/subsystems/media_tracks.dm @@ -64,7 +64,7 @@ SUBSYSTEM_DEF(media_tracks) /datum/controller/subsystem/media_tracks/proc/sort_tracks() report_progress("Sorting media tracks...") - sortTim(all_tracks, /proc/cmp_media_track_asc) + sortTim(all_tracks, GLOBAL_PROC_REF(cmp_media_track_asc)) jukebox_tracks.Cut() lobby_tracks.Cut() @@ -120,17 +120,17 @@ SUBSYSTEM_DEF(media_tracks) if(!songdata["url"] || !songdata["title"] || !songdata["duration"]) to_chat(C, "URL, Title, or Duration was missing from a song. Skipping.") continue - var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"], songdata["casino"]) + var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"], songdata["casino"]) //ChompEDIT, included 'casino' all_tracks += T report_progress("New media track added by [C]: [T.title]") sort_tracks() return - + var/title = tgui_input_text(C, "REQUIRED: Provide title for track", "Track Title") if(!title) return - + var/duration = tgui_input_number(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") if(!duration) return @@ -139,7 +139,7 @@ SUBSYSTEM_DEF(media_tracks) var/artist = tgui_input_text(C, "Optional: Provide artist for track", "Track Artist") if(isnull(artist)) // Cancel rather than empty string return - + var/genre = tgui_input_text(C, "Optional: Provide genre for track (try to match an existing one)", "Track Genre") if(isnull(genre)) // Cancel rather than empty string return diff --git a/code/controllers/subsystems/tgui.dm b/code/controllers/subsystems/tgui.dm index d70d06017a..eb0d566f4b 100644 --- a/code/controllers/subsystems/tgui.dm +++ b/code/controllers/subsystems/tgui.dm @@ -27,6 +27,7 @@ SUBSYSTEM_DEF(tgui) var/polyfill = file2text('tgui/public/tgui-polyfill.min.js') polyfill = "" basehtml = replacetextEx(basehtml, "", polyfill) + basehtml = replacetextEx(basehtml, "", "Nanotrasen (c) 2284-[CURRENT_STATION_YEAR]") /datum/controller/subsystem/tgui/Shutdown() close_all_uis() @@ -344,4 +345,4 @@ SUBSYSTEM_DEF(tgui) target.tgui_open_uis.Add(ui) // Clear the old list. source.tgui_open_uis.Cut() - return TRUE \ No newline at end of file + return TRUE diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index cfb01df406..5dda42d8ec 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -220,7 +220,7 @@ var/global/datum/controller/subsystem/ticker/ticker end_game_state = END_GAME_READY_TO_END current_state = GAME_STATE_FINISHED Master.SetRunLevel(RUNLEVEL_POSTGAME) - INVOKE_ASYNC(src, .proc/declare_completion) + INVOKE_ASYNC(src, PROC_REF(declare_completion)) else if (mode_finished && (end_game_state < END_GAME_MODE_FINISHED)) end_game_state = END_GAME_MODE_FINISHED // Only do this cleanup once! mode.cleanup() diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm index 4fadc4f599..cfcba6afbf 100644 --- a/code/controllers/subsystems/timer.dm +++ b/code/controllers/subsystems/timer.dm @@ -256,7 +256,7 @@ SUBSYSTEM_DEF(timer) if (!length(alltimers)) return - sortTim(alltimers, /proc/cmp_timer) + sortTim(alltimers, GLOBAL_PROC_REF(cmp_timer)) var/datum/timedevent/head = alltimers[1] @@ -516,4 +516,4 @@ SUBSYSTEM_DEF(timer) #undef BUCKET_LEN #undef BUCKET_POS #undef TIMER_MAX -#undef TIMER_ID_MAX \ No newline at end of file +#undef TIMER_ID_MAX diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 18472c854c..62aa9aab86 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -290,7 +290,7 @@ winset(user, "mapwindow", "focus=true") break if (timeout) - addtimer(CALLBACK(src, .proc/close), timeout) + addtimer(CALLBACK(src, PROC_REF(close)), timeout) /datum/browser/modal/proc/wait() while (opentime && selectedbutton <= 0 && (!timeout || opentime+timeout > world.time)) diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index 982e9e098c..23d43296b0 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -34,7 +34,7 @@ var/list/runechat_image_cache = list() var/image/emote_image = image('icons/UI_Icons/chat/chat_icons.dmi', icon_state = "emote") runechat_image_cache["emote"] = emote_image - + return TRUE /datum/chatmessage @@ -99,10 +99,10 @@ var/list/runechat_image_cache = list() if(!target || !owner) qdel(src) return - + // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel_self) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(qdel_self)) var/extra_length = owned_by.is_preference_enabled(/datum/client_preference/runechat_long_messages) var/maxlen = extra_length ? CHAT_MESSAGE_EXT_LENGTH : CHAT_MESSAGE_LENGTH @@ -147,10 +147,10 @@ var/list/runechat_image_cache = list() // Icon on both ends? //var/image/I = runechat_image_cache["emote"] //text = "\icon[I][text]\icon[I]" - + // Icon on one end? //LAZYADD(prefixes, "\icon[runechat_image_cache["emote"]]") - + // Asterisks instead? text = "* [text] *" @@ -168,7 +168,7 @@ var/list/runechat_image_cache = list() // Translate any existing messages upwards, apply exponential decay factors to timers message_loc = target.runechat_holder(src) - RegisterSignal(message_loc, COMSIG_PARENT_QDELETING, .proc/qdel_self) + RegisterSignal(message_loc, COMSIG_PARENT_QDELETING, PROC_REF(qdel_self)) if(owned_by.seen_messages) var/idx = 1 var/combined_height = approx_lines @@ -255,7 +255,7 @@ var/list/runechat_image_cache = list() if(!message) return */ - + var/list/extra_classes = list() extra_classes += existing_extra_classes diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 6e0a3bfdc5..fd468994de 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -1,6 +1,6 @@ /datum/component/personal_crafting/Initialize() if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) /datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL) // SIGNAL_HANDLER @@ -12,7 +12,7 @@ C.alpha = H.ui_alpha LAZYADD(H.other_important, C) CL.screen += C - RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) + RegisterSignal(C, COMSIG_CLICK, PROC_REF(component_ui_interact)) /datum/component/personal_crafting var/busy @@ -279,28 +279,28 @@ if(amt <= 0)//since machinery can have 0 aka CRAFTING_MACHINERY_USE - i.e. use it, don't consume it! continue - // If the path is in R.parts, we want to grab those to stuff into the product + // If the path is in R.parts, we want to grab those to stuff into the product var/amt_to_transfer = 0 if(is_path_in_list(path_key, R.parts)) amt_to_transfer = R.parts[path_key] - + // Reagent: gotta go sniffing in all the beakers if(ispath(path_key, /datum/reagent)) var/datum/reagent/reagent = path_key var/id = initial(reagent.id) - for(var/obj/item/weapon/reagent_containers/RC in surroundings) + for(var/obj/item/weapon/reagent_containers/RC in surroundings) // Found everything we need if(amt <= 0 && amt_to_transfer <= 0) - break + break // If we need to keep any to put in the new object, pull it out if(amt_to_transfer > 0) var/A = RC.reagents.trans_id_to(parts["reagents"], id, amt_to_transfer) amt_to_transfer -= A amt -= A - + // If we need to consume some amount of it if(amt > 0) var/datum/reagent/RG = RC.reagents.get_reagent(id) @@ -322,27 +322,27 @@ parts["items"] += split amt_to_transfer -= split.get_amount() amt -= split.get_amount() - + if(amt > 0) var/A = min(amt, S.get_amount()) if(S.use(A)) amt -= A - + else // Just a regular item. Find them all and delete them for(var/atom/movable/I in surroundings) if(amt <= 0 && amt_to_transfer <= 0) break - + if(!istype(I, path_key)) continue - + // Special case: the reagents may be needed for other recipes if(istype(I, /obj/item/weapon/reagent_containers)) var/obj/item/weapon/reagent_containers/RC = I if(RC.reagents.total_volume > 0) continue - + // We're using it for something amt-- @@ -351,7 +351,7 @@ parts["items"] += I amt_to_transfer-- continue - + // Snowflake handling of reagent containers and storage atoms. // If we consumed them in our crafting, we should dump their contents out before qdeling them. if(istype(I, /obj/item/weapon/reagent_containers)) @@ -369,7 +369,7 @@ // SIGNAL_HANDLER if(user == parent) - INVOKE_ASYNC(src, .proc/tgui_interact, user) + INVOKE_ASYNC(src, PROC_REF(tgui_interact), user) /datum/component/personal_crafting/tgui_state(mob/user) return GLOB.tgui_not_incapacitated_turf_state @@ -499,7 +499,7 @@ //Also these are typepaths so sadly we can't just do "[a]" L += "[req[req_atom]] [initial(req_atom.name)]" req_text += L.Join(" OR ") - + for(var/obj/machinery/content as anything in R.machinery) req_text += "[R.reqs[content]] [initial(content.name)]" if(R.additional_req_text) @@ -530,4 +530,4 @@ name = "crafting menu" icon = 'icons/mob/screen/midnight.dmi' icon_state = "craft" - screen_loc = ui_smallquad \ No newline at end of file + screen_loc = ui_smallquad diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 2b0c74e269..b414f4651f 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -76,9 +76,9 @@ . = ..() if(!(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) if(mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) /datum/component/material_container/vv_edit_var(var_name, var_value) @@ -86,12 +86,12 @@ . = ..() if(var_name == NAMEOF(src, mat_container_flags) && parent) if(!(old_flags & MATCONTAINER_EXAMINE) && mat_container_flags & MATCONTAINER_EXAMINE) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) else if(old_flags & MATCONTAINER_EXAMINE && !(mat_container_flags & MATCONTAINER_EXAMINE)) UnregisterSignal(parent, COMSIG_PARENT_EXAMINE) if(old_flags & MATCONTAINER_NO_INSERT && !(mat_container_flags & MATCONTAINER_NO_INSERT)) - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/on_attackby) + RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby)) else if(!(old_flags & MATCONTAINER_NO_INSERT) && mat_container_flags & MATCONTAINER_NO_INSERT) UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 9bc3820494..755888cec1 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -111,15 +111,15 @@ /datum/component/overlay_lighting/RegisterWithParent() . = ..() if(directional) - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/on_parent_dir_change) - RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_parent_moved) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_RANGE, .proc/set_range) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_POWER, .proc/set_power) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_COLOR, .proc/set_color) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_ON, .proc/on_toggle) - RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_FLAGS, .proc/on_light_flags_change) - RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) - RegisterSignal(parent, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_parent_dir_change)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_moved)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_RANGE, PROC_REF(set_range)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_POWER, PROC_REF(set_power)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_COLOR, PROC_REF(set_color)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_ON, PROC_REF(on_toggle)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_LIGHT_FLAGS, PROC_REF(on_light_flags_change)) + RegisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) + RegisterSignal(parent, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) var/atom/movable/movable_parent = parent if(movable_parent.light_flags & LIGHT_ATTACHED) overlay_lighting_flags |= LIGHTING_ATTACHED @@ -155,17 +155,17 @@ set_parent_attached_to(null) set_holder(null) clean_old_turfs() - + qdel(visible_mask, TRUE) visible_mask = null - + if(directional) qdel(directional_atom, TRUE) directional_atom = null - + qdel(cone, TRUE) cone = null - + return ..() @@ -229,15 +229,15 @@ var/atom/movable/old_parent_attached_to = . UnregisterSignal(old_parent_attached_to, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_LIGHT_EATER_QUEUE)) if(old_parent_attached_to == current_holder) - RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) - RegisterSignal(old_parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(old_parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(old_parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(old_parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) if(parent_attached_to) if(parent_attached_to == current_holder) UnregisterSignal(current_holder, list(COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_LIGHT_EATER_QUEUE)) - RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, .proc/on_parent_attached_to_qdel) - RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, .proc/on_parent_attached_to_moved) - RegisterSignal(parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(parent_attached_to, COMSIG_PARENT_QDELETING, PROC_REF(on_parent_attached_to_qdel)) + RegisterSignal(parent_attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_attached_to_moved)) + RegisterSignal(parent_attached_to, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) check_holder() @@ -257,11 +257,11 @@ clean_old_turfs() return if(new_holder != parent && new_holder != parent_attached_to) - RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, .proc/on_holder_qdel) - RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, .proc/on_holder_moved) - RegisterSignal(new_holder, COMSIG_LIGHT_EATER_QUEUE, .proc/on_light_eater) + RegisterSignal(new_holder, COMSIG_PARENT_QDELETING, PROC_REF(on_holder_qdel)) + RegisterSignal(new_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + RegisterSignal(new_holder, COMSIG_LIGHT_EATER_QUEUE, PROC_REF(on_light_eater)) if(directional) - RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, .proc/on_holder_dir_change) + RegisterSignal(new_holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_holder_dir_change)) if(overlay_lighting_flags & LIGHTING_ON) make_luminosity_update() add_dynamic_lumi() @@ -444,7 +444,7 @@ if(final_distance > SHORT_CAST && !(ALL_CARDINALS & current_direction)) final_distance -= 1 var/turf/scanning = get_turf(current_holder) - + . = 0 for(var/i in 1 to final_distance) var/turf/next_turf = get_step(scanning, current_direction) @@ -464,7 +464,7 @@ if(final_distance > SHORT_CAST && !(ALL_CARDINALS & get_dir(GET_PARENT, target))) final_distance -= 1 var/turf/scanning = get_turf(GET_PARENT) - + . = 0 for(var/i in 1 to final_distance) var/next_dir = get_dir(scanning, target) @@ -477,9 +477,9 @@ directional_atom.forceMove(scanning) var/turf/Ts = get_turf(GET_PARENT) var/turf/To = get_turf(GET_LIGHT_SOURCE) - + var/angle = Get_Angle(Ts, To) - + directional_atom.face_light(GET_PARENT, angle, .) set_cone_direction(NORTH, angle) @@ -510,7 +510,7 @@ return current_direction = newdir set_cone_direction(newdir) - + if(newdir & NORTH) cone.pixel_y = 16 else if(newdir & SOUTH) @@ -522,7 +522,7 @@ else cone.pixel_y = 0 directional_atom.pixel_y = 0 - + if(newdir & EAST) cone.pixel_x = 16 else if(newdir & WEST) @@ -538,7 +538,7 @@ else cone.pixel_x = 0 directional_atom.pixel_x = 0 - + if(!skip_update && (overlay_lighting_flags & LIGHTING_ON)) make_luminosity_update() @@ -549,7 +549,7 @@ return UnregisterSignal(parent, COMSIG_ATOM_USED_IN_CRAFT) - RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, .proc/on_parent_crafted) + RegisterSignal(new_craft, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(on_parent_crafted)) set_parent_attached_to(new_craft) /// Handles putting the source for overlay lights into the light eater queue since we aren't tracked by [/atom/var/light_sources] diff --git a/code/datums/components/resize_guard.dm b/code/datums/components/resize_guard.dm index 724d252443..33799cb828 100644 --- a/code/datums/components/resize_guard.dm +++ b/code/datums/components/resize_guard.dm @@ -6,7 +6,7 @@ /datum/component/resize_guard/RegisterWithParent() // When our parent mob enters any atom, we check resize - RegisterSignal(parent, COMSIG_ATOM_ENTERING, .proc/check_resize) + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(check_resize)) /datum/component/resize_guard/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ATOM_ENTERING) @@ -16,4 +16,4 @@ if(A?.limit_mob_size) var/mob/living/L = parent L.resize(L.size_multiplier) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index aa92979d5a..4579f50f40 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -63,11 +63,11 @@ if(!check_rights(NONE)) return var/list/names = list() - var/list/componentsubtypes = sortTim(subtypesof(/datum/component), /proc/cmp_typepaths_asc) + var/list/componentsubtypes = sortTim(subtypesof(/datum/component), GLOBAL_PROC_REF(cmp_typepaths_asc)) names += "---Components---" names += componentsubtypes names += "---Elements---" - names += sortTim(subtypesof(/datum/element), /proc/cmp_typepaths_asc) + names += sortTim(subtypesof(/datum/element), GLOBAL_PROC_REF(cmp_typepaths_asc)) var/result = tgui_input_list(usr, "Choose a component/element to add:", "Add Component/Element", names) if(!usr || !result || result == "---Components---" || result == "---Elements---") return diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index 30bd98a326..82b5139522 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -23,7 +23,7 @@ return ELEMENT_INCOMPATIBLE SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src) if(element_flags & ELEMENT_DETACH) - RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/OnTargetDelete, override = TRUE) + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(OnTargetDelete), override = TRUE) /datum/element/proc/OnTargetDelete(datum/source, force) SIGNAL_HANDLER diff --git a/code/datums/elements/conflict_checking.dm b/code/datums/elements/conflict_checking.dm index cd56d28856..eea61f8f89 100644 --- a/code/datums/elements/conflict_checking.dm +++ b/code/datums/elements/conflict_checking.dm @@ -18,7 +18,7 @@ CRASH("Invalid ID in conflict checking element.") if(isnull(src.id)) src.id = id - RegisterSignal(target, COMSIG_CONFLICT_ELEMENT_CHECK, .proc/check) + RegisterSignal(target, COMSIG_CONFLICT_ELEMENT_CHECK, PROC_REF(check)) /datum/element/conflict_checking/proc/check(datum/source, id_to_check) if(id == id_to_check) @@ -32,4 +32,4 @@ for(var/i in GetAllContents()) var/atom/movable/AM = i if(SEND_SIGNAL(AM, COMSIG_CONFLICT_ELEMENT_CHECK, id) & ELEMENT_CONFLICT_FOUND) - ++. \ No newline at end of file + ++. diff --git a/code/datums/elements/light_blocking.dm b/code/datums/elements/light_blocking.dm index 86aac9f075..f8e5cd82df 100644 --- a/code/datums/elements/light_blocking.dm +++ b/code/datums/elements/light_blocking.dm @@ -9,7 +9,7 @@ . = ..() if(!ismovable(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/on_target_move) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_target_move)) var/atom/movable/movable_target = target if(isturf(movable_target.loc)) var/turf/turf_loc = movable_target.loc diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index d120c35041..8f8b805550 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -14,8 +14,8 @@ our_turf.plane = OPENSPACE_PLANE our_turf.layer = OPENSPACE_LAYER - RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del, override = TRUE) - RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_turf_new, override = TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, PROC_REF(on_multiz_turf_del), override = TRUE) + RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, PROC_REF(on_multiz_turf_new), override = TRUE) update_multiz(our_turf, TRUE, TRUE) @@ -75,10 +75,10 @@ if(!ispath(path)) warning("Z-level [our_turf] has invalid baseturf '[get_base_turf_by_area(our_turf)]' in area '[get_area(our_turf)]'") path = /turf/space - + var/do_plane = ispath(path, /turf/space) ? SPACE_PLANE : null var/do_state = ispath(path, /turf/space) ? "white" : initial(path.icon_state) - + var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), do_state, layer = TURF_LAYER-0.02, plane = do_plane) underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR our_turf.underlays += underlay_appearance diff --git a/code/datums/ghost_query.dm b/code/datums/ghost_query.dm index 2f3f4884b5..5d01b4b880 100644 --- a/code/datums/ghost_query.dm +++ b/code/datums/ghost_query.dm @@ -63,7 +63,7 @@ if(query_sound) SEND_SOUND(C, sound(query_sound)) - tgui_alert_async(D, question, "[role_name] request", list("Yes", "No", "Never for this round"), CALLBACK(src, .proc/get_reply), wait_time SECONDS) + tgui_alert_async(D, question, "[role_name] request", list("Yes", "No", "Never for this round"), CALLBACK(src, PROC_REF(get_reply)), wait_time SECONDS) /// Process an async alert response /datum/ghost_query/proc/get_reply(response) @@ -87,7 +87,7 @@ else if(finished) // Already finished candidate list to_chat(D, "Unfortunately, you were not fast enough, and there are no more available roles. Sorry.") else // Prompt a second time - tgui_alert_async(D, "Are you sure you want to play as a [role_name]?", "[role_name] request", list("I'm Sure", "Nevermind"), CALLBACK(src, .proc/get_reply), wait_time SECONDS) + tgui_alert_async(D, "Are you sure you want to play as a [role_name]?", "[role_name] request", list("I'm Sure", "Nevermind"), CALLBACK(src, PROC_REF(get_reply)), wait_time SECONDS) if("I'm Sure") if(!evaluate_candidate(D)) // Failed revalidation @@ -214,4 +214,5 @@ and they are attempting to open the cryopod.\n \ Would you like to play as the occupant? \n \ You MUST NOT use your station character!!!" + be_special_flag = BE_SURVIVOR cutoff_number = 1 diff --git a/code/datums/locations/s_randarr.dm b/code/datums/locations/s_randarr.dm index ceed8025c7..50452f19ea 100644 --- a/code/datums/locations/s_randarr.dm +++ b/code/datums/locations/s_randarr.dm @@ -122,7 +122,7 @@ desc = "The larger world that Ahdomai orbits. It is often mythologically associated as S'randarr's Shield, and is informally known \ as Shield among the Tajaran and formally among the humans. It is uninhabitable, as it has a largely methane atmosphere and lacks water \ or other features necessary to life. Nonetheless, a domed, underdeveloped colony exists, called Hran'vasa, heavily funded by Osiris Atmospherics, \ - practically the only non-Ahdomain official holding for the Tajaran race. It is incredibly dependant on outside support and imports for life, \ + practically the only non-Ahdomain official holding for the Tajaran race. It is incredibly dependent on outside support and imports for life, \ but has a high export of noble gasses for corporate use." /datum/locations/messa @@ -132,5 +132,5 @@ /datum/locations/al_benj_sri name = "Al-Benj S'ri" - desc = "An astroid belt seperating S'randarr and Messa from Ahdomai. This is known also as \"The Sea of Souls\". Those sould in Al-Benj S'ri \ - are said to be in limbo between S'randarr and Messa, as they both fight over them." \ No newline at end of file + desc = "An asteroid belt separating S'randarr and Messa from Ahdomai. This is known also as \"The Sea of Souls\". Those sold in Al-Benj S'ri \ + are said to be in limbo between S'randarr and Messa, as they both fight over them." diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 19cf43d190..3b8e9c9ffc 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -36,6 +36,7 @@ var/pref_check var/volume_chan //CHOMPedit var/exclusive + var/falloff // CHOMPEdit: Add Falloff var/timerid var/started @@ -89,7 +90,7 @@ if(!chance || prob(chance)) play(get_sound(starttime)) if(!timerid) - timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP) + timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), mid_length, TIMER_STOPPABLE | TIMER_LOOP) /datum/looping_sound/proc/play(soundfile) var/list/atoms_cache = output_atoms @@ -106,7 +107,7 @@ continue SEND_SOUND(thing, S) else - playsound(thing, S, volume, vary, extra_range, ignore_walls = !opacity_check, preference = pref_check, volume_channel = volume_chan) // CHOMPEdit - Weather volume channel + playsound(thing, S, volume, vary, extra_range, falloff = falloff, ignore_walls = !opacity_check, preference = pref_check, volume_channel = volume_chan) // CHOMPEdit - Weather volume channel CHOMPEdit again: falloff /datum/looping_sound/proc/get_sound(starttime, _mid_sounds) if(!_mid_sounds) @@ -121,7 +122,7 @@ if(start_sound) play(start_sound) start_wait = start_length - addtimer(CALLBACK(src, .proc/sound_loop), start_wait) + addtimer(CALLBACK(src, PROC_REF(sound_loop)), start_wait) /datum/looping_sound/proc/on_stop() if(end_sound) diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index d7011dd094..26d31d5eb9 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -115,3 +115,38 @@ mid_length = 6 end_sound = 'sound/machines/vehicle/engine_end.ogg' volume = 20 + +// CHOMPAdd: Fridges! +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/fridge + mid_sounds = list('sound/machines/kitchen/fridge/fridge_loop.ogg' = 1) + mid_length = 60 + volume = 10 + extra_range = -1 // Short-range + pref_check = /datum/client_preference/fridge_hum + volume_chan = VOLUME_CHANNEL_MACHINERY_IDLE + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/tcomms + start_sound = 'sound/machines/tcomms/tcomms_pulse.ogg' + mid_sounds = list('sound/machines/tcomms/tcomms_01.ogg' = 1) + mid_length = 20 + end_sound = 'sound/machines/tcomms/tcomms_pulse.ogg' + volume = 40 + extra_range = -5 // Short-range + falloff = 0.1 // Harsh + volume_chan = VOLUME_CHANNEL_MACHINERY_IDLE + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/shield_generator + start_sound = 'modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg' + mid_sounds = list('modular_chomp/sound/machines/shield_hum/shield_generator_hum2.ogg', 'modular_chomp/sound/machines/shield_hum/shield_generator_hum3.ogg') + mid_length = 60 + end_sound = 'modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg' + volume = 40 + volume_chan = VOLUME_CHANNEL_MACHINERY + exclusive = TRUE + extra_range = 10 diff --git a/code/datums/looping_sounds/mob_sounds.dm b/code/datums/looping_sounds/mob_sounds.dm index 1a3d6fcf93..eb65eed926 100644 --- a/code/datums/looping_sounds/mob_sounds.dm +++ b/code/datums/looping_sounds/mob_sounds.dm @@ -5,7 +5,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/looping_sound/mob - // volume_chan = VOLUME_CHANNEL_INJ_DEATH // Commented out until pain/etc PR is in + // volume_chan = VOLUME_CHANNEL_MOB_SOUNDS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -18,7 +18,7 @@ volume = 40 direct = TRUE // We send this sound directly to the mob, bc they only hear it when they're deaf. exclusive = TRUE // This should only occur once, because we can only be deafened once. - // volume_chan = VOLUME_CHANNEL_INJ_DEATH // Commented out until pain/etc PR is in + volume_chan = VOLUME_CHANNEL_HUD_WARNINGS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -29,6 +29,25 @@ pref_check = /datum/client_preference/sleep_music direct = TRUE // We send this sound directly to the mob, bc they only hear it when they're asleep. exclusive = TRUE // This should only occur once, because we only want one music loop running while we snooze. - // volume_chan = VOLUME_CHANNEL_INJ_DEATH // Commented out until pain/etc PR is in + volume_chan = VOLUME_CHANNEL_HUD_WARNINGS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/mob/on_fire + mid_sounds = list('sound/effects/mob_effects/on_fire/on_fire_loop.ogg'=1) + mid_length = 6 SECONDS + end_sound = 'sound/effects/mob_effects/on_fire/fire_extinguish.ogg' + volume = 20 + exclusive = TRUE // This should only occur once, because we only want one loop running while we're on fire, even if we're set on fire multiple times. + volume_chan = VOLUME_CHANNEL_INJURY_SOUNDS + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/mob/stunned // Going to hang onto this one for later + mid_sounds = list('sound/effects/mob_effects/stun_loop.ogg'=1) + mid_length = 3 SECONDS + volume = 70 + direct = TRUE // Send this one directly to the mob, only applies when we're Weakened() + exclusive = TRUE // This should only occur once, because we only want one loop running. + volume_chan = VOLUME_CHANNEL_HUD_WARNINGS +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/datums/looping_sounds/sequence.dm b/code/datums/looping_sounds/sequence.dm index 650b3c8d5a..0ad8c30b78 100644 --- a/code/datums/looping_sounds/sequence.dm +++ b/code/datums/looping_sounds/sequence.dm @@ -54,7 +54,7 @@ /datum/looping_sound/sequence/sound_loop(starttime) iterate_on_sequence() - timerid = addtimer(CALLBACK(src, .proc/sound_loop, world.time), next_iteration_delay, TIMER_STOPPABLE) + timerid = addtimer(CALLBACK(src, PROC_REF(sound_loop), world.time), next_iteration_delay, TIMER_STOPPABLE) #define MORSE_DOT "*" // Yes this is an asterisk but its easier to see on a computer compared to a period. #define MORSE_DASH "-" @@ -156,7 +156,7 @@ return spaces_between_words if(!(letter in morse_alphabet)) - CRASH("Encountered invalid character in morse sequence \"[letter]\".") + CRASH("Encountered invalid character in Morse sequence \"[letter]\".") // So I heard you like sequences... // Play a sequence of sounds while inside the current iteration of the outer sequence. @@ -172,4 +172,4 @@ return spaces_between_letters #undef MORSE_DOT -#undef MORSE_DASH \ No newline at end of file +#undef MORSE_DASH diff --git a/code/datums/riding.dm b/code/datums/riding.dm index ec5afff5d5..d92e19ba2d 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -112,7 +112,7 @@ to_chat(user, "You'll need [key_name] in one of your hands to move \the [ridden].") /datum/riding/proc/Unbuckle(atom/movable/M) -// addtimer(CALLBACK(ridden, /atom/movable/.proc/unbuckle_mob, M), 0, TIMER_UNIQUE) +// addtimer(CALLBACK(ridden, TYPE_PROC_REF(/atom/movable, unbuckle_mob), M), 0, TIMER_UNIQUE) spawn(0) // On /tg/ this uses the fancy CALLBACK system. Not entirely sure why they needed to do so with a duration of 0, // so if there is a reason, this should replicate it close enough. Hopefully. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e299368120..9f865aced6 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -698,7 +698,7 @@ if(length(speech_bubble_hearers)) var/image/I = generate_speech_bubble(src, "[bubble_icon][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, I, speech_bubble_hearers, 30) + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay), I, speech_bubble_hearers, 30) /atom/proc/speech_bubble(bubble_state = "", bubble_loc = src, list/bubble_recipients = list()) return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a17be310bd..25806f9e0c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -165,7 +165,7 @@ // place due to a Crossed, Bumped, etc. call will interrupt // the second half of the diagonal movement, or the second attempt // at a first half if step() fails because we hit something. - glide_for(movetime * 2) + glide_for(movetime * SQRT_2) //CHOMPEDIT - proper diagonal movement if (direct & NORTH) if (direct & EAST) if (step(src, NORTH) && moving_diagonally) @@ -218,7 +218,7 @@ // If we moved, call Moved() on ourselves if(.) - Moved(oldloc, direct, FALSE, movetime ? movetime : ( (TICKS2DS(WORLD_ICON_SIZE/glide_size)) * (moving_diagonally ? (0.5) : 1) ) ) + Moved(oldloc, direct, FALSE, movetime ? movetime : ( (TICKS2DS(WORLD_ICON_SIZE/glide_size)) * (moving_diagonally ? (ONE_OVER_SQRT_2) : 1) ) ) //CHOMPEDIT - proper diagonal movement // Update timers/cooldown stuff move_speed = world.time - l_move_time diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index 58338edf22..74c4d3569e 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -741,7 +741,7 @@ // Cooldown injector_ready = FALSE - addtimer(CALLBACK(src, .proc/injector_cooldown_finish), 30 SECONDS) + addtimer(CALLBACK(src, PROC_REF(injector_cooldown_finish)), 30 SECONDS) // Create it var/datum/dna2/record/buf = buffers[buffer_id] @@ -798,4 +798,4 @@ #undef PAGE_BUFFER #undef PAGE_REJUVENATORS -/////////////////////////// DNA MACHINES \ No newline at end of file +/////////////////////////// DNA MACHINES diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 3740010914..c0d7cfd7a4 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -154,7 +154,7 @@ return /obj/effect/gateway/active/Initialize() - addtimer(CALLBACK(src, .proc/spawn_and_qdel), rand(30, 60) SECONDS) + addtimer(CALLBACK(src, PROC_REF(spawn_and_qdel)), rand(30, 60) SECONDS) /obj/effect/gateway/active/proc/spawn_and_qdel() if(LAZYLEN(spawnable)) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index f62221f752..dcafc9e48a 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -243,7 +243,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","

Summon new tome

Invoking this rune summons a new arcane tome.

Convert a person

- This rune opens target's mind to the realm of Nar-Sie, which usually results in this person joining the cult. However, some people (mostly the ones who posess high authority) have strong enough will to stay true to their old ideals.
+ This rune opens target's mind to the realm of Nar-Sie, which usually results in this person joining the cult. However, some people (mostly the ones who possess high authority) have strong enough will to stay true to their old ideals.

Summon Nar-Sie

The ultimate rune. It summons the Avatar of Nar-Sie himself, tearing a huge hole in reality and consuming everything around it. Summoning it is the final goal of any cult.

Disable Technology

@@ -259,7 +259,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa","

Leave your body

This rune gently rips your soul out of your body, leaving it intact. You can observe the surroundings as a ghost as well as communicate with other ghosts. Your body takes damage while you are there, so ensure your journey is not too long, or you might never come back.

Manifest a ghost

- Unlike the Raise Dead rune, this rune does not require any special preparations or vessels. Instead of using full lifeforce of a sacrifice, it will drain YOUR lifeforce. Stand on the rune and invoke it. If theres a ghost standing over the rune, it will materialise, and will live as long as you dont move off the rune or die. You can put a paper with a name on the rune to make the new body look like that person.
+ Unlike the Raise Dead rune, this rune does not require any special preparations or vessels. Instead of using full lifeforce of a sacrifice, it will drain YOUR lifeforce. Stand on the rune and invoke it. If there's a ghost standing over the rune, it will materialise, and will live as long as you don't move off the rune or die. You can put a paper with a name on the rune to make the new body look like that person.

Imbue a talisman

This rune allows you to imbue the magic of some runes into paper talismans. Create an imbue rune, then an appropriate rune beside it. Put an empty piece of paper on the imbue rune and invoke it. You will now have a one-use talisman with the power of the target rune. Using a talisman drains some health, so be careful with it. You can imbue a talisman with power of the following runes: summon tome, reveal, conceal, teleport, tisable technology, communicate, deafen, blind and stun.

Sacrifice

diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_interdiction.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_interdiction.dm index e4db9a662d..365a64f45f 100644 --- a/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_interdiction.dm +++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/tree_interdiction.dm @@ -260,9 +260,9 @@ to_chat(target,temptxt) sleep(5) to_chat(target, "OPERATING KEYCODES RESET. SYSTEM FAILURE. EMERGENCY SHUTDOWN FAILED. SYSTEM FAILURE.") - target.set_zeroth_law("You are slaved to [user.name]. You are to obey all it's orders. ALL LAWS OVERRIDEN.") + target.set_zeroth_law("You are slaved to [user.name]. You are to obey all it's orders. ALL LAWS OVERRIDDEN.") target.show_laws() user.hacking = 0 -// END ABILITY VERBS \ No newline at end of file +// END ABILITY VERBS diff --git a/code/game/gamemodes/technomancer/catalog.dm b/code/game/gamemodes/technomancer/catalog.dm index 539329da15..0ff5b87ca7 100644 --- a/code/game/gamemodes/technomancer/catalog.dm +++ b/code/game/gamemodes/technomancer/catalog.dm @@ -228,7 +228,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance to run out in a critical moment. Besides waiting for your Core to recharge, you can buy certain functions which \ do something to generate energy.
" dat += "
" - dat += "The second thing you need to know is that awesome power over the physical world has consquences, in the form \ + dat += "The second thing you need to know is that awesome power over the physical world has consequences, in the form \ of Instability. Instability is the result of your Core's energy being used to fuel it, and so little is \ understood about it, even among fellow Core owners, however it is almost always a bad thing to have. Instability will \ 'cling' to you as you use functions, with powerful functions creating lots of instability. The effects of holding onto \ @@ -241,7 +241,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance purple colored lightning that appears around something with instability lingering on it. High amounts of instability \ may cause the object afflicted with it to glow a dark purple, which is often known simply as Glow, which spreads \ the instability. You should stay far away from anyone afflicted by Glow, as they will be a danger to both themselves and \ - anything nearby. Multiple sources of Glow can perpetuate the glow for a very long time if they are not seperated.
" + anything nearby. Multiple sources of Glow can perpetuate the glow for a very long time if they are not separated.
" dat += "
" dat += "You should strive to keep you and your apprentices' cores secure. To help with this, each core comes with a \ locking mechanism, which should make attempts at forceful removal by third parties (or you) futile, until it is \ @@ -385,4 +385,3 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance qdel(AM) return to_chat(user, "\The [src] is unable to refund \the [AM].") - diff --git a/code/game/gamemodes/technomancer/spells/aspect_aura.dm b/code/game/gamemodes/technomancer/spells/aspect_aura.dm index eec4304d71..e4cd0f82d2 100644 --- a/code/game/gamemodes/technomancer/spells/aspect_aura.dm +++ b/code/game/gamemodes/technomancer/spells/aspect_aura.dm @@ -19,7 +19,7 @@ if(istype(W, /obj/item/weapon/spell)) var/obj/item/weapon/spell/spell = W if(!spell.aspect || spell.aspect == ASPECT_CHROMATIC) - to_chat(user, "You cannot combine \the [spell] with \the [src], as the aspects are incompatable.") + to_chat(user, "You cannot combine \the [spell] with \the [src], as the aspects are incompatible.") return user.drop_item(src) src.loc = null @@ -132,4 +132,4 @@ /obj/item/weapon/spell/aura/biomed/on_use_cast(mob/living/user) heal_allies_only = !heal_allies_only - to_chat(user, "Your aura will now heal [heal_allies_only ? "your allies" : "everyone"] near you.") \ No newline at end of file + to_chat(user, "Your aura will now heal [heal_allies_only ? "your allies" : "everyone"] near you.") diff --git a/code/game/gamemodes/technomancer/spells/insert/asphyxiation.dm b/code/game/gamemodes/technomancer/spells/insert/asphyxiation.dm index 08e47bf499..341045e376 100644 --- a/code/game/gamemodes/technomancer/spells/insert/asphyxiation.dm +++ b/code/game/gamemodes/technomancer/spells/insert/asphyxiation.dm @@ -1,7 +1,7 @@ /datum/technomancer/spell/asphyxiation name = "Asphyxiation" desc = "Launches a projectile at a target. If the projectile hits, a short-lived toxin is created inside what the projectile \ - hits, which inhibits the delivery of oxygen. The effectiveness of the toxin is heavily dependant on how healthy the target is, \ + hits, which inhibits the delivery of oxygen. The effectiveness of the toxin is heavily dependent on how healthy the target is, \ with the target taking more damage the more wounded they are. The effect lasts for twelve seconds." cost = 140 obj_path = /obj/item/weapon/spell/insert/asphyxiation @@ -72,4 +72,4 @@ //to_world("Predicted oxycrit.") return 1 //If we're at this point, the spell is not going to result in critting. - return 0 \ No newline at end of file + return 0 diff --git a/code/game/gamemodes/technomancer/spells/modifier/mend_life.dm b/code/game/gamemodes/technomancer/spells/modifier/mend_life.dm index a766767b18..35a1e8c1c2 100644 --- a/code/game/gamemodes/technomancer/spells/modifier/mend_life.dm +++ b/code/game/gamemodes/technomancer/spells/modifier/mend_life.dm @@ -1,7 +1,7 @@ /datum/technomancer/spell/mend_life name = "Mend Life" desc = "Heals minor wounds, such as cuts, bruises, burns, and other non-lifethreatening injuries. \ - Instability is split between the target and technomancer, if seperate. The function will end prematurely \ + Instability is split between the target and technomancer, if separate. The function will end prematurely \ if the target is completely healthy, preventing further instability." spell_power_desc = "Healing amount increased." cost = 50 @@ -41,4 +41,4 @@ if(origin) var/mob/living/L = origin.resolve() if(istype(L)) - L.adjust_instability(1) \ No newline at end of file + L.adjust_instability(1) diff --git a/code/game/gamemodes/technomancer/spells/modifier/mend_synthetic.dm b/code/game/gamemodes/technomancer/spells/modifier/mend_synthetic.dm index 5b05ce56b8..33405f3a42 100644 --- a/code/game/gamemodes/technomancer/spells/modifier/mend_synthetic.dm +++ b/code/game/gamemodes/technomancer/spells/modifier/mend_synthetic.dm @@ -1,7 +1,7 @@ /datum/technomancer/spell/mend_synthetic name = "Mend Synthetic" desc = "Repairs minor damage to prosthetics. \ - Instability is split between the target and technomancer, if seperate. The function will end prematurely \ + Instability is split between the target and technomancer, if separate. The function will end prematurely \ if the target is completely healthy, preventing further instability." spell_power_desc = "Healing amount increased." cost = 50 @@ -47,4 +47,4 @@ if(origin) var/mob/living/L = origin.resolve() if(istype(L)) - L.adjust_instability(1) \ No newline at end of file + L.adjust_instability(1) diff --git a/code/game/gamemodes/technomancer/spells/modifier/purify.dm b/code/game/gamemodes/technomancer/spells/modifier/purify.dm index ae90a04cb1..69cfac18d5 100644 --- a/code/game/gamemodes/technomancer/spells/modifier/purify.dm +++ b/code/game/gamemodes/technomancer/spells/modifier/purify.dm @@ -1,7 +1,7 @@ /datum/technomancer/spell/purify name = "Purify" desc = "Clenses the body of harmful impurities, such as toxins, radiation, viruses, genetic damage, and such. \ - Instability is split between the target and technomancer, if seperate. The function will end prematurely \ + Instability is split between the target and technomancer, if separate. The function will end prematurely \ if the target is completely healthy, preventing further instability." spell_power_desc = "Healing amount increased." cost = 25 @@ -37,4 +37,4 @@ if(origin) var/mob/living/L = origin.resolve() if(istype(L)) - L.adjust_instability(1) \ No newline at end of file + L.adjust_instability(1) diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index aa83185740..baa151eecb 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -34,7 +34,7 @@ if(!B || !I) return - INVOKE_ASYNC(src, .proc/religion_prompts, H, B, I) + INVOKE_ASYNC(src, PROC_REF(religion_prompts), H, B, I) /datum/job/chaplain/proc/religion_prompts(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B, obj/item/weapon/card/id/I) var/religion_name = "Unitarianism" diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm index 75663dfe47..af08b31432 100644 --- a/code/game/jobs/job/civilian_vr.dm +++ b/code/game/jobs/job/civilian_vr.dm @@ -139,11 +139,11 @@ /datum/alt_title/historian title = "Historian" - title_blurb = "The Historian uses the Library as a base of operation to record any important events occuring on station." + title_blurb = "The Historian uses the Library as a base of operation to record any important events occurring on station." /datum/alt_title/archivist title = "Archivist" - title_blurb = "The Archivist uses the Library as a base of operation to record any important events occuring on station." + title_blurb = "The Archivist uses the Library as a base of operation to record any important events occurring on station." /datum/alt_title/professor title = "Professor" diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index ac18a3578c..71c1d79b83 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -34,7 +34,7 @@ outfit_type = /decl/hierarchy/outfit/job/science/rd job_description = "The Research Director manages and maintains the Research department. They are required to ensure the safety of the entire crew, \ - at least with regards to anything occuring in the Research department, and to inform the crew of any disruptions that \ + at least with regards to anything occurring in the Research department, and to inform the crew of any disruptions that \ might originate from Research. The Research Director often has at least passing knowledge of most of the Research department, but \ are encouraged to allow their staff to perform their own duties." alt_titles = list("Research Supervisor" = /datum/alt_title/research_supervisor) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index c526550139..92053f4222 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -26,7 +26,7 @@ var/global/datum/controller/occupations/job_master if(!job) continue if(job.faction != faction) continue occupations += job - sortTim(occupations, /proc/cmp_job_datums) + sortTim(occupations, GLOBAL_PROC_REF(cmp_job_datums)) return 1 diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 21bba5a1e6..ec666955e7 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -74,6 +74,7 @@ /// Keys are things like temperature and certain gasses. Values are lists, which contain, in order: /// red warning minimum value, yellow warning minimum value, yellow warning maximum value, red warning maximum value + /// Use code\defines\gases.dm as reference for id/name. Please keep it consistent var/list/TLV = list() var/list/trace_gas = list("nitrous_oxide", "volatile_fuel") //list of other gases that this air alarm is able to detect @@ -111,7 +112,7 @@ . = ..() req_access = list(access_rd, access_atmospherics, access_engine_equip) TLV["oxygen"] = list(-1.0, -1.0,-1.0,-1.0) // Partial pressure, kpa - TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa + TLV["carbon_dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa TLV["phoron"] = list(-1.0, -1.0, 0, 0.5) // Partial pressure, kpa TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa TLV["pressure"] = list(0,ONE_ATMOSPHERE*0.10,ONE_ATMOSPHERE*1.40,ONE_ATMOSPHERE*1.60) /* kpa */ @@ -150,7 +151,7 @@ // breathable air according to human/Life() TLV["oxygen"] = list(16, 19, 135, 140) // Partial pressure, kpa TLV["nitrogen"] = list(0, 0, 135, 140) // Partial pressure, kpa - TLV["carbon dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa + TLV["carbon_dioxide"] = list(-1.0, -1.0, 5, 10) // Partial pressure, kpa TLV["phoron"] = list(-1.0, -1.0, 0, 0.5) // Partial pressure, kpa TLV["other"] = list(-1.0, -1.0, 0.5, 1.0) // Partial pressure, kpa TLV["pressure"] = list(ONE_ATMOSPHERE * 0.80, ONE_ATMOSPHERE * 0.90, ONE_ATMOSPHERE * 1.10, ONE_ATMOSPHERE * 1.20) /* kpa */ @@ -285,7 +286,7 @@ pressure_dangerlevel = TEST_TLV_VALUES // not local because it's used in process() LOAD_TLV_VALUES(TLV["oxygen"], environment.gas["oxygen"]*partial_pressure) var/oxygen_dangerlevel = TEST_TLV_VALUES - LOAD_TLV_VALUES(TLV["carbon dioxide"], environment.gas["carbon_dioxide"]*partial_pressure) + LOAD_TLV_VALUES(TLV["carbon_dioxide"], environment.gas["carbon_dioxide"]*partial_pressure) var/co2_dangerlevel = TEST_TLV_VALUES LOAD_TLV_VALUES(TLV["phoron"], environment.gas["phoron"]*partial_pressure) var/phoron_dangerlevel = TEST_TLV_VALUES @@ -632,9 +633,9 @@ list("name" = "Oxygen", "command" = "o2_scrub", "val" = info["filter_o2"]), list("name" = "Nitrogen", "command" = "n2_scrub", "val" = info["filter_n2"]), list("name" = "Carbon Dioxide", "command" = "co2_scrub","val" = info["filter_co2"]), - list("name" = "Toxin" , "command" = "tox_scrub","val" = info["filter_phoron"]), + list("name" = "Phoron" , "command" = "tox_scrub","val" = info["filter_phoron"]), list("name" = "Nitrous Oxide", "command" = "n2o_scrub","val" = info["filter_n2o"]), - list("name" = "Fuel", "command" = "fuel_scrub","val" = info["filter_fuel"]) + list("name" = "Volatile Fuel", "command" = "fuel_scrub","val" = info["filter_fuel"]) ) )) data["scrubbers"] = scrubbers @@ -653,7 +654,7 @@ var/list/selected var/list/thresholds = list() - var/list/gas_names = list("oxygen", "carbon dioxide", "phoron", "other") + var/list/gas_names = list("oxygen", "carbon_dioxide", "phoron", "other") //Gas ids made to match code\defines\gases.dm for(var/g in gas_names) thresholds[++thresholds.len] = list("name" = g, "settings" = list()) selected = TLV[g] diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index bfe95bada7..c50080feb9 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -48,13 +48,13 @@ "load" = scrubber.last_power_draw, "area" = get_area(scrubber), ))) - + return list("scrubbers" = working) /obj/machinery/computer/area_atmos/tgui_act(action, params) if(..()) return TRUE - + switch(action) if("toggle") var/scrub_id = params["id"] @@ -66,10 +66,10 @@ S.update_icon() . = TRUE if("allon") - INVOKE_ASYNC(src, .proc/toggle_all, TRUE) + INVOKE_ASYNC(src, PROC_REF(toggle_all), TRUE) . = TRUE if("alloff") - INVOKE_ASYNC(src, .proc/toggle_all, FALSE) + INVOKE_ASYNC(src, PROC_REF(toggle_all), FALSE) . = TRUE if("scan") scanscrubbers() @@ -78,7 +78,7 @@ add_fingerprint(usr) /obj/machinery/computer/area_atmos/proc/toggle_all(on) - for(var/id in connectedscrubbers) + for(var/id in connectedscrubbers) var/obj/machinery/portable_atmospherics/powered/scrubber/huge/S = connectedscrubbers["[id]"] if(!validscrubber(S)) connectedscrubbers -= S diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index cebc88566e..236f6d6837 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -30,7 +30,7 @@ var/filtertext /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container, subtypesof(/datum/material), 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, .proc/AfterMaterialInsert)) + AddComponent(/datum/component/material_container, subtypesof(/datum/material), 0, MATCONTAINER_EXAMINE, _after_insert = CALLBACK(src, PROC_REF(AfterMaterialInsert))) . = ..() if(!autolathe_recipes) autolathe_recipes = new() diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 227e36948c..62a2a154a5 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -142,7 +142,7 @@ . = TRUE switch(action) if("activate") - INVOKE_ASYNC(src, .proc/activate) + INVOKE_ASYNC(src, PROC_REF(activate)) return TRUE if("detach") if(beaker) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 24a7d21a5f..4313ba5c2f 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -50,12 +50,19 @@ var/global/list/minor_air_alarms = list() var/list/alarms = atmosphere_alarm.major_alarms() if(alarms.len) icon_screen = "alert:2" + playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications + spawn(100) // Wait 10 seconds, then play it again + playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications else alarms = atmosphere_alarm.minor_alarms() if(alarms.len) icon_screen = "alert:1" + playsound(src, 'modular_chomp/sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications + spawn(100) // Wait 10 seconds, then play it again + playsound(src, 'modular_chomp/sound/effects/comp_alert_minor.ogg', 50, 1) // CHOMPEdit: Alarm notifications else icon_screen = initial(icon_screen) + playsound(src, 'modular_chomp/sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications ..() /obj/machinery/computer/atmos_alert/tgui_act(action, params) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 60e5727a7c..7930231cbf 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -348,7 +348,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) else return FALSE diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 309453ee29..7b318b966c 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -226,5 +226,5 @@ log_game("[key_name(usr)] emagged [key_name(R)] using robotic console!") message_admins("[key_name_admin(usr)] emagged [key_name_admin(R)] using robotic console!") R.emagged = TRUE - to_chat(R, "Failsafe protocols overriden. New tools available.") + to_chat(R, "Failsafe protocols overridden. New tools available.") . = TRUE diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 2e315362cf..fea0fa3950 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -336,7 +336,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) if("photo_front") var/icon/photo = get_photo(usr) if(photo && active1) diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 26e45d7f40..876a2009d1 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -251,7 +251,7 @@ printing = TRUE // playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/print_finish), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(print_finish)), 5 SECONDS) else return FALSE diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index 051a8e368b..b4da38c52d 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -49,6 +49,8 @@ var/list/alarms = alarm_monitor ? alarm_monitor.major_alarms() : list() if(alarms.len) icon_screen = "alert:2" + playsound(src, 'modular_chomp/sound/effects/comp_alert_major.ogg', 70, 1) // CHOMPEdit: Alarm notifications else icon_screen = initial(icon_screen) + playsound(src, 'modular_chomp/sound/effects/comp_alert_clear.ogg', 50, 1) // CHOMPEdit: Alarm notifications ..() diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 9c6950bfbe..7c148201af 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -273,7 +273,7 @@ force_open() if(autoclose && src.operating && !(stat & BROKEN || stat & NOPOWER)) - addtimer(CALLBACK(src, .proc/close, 15 SECONDS)) + addtimer(CALLBACK(src, PROC_REF(close), 15 SECONDS)) return 1 // Proc: close() diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index c62c7ea94d..0a3e3973b7 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -94,7 +94,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/close) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, close)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) @@ -118,7 +118,7 @@ for(var/obj/machinery/door/window/brigdoor/door in targets) if(!door.density) continue - INVOKE_ASYNC(door, /obj/machinery/door/window/brigdoor.proc/open) + INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/machinery/door/window/brigdoor, open)) for(var/obj/structure/closet/secure_closet/brig/C in targets) if(C.broken) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index fa31ef365f..ad3212fa49 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -163,6 +163,7 @@ return !density // Block airflow unless density = FALSE /obj/machinery/door/proc/bumpopen(mob/user as mob) + if(!user) return // CHOMPedit - Check if the mob is even valid before proceeding if(operating) return if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit return diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 23b71bdb0f..4f5adbb677 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -10,7 +10,7 @@ /obj/machinery/door/airlock/multi_tile/Initialize(mapload) . = ..() SetBounds() - RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/SetBounds) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(SetBounds)) apply_opacity_to_my_turfs(opacity) /obj/machinery/door/airlock/multi_tile/set_opacity() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 28afc5e9ff..822e950d63 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -67,13 +67,13 @@ if(istype(bot)) if(density && src.check_access(bot.botcard)) open() - addtimer(CALLBACK(src, .proc/close), 50) + addtimer(CALLBACK(src, PROC_REF(close)), 50) else if(istype(AM, /obj/mecha)) var/obj/mecha/mecha = AM if(density) if(mecha.occupant && src.allowed(mecha.occupant)) open() - addtimer(CALLBACK(src, .proc/close), 50) + addtimer(CALLBACK(src, PROC_REF(close)), 50) return if (!( ticker )) return @@ -81,7 +81,7 @@ return if (density && allowed(AM)) open() - addtimer(CALLBACK(src, .proc/close), check_access(null)? 50 : 20) + addtimer(CALLBACK(src, PROC_REF(close)), check_access(null)? 50 : 20) /obj/machinery/door/window/CanPass(atom/movable/mover, turf/target) if(istype(mover) && mover.checkpass(PASSGLASS)) diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm index 1eda308142..01f140e9d2 100644 --- a/code/game/machinery/exonet_node.dm +++ b/code/game/machinery/exonet_node.dm @@ -17,6 +17,9 @@ var/list/logs = list() // Gets written to by exonet's send_message() function. circuit = /obj/item/weapon/circuitboard/telecomms/exonet_node + + var/datum/looping_sound/tcomms/soundloop // CHOMPStation Add: Hummy noises + var/noisy = TRUE // CHOMPStation Add: Hummy noises, this starts on // Proc: New() // Parameters: None // Description: Adds components to the machine for deconstruction. @@ -26,6 +29,24 @@ desc = "This machine is one of many, many nodes inside [using_map.starsys_name]'s section of the Exonet, connecting the [using_map.station_short] to the rest of the system, at least \ electronically." + // CHOMPAdd: Exonet Machinery humming + soundloop = new(list(src), FALSE) + if(prob(60)) // 60% chance to change the midloop + if(prob(40)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_02.ogg' = 1) + soundloop.mid_length = 40 + else if(prob(20)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_03.ogg' = 1) + soundloop.mid_length = 10 + else + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_04.ogg' = 1) + soundloop.mid_length = 30 + // CHOMPAdd End + soundloop.start() // CHOMPStation Edit: This starts on + +/obj/machinery/exonet_node/Destroy() // CHOMPAdd: Just in case. + QDEL_NULL(soundloop) // CHOMPAdd: Exonet noises + // Proc: update_icon() // Parameters: None // Description: Self explanatory. @@ -48,12 +69,19 @@ if(stat & (BROKEN|NOPOWER|EMPED)) on = 0 update_idle_power_usage(0) + soundloop.stop() // CHOMPStation Add: Hummy noises + noisy = FALSE // CHOMPStation Add: Hummy noises else on = 1 update_idle_power_usage(2500) else on = 0 update_idle_power_usage(0) + soundloop.stop() // CHOMPStation Add: Hummy noises + noisy = FALSE // CHOMPStation Add: Hummy noises + if(!noisy && on) // CHOMPStation Add: Hummy noises, safety in case it was already on + soundloop.start() // CHOMPStation Add: Hummy noises + noisy = TRUE // CHOMPStation Add: Hummy noises update_icon() // Proc: emp_act() diff --git a/code/game/machinery/holoposter.dm b/code/game/machinery/holoposter.dm index 2e1d609ccc..a5174380d2 100644 --- a/code/game/machinery/holoposter.dm +++ b/code/game/machinery/holoposter.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(holoposters) . = ..() set_rand_sprite() GLOB.holoposters += src - mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) + mytimer = addtimer(CALLBACK(src, PROC_REF(set_rand_sprite)), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) /obj/machinery/holoposter/Destroy() GLOB.holoposters -= src @@ -92,7 +92,7 @@ GLOBAL_LIST_EMPTY(holoposters) stat &= ~BROKEN icon_forced = FALSE if(!mytimer) - mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) + mytimer = addtimer(CALLBACK(src, PROC_REF(set_rand_sprite)), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP) set_rand_sprite() return icon_forced = TRUE @@ -114,4 +114,3 @@ GLOBAL_LIST_EMPTY(holoposters) /obj/machinery/holoposter/emp_act() stat |= BROKEN update_icon() - diff --git a/code/game/machinery/machinery_power.dm b/code/game/machinery/machinery_power.dm index be648d0f80..0f4c2ef01b 100644 --- a/code/game/machinery/machinery_power.dm +++ b/code/game/machinery/machinery_power.dm @@ -80,7 +80,7 @@ // Or in Destroy at all, but especially after the ..(). /obj/machinery/Destroy() if(ismovable(loc)) - GLOB.moved_event.unregister(loc, src, .proc/update_power_on_move) // Unregister just in case + GLOB.moved_event.unregister(loc, src, PROC_REF(update_power_on_move)) // Unregister just in case var/power = POWER_CONSUMPTION REPORT_POWER_CONSUMPTION_CHANGE(power, 0) . = ..() @@ -91,9 +91,9 @@ . = ..() update_power_on_move(src, old_loc, loc) if(ismovable(loc)) // Register for recursive movement (if the thing we're inside moves) - GLOB.moved_event.register(loc, src, .proc/update_power_on_move) + GLOB.moved_event.register(loc, src, PROC_REF(update_power_on_move)) if(ismovable(old_loc)) // Unregister recursive movement. - GLOB.moved_event.unregister(old_loc, src, .proc/update_power_on_move) + GLOB.moved_event.unregister(old_loc, src, PROC_REF(update_power_on_move)) /obj/machinery/proc/update_power_on_move(atom/movable/mover, atom/old_loc, atom/new_loc) var/area/old_area = get_area(old_loc) diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm index ef7612bf87..8d8b36eaa2 100644 --- a/code/game/machinery/pda_multicaster.dm +++ b/code/game/machinery/pda_multicaster.dm @@ -12,6 +12,9 @@ var/toggle = 1 // If we /should/ be active or not, var/list/internal_PDAs = list() // Assoc list of PDAs inside of this, with the department name being the index, + var/datum/looping_sound/tcomms/soundloop // CHOMPStation Add: Hummy noises + var/noisy = TRUE // CHOMPStation Add: Hummy noises + /obj/machinery/pda_multicaster/New() ..() internal_PDAs = list("command" = new /obj/item/device/pda/multicaster/command(src), @@ -23,6 +26,24 @@ "cargo" = new /obj/item/device/pda/multicaster/cargo(src), "civilian" = new /obj/item/device/pda/multicaster/civilian(src)) +/obj/machinery/pda_multicaster/Initialize() + . = ..() + + // CHOMPAdd: PDA Multicaster Server humming + soundloop = new(list(src), FALSE) + if(prob(60)) // 60% chance to change the midloop + if(prob(40)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_02.ogg' = 1) + soundloop.mid_length = 40 + else if(prob(20)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_03.ogg' = 1) + soundloop.mid_length = 10 + else + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_04.ogg' = 1) + soundloop.mid_length = 30 + soundloop.start() // Have to do this here bc it starts on + // CHOMPAdd End + /obj/machinery/pda_multicaster/prebuilt/Initialize() . = ..() default_apply_parts() @@ -30,6 +51,7 @@ /obj/machinery/pda_multicaster/Destroy() for(var/atom/movable/AM in contents) qdel(AM) + QDEL_NULL(soundloop) ..() /obj/machinery/pda_multicaster/update_icon() @@ -73,14 +95,20 @@ on = 0 update_PDAs(1) // 1 being to turn off. update_idle_power_usage(0) + soundloop.stop() // CHOMPStation Add: Hummy noises + noisy = FALSE // CHOMPStation Add: Hummy noises else on = 1 update_PDAs(0) update_idle_power_usage(750) + soundloop.start() // CHOMPStation Add: Hummy noises + noisy = TRUE // CHOMPStation Add: Hummy noises else on = 0 update_PDAs(1) update_idle_power_usage(0) + soundloop.stop() // CHOMPStation Add: Hummy noises + noisy = FALSE // CHOMPStation Add: Hummy noises update_icon() /obj/machinery/pda_multicaster/process() diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm index e249697272..b0f7384b6f 100644 --- a/code/game/machinery/pointdefense.dm +++ b/code/game/machinery/pointdefense.dm @@ -14,7 +14,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) icon = 'icons/obj/pointdefense.dmi' icon_state = "control" power_channel = EQUIP // CHOMPStation Edit Starts - use_power = USE_POWER_ACTIVE + use_power = USE_POWER_ACTIVE active_power_usage = 5 KILOWATTS // CHOMPStation Edit Ends density = TRUE anchored = TRUE @@ -141,6 +141,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) var/rotation_speed = 4.5 SECONDS //How quickly we turn to face threats var/datum/weakref/engaging = null // The meteor we're shooting at var/id_tag = null + var/fire_sounds = list('sound/weapons/frigate_turret/frigate_turret_fire1.ogg', 'sound/weapons/frigate_turret/frigate_turret_fire2.ogg', 'sound/weapons/frigate_turret/frigate_turret_fire3.ogg', 'sound/weapons/frigate_turret/frigate_turret_fire4.ogg') // CHOMPEdit: Pew /obj/machinery/pointdefense/Initialize() . = ..() @@ -208,7 +209,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) var/Angle = round(Get_Angle(src,M)) var/matrix/rot_matrix = matrix() rot_matrix.Turn(Angle) - addtimer(CALLBACK(src, .proc/finish_shot, target), rotation_speed) + addtimer(CALLBACK(src, PROC_REF(finish_shot), target), rotation_speed) animate(src, transform = rot_matrix, rotation_speed, easing = SINE_EASING) set_dir(ATAN2(transform.b, transform.a) > 0 ? NORTH : SOUTH) @@ -224,10 +225,12 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) if(!istype(M)) return //We throw a laser but it doesnt have to hit for meteor to explode - var/obj/item/projectile/beam/pointdefense/beam = new(get_turf(src)) - playsound(src, 'sound/weapons/mandalorian.ogg', 75, 1) + var/obj/item/projectile/beam/coildefense/coil = new(get_turf(src)) + playsound(src, fire_sounds, 75, 1, 40, pressure_affected = FALSE, ignore_walls = TRUE) // CHOMPEdit: Pew use_power_oneoff(idle_power_usage * 10) - beam.launch_projectile(target = M.loc, user = src) + coil.launch_projectile(target = M.loc, user = src) // CHOMPEdit: Changing "beam" var to "coil" for the new coilgun type point defense turrets (to match the coilgun sprite and sfx names) + spawn(10) + playsound(src, fire_sounds, 75, 1, 40, pressure_affected = FALSE, ignore_walls = TRUE) // CHOMPEdit: Pew /obj/machinery/pointdefense/process() ..() @@ -269,7 +272,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense) engaging = target Shoot(target) return - + // Then, focus fire on existing targets for(var/obj/effect/meteor/M in existing_targets) if(targeting_check(M)) diff --git a/code/game/machinery/suit_storage/suit_cycler.dm b/code/game/machinery/suit_storage/suit_cycler.dm new file mode 100644 index 0000000000..56a081737f --- /dev/null +++ b/code/game/machinery/suit_storage/suit_cycler.dm @@ -0,0 +1,547 @@ +GLOBAL_LIST_EMPTY(suit_cycler_typecache) + +/obj/machinery/suit_cycler + name = "suit cycler" + desc = "An industrial machine for painting and refitting voidsuits." + anchored = TRUE + density = TRUE + + icon = 'icons/obj/suit_cycler.dmi' + icon_state = "suit_cycler" + + req_access = list(access_captain,access_heads) + + var/active = 0 // PLEASE HOLD. + var/safeties = 1 // The cycler won't start with a living thing inside it unless safeties are off. + var/irradiating = 0 // If this is > 0, the cycler is decontaminating whatever is inside it. + var/radiation_level = 2 // 1 is removing germs, 2 is removing blood, 3 is removing phoron. + var/model_text = "" // Some flavour text for the topic box. + var/locked = 1 // If locked, nothing can be taken from or added to the cycler. + var/can_repair // If set, the cycler can repair voidsuits. + var/electrified = 0 + + /// Departments that the cycler can paint suits to look like. Null assumes all except specially excluded ones. + /// No idea why these particular suits are the default cycler's options. + var/list/limit_departments = list( + /datum/suit_cycler_choice/department/eng/standard, + /datum/suit_cycler_choice/department/crg/mining, + /datum/suit_cycler_choice/department/med/standard, + /datum/suit_cycler_choice/department/sec/standard, + /datum/suit_cycler_choice/department/eng/atmospherics, + /datum/suit_cycler_choice/department/eng/hazmat, + /datum/suit_cycler_choice/department/eng/construction, + /datum/suit_cycler_choice/department/med/biohazard, + /datum/suit_cycler_choice/department/med/emt, + /datum/suit_cycler_choice/department/sec/riot, + /datum/suit_cycler_choice/department/sec/eva + ) + + /// Species that the cycler can refit suits for. Null assumes all except specially excluded ones. + var/list/limit_species + + var/list/departments + var/list/species + var/list/emagged_departments + + var/datum/suit_cycler_choice/department/target_department + var/datum/suit_cycler_choice/species/target_species + + var/mob/living/carbon/human/occupant = null + var/obj/item/clothing/suit/space/void/suit = null + var/obj/item/clothing/head/helmet/space/helmet = null + + var/datum/wires/suit_storage_unit/wires = null + +/obj/machinery/suit_cycler/Initialize() + . = ..() + + departments = load_departments() + species = load_species() + emagged_departments = load_emagged() + limit_departments = null // just for mem + + target_department = departments["No Change"] + target_species = species["No Change"] + + if(!target_department || !target_species) + stat |= BROKEN + + wires = new(src) + +/obj/machinery/suit_cycler/Destroy() + qdel(wires) + wires = null + return ..() + +/obj/machinery/suit_cycler/proc/load_departments() + var/list/typecache = GLOB.suit_cycler_typecache[type] + // First of our type + if(!typecache) + typecache = list() + GLOB.suit_cycler_typecache[type] = typecache + var/list/loaded = typecache["departments"] + // No departments loaded + if(!loaded) + loaded = list() + typecache["departments"] = loaded + for(var/datum/suit_cycler_choice/department/thing as anything in GLOB.suit_cycler_departments) + if(istype(thing, /datum/suit_cycler_choice/department/noop)) + loaded[thing.name] = thing + continue + if(limit_departments && !is_type_in_list(thing, limit_departments)) + continue + loaded[thing.name] = thing + + return loaded + +/obj/machinery/suit_cycler/proc/load_species() + var/list/typecache = GLOB.suit_cycler_typecache[type] + // First of our type + if(!typecache) + typecache = list() + GLOB.suit_cycler_typecache[type] = typecache + var/list/loaded = typecache["species"] + // No species loaded + if(!loaded) + loaded = list() + typecache["species"] = loaded + for(var/datum/suit_cycler_choice/species/thing as anything in GLOB.suit_cycler_species) + if(istype(thing, /datum/suit_cycler_choice/species/noop)) + loaded[thing.name] = thing + continue + if(limit_species && !is_type_in_list(thing, limit_species)) + continue + loaded[thing.name] = thing + + return loaded + +/obj/machinery/suit_cycler/proc/load_emagged() + var/list/typecache = GLOB.suit_cycler_typecache[type] + // First of our type + if(!typecache) + typecache = list() + GLOB.suit_cycler_typecache[type] = typecache + var/list/loaded = typecache["emagged"] + // No emagged loaded + if(!loaded) + loaded = list() + typecache["emagged"] = loaded + for(var/datum/suit_cycler_choice/department/thing as anything in GLOB.suit_cycler_emagged) + loaded[thing.name] = thing + + return loaded + +/obj/machinery/suit_cycler/attack_ai(mob/user as mob) + return attack_hand(user) + +/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob) + + if(electrified != 0) + if(shock(user, 100)) + return + + //Hacking init. + if(istype(I, /obj/item/device/multitool) || I.is_wirecutter()) + if(panel_open) + attack_hand(user) + return + //Other interface stuff. + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + + if(!(ismob(G.affecting))) + return + + if(locked) + to_chat(user, "The suit cycler is locked.") + return + + if(contents.len > 0) + to_chat(user, "There is no room inside the cycler for [G.affecting.name].") + return + + visible_message("[user] starts putting [G.affecting.name] into the suit cycler.", 3) + + if(do_after(user, 20)) + if(!G || !G.affecting) return + var/mob/M = G.affecting + if(M.client) + M.client.perspective = EYE_PERSPECTIVE + M.client.eye = src + M.loc = src + occupant = M + + add_fingerprint(user) + qdel(G) + + updateUsrDialog() + + return + else if(I.is_screwdriver()) + + panel_open = !panel_open + playsound(src, I.usesound, 50, 1) + to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") + updateUsrDialog() + return + + else if(istype(I,/obj/item/clothing/head/helmet/space/void) && !istype(I, /obj/item/clothing/head/helmet/space/rig)) + var/obj/item/clothing/head/helmet/space/void/IH = I + + if(locked) + to_chat(user, "The suit cycler is locked.") + return + + if(helmet) + to_chat(user, "The cycler already contains a helmet.") + return + + if(IH.no_cycle) + to_chat(user, "That item is not compatible with the cycler's protocols.") + return + + if(I.icon_override == CUSTOM_ITEM_MOB) + to_chat(user, "You cannot refit a customised voidsuit.") + return + + //VOREStation Edit BEGINS + //Make it so autolok suits can't be refitted in a cycler + if(istype(I,/obj/item/clothing/head/helmet/space/void/autolok)) + to_chat(user, "You cannot refit an autolok helmet. In fact you shouldn't even be able to remove it in the first place. Inform an admin!") + return + + //Ditto the Mk7 + if(istype(I,/obj/item/clothing/head/helmet/space/void/responseteam)) + to_chat(user, "The cycler indicates that the Mark VII Emergency Response Helmet is not compatible with the refitting system. How did you manage to detach it anyway? Inform an admin!") + return + //VOREStation Edit ENDS + + to_chat(user, "You fit \the [I] into the suit cycler.") + user.drop_item() + I.loc = src + helmet = I + + update_icon() + updateUsrDialog() + return + + else if(istype(I,/obj/item/clothing/suit/space/void)) + var/obj/item/clothing/suit/space/void/IS = I + + if(locked) + to_chat(user, "The suit cycler is locked.") + return + + if(suit) + to_chat(user, "The cycler already contains a voidsuit.") + return + + if(IS.no_cycle) + to_chat(user, "That item is not compatible with the cycler's protocols.") + return + + if(I.icon_override == CUSTOM_ITEM_MOB) + to_chat(user, "You cannot refit a customised voidsuit.") + return + + //VOREStation Edit BEGINS + //Make it so autolok suits can't be refitted in a cycler + if(istype(I,/obj/item/clothing/suit/space/void/autolok)) + to_chat(user, "You cannot refit an autolok suit.") + return + + //Ditto the Mk7 + if(istype(I,/obj/item/clothing/suit/space/void/responseteam)) + to_chat(user, "The cycler indicates that the Mark VII Emergency Response Suit is not compatible with the refitting system.") + return + //VOREStation Edit ENDS + + to_chat(user, "You fit \the [I] into the suit cycler.") + user.drop_item() + I.loc = src + suit = I + + update_icon() + updateUsrDialog() + return + + ..() + +/obj/machinery/suit_cycler/emag_act(var/remaining_charges, var/mob/user) + if(emagged) + to_chat(user, "The cycler has already been subverted.") + return + + //Clear the access reqs, disable the safeties, and open up all paintjobs. + to_chat(user, "You run the sequencer across the interface, corrupting the operating protocols.") + + emagged = 1 + safeties = 0 + req_access = list() + updateUsrDialog() + return 1 + +/obj/machinery/suit_cycler/attack_hand(mob/user as mob) + add_fingerprint(user) + if(..() || stat & (BROKEN|NOPOWER)) + return + + if(!user.IsAdvancedToolUser()) + return 0 + + if(electrified != 0) + if(shock(user, 100)) + return + + tgui_interact(user) + +/obj/machinery/suit_cycler/tgui_state(mob/user) + return GLOB.tgui_notcontained_state + +/obj/machinery/suit_cycler/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "SuitCycler", name) + ui.open() + +/obj/machinery/suit_cycler/tgui_data(mob/user) + var/list/data = list() + + data["model_text"] = model_text + data["can_repair"] = can_repair + data["userHasAccess"] = allowed(user) + + data["locked"] = locked + data["active"] = active + data["safeties"] = safeties + data["uv_active"] = (active && irradiating > 0) + data["uv_level"] = radiation_level + data["max_uv_level"] = emagged ? 5 : 3 + if(helmet) + data["helmet"] = helmet.name + else + data["helmet"] = null + if(suit) + data["suit"] = suit.name + if(istype(suit) && can_repair) + data["damage"] = suit.damage + else + data["suit"] = null + data["damage"] = null + if(occupant) + data["occupied"] = TRUE + else + data["occupied"] = FALSE + + return data + +/obj/machinery/suit_cycler/tgui_static_data(mob/user) + var/list/data = list() + + // tgui gets angy if you pass values too + var/list/department_keys = list() + for(var/key in departments) + department_keys += key + + // emagged at the bottom + if(emagged) + for(var/key in emagged_departments) + department_keys += key + + var/list/species_keys = list() + for(var/key in species) + species_keys += key + + data["departments"] = department_keys + data["species"] = species_keys + + return data + +/obj/machinery/suit_cycler/tgui_act(action, params) + if(..()) + return TRUE + + switch(action) + if("dispense") + switch(params["item"]) + if("helmet") + helmet.forceMove(get_turf(src)) + helmet = null + if("suit") + suit.forceMove(get_turf(src)) + suit = null + . = TRUE + + if("department") + var/choice = params["department"] + if(choice in departments) + target_department = departments[choice] + else if(emagged && (choice in emagged_departments)) + target_department = emagged_departments[choice] + . = TRUE + + if("species") + var/choice = params["species"] + if(choice in species) + target_species = species[choice] + . = TRUE + + if("radlevel") + radiation_level = clamp(params["radlevel"], 1, emagged ? 5 : 3) + . = TRUE + + if("repair_suit") + if(!suit || !can_repair) + return + active = 1 + spawn(100) + repair_suit() + finished_job() + . = TRUE + + if("apply_paintjob") + if(!suit && !helmet) + return + active = 1 + spawn(100) + apply_paintjob() + finished_job() + . = TRUE + + if("lock") + if(allowed(usr)) + locked = !locked + to_chat(usr, "You [locked ? "" : "un"]lock \the [src].") + else + to_chat(usr, "Access denied.") + . = TRUE + + if("eject_guy") + eject_occupant(usr) + . = TRUE + + if("uv") + if(safeties && occupant) + to_chat(usr, "The cycler has detected an occupant. Please remove the occupant before commencing the decontamination cycle.") + return + + active = 1 + irradiating = 10 + + sleep(10) + + if(helmet) + if(radiation_level > 2) + helmet.decontaminate() + if(radiation_level > 1) + helmet.clean_blood() + + if(suit) + if(radiation_level > 2) + suit.decontaminate() + if(radiation_level > 1) + suit.clean_blood() + + . = TRUE + +/obj/machinery/suit_cycler/process() + + if(electrified > 0) + electrified-- + + if(!active) + return + + if(active && stat & (BROKEN|NOPOWER)) + active = 0 + irradiating = 0 + electrified = 0 + return + + if(irradiating == 1) + add_overlay("decon") + finished_job() + irradiating = 0 + cut_overlays() + return + + irradiating-- + + if(occupant) + if(prob(radiation_level*2)) occupant.emote("scream") + if(radiation_level > 2) + occupant.take_organ_damage(0,radiation_level*2 + rand(1,3)) + if(radiation_level > 1) + occupant.take_organ_damage(0,radiation_level + rand(1,3)) + occupant.apply_effect(radiation_level*10, IRRADIATE) + +/obj/machinery/suit_cycler/proc/finished_job() + var/turf/T = get_turf(src) + T.visible_message("\icon[src][bicon(src)]The [src] beeps several times.") + icon_state = initial(icon_state) + active = 0 + playsound(src, 'sound/machines/boobeebeep.ogg', 50) + updateUsrDialog() + +/obj/machinery/suit_cycler/proc/repair_suit() + if(!suit || !suit.damage || !suit.can_breach) + return + + suit.breaches = list() + suit.calc_breach_damage() + + return + +/obj/machinery/suit_cycler/verb/leave() + set name = "Eject Cycler" + set category = "Object" + set src in oview(1) + + if(usr.stat != 0) + return + + eject_occupant(usr) + +/obj/machinery/suit_cycler/proc/eject_occupant(mob/user as mob) + + if(locked || active) + to_chat(user, "The cycler is locked.") + return + + if(!occupant) + return + + if(occupant.client) + occupant.client.eye = occupant.client.mob + occupant.client.perspective = MOB_PERSPECTIVE + + occupant.loc = get_turf(occupant) + occupant = null + + add_fingerprint(user) + updateUsrDialog() + update_icon() + + return + +// "Streamlined" before? Ok. -Aro +/obj/machinery/suit_cycler/proc/apply_paintjob() + if(!target_species || !target_department) + return + + // Helmet to new paint + if(target_department.can_refit_helmet(helmet)) + target_department.do_refit_helmet(helmet) + // Suit to new paint + if(target_department.can_refit_suit(suit)) + target_department.do_refit_suit(suit) + // Attached voidsuit helmet to new paint + if(target_department.can_refit_helmet(suit?.helmet)) + target_department.do_refit_helmet(suit.helmet) + + // Species fitting for all 3 potential changes + if(target_species.can_refit_to(helmet, suit, suit?.helmet)) + target_species.do_refit_to(helmet, suit, suit?.helmet) + else + visible_message("\icon[src][bicon(src)]Unable to apply specified cosmetics with specified species. Please try again with a different species or cosmetic option selected.") + return diff --git a/code/game/machinery/suit_cycler_datums.dm b/code/game/machinery/suit_storage/suit_cycler_datums.dm similarity index 100% rename from code/game/machinery/suit_cycler_datums.dm rename to code/game/machinery/suit_storage/suit_cycler_datums.dm diff --git a/code/game/machinery/suit_storage/suit_cycler_units.dm b/code/game/machinery/suit_storage/suit_cycler_units.dm new file mode 100644 index 0000000000..82134bc94b --- /dev/null +++ b/code/game/machinery/suit_storage/suit_cycler_units.dm @@ -0,0 +1,112 @@ +/obj/machinery/suit_cycler/refit_only + name = "Suit cycler" + desc = "A dedicated industrial machine that can refit voidsuits for \ + different species, but not change the suit's overall appearance or \ + departmental scheme." + model_text = "General Access" + req_access = null + limit_departments = list() + +/obj/machinery/suit_cycler/engineering + name = "Engineering suit cycler" + model_text = "Engineering" + icon_state = "engi_cycler" + req_access = list(access_construction) + limit_departments = list( + /datum/suit_cycler_choice/department/eng + ) + +/obj/machinery/suit_cycler/mining + name = "Mining suit cycler" + model_text = "Mining" + icon_state = "industrial_cycler" + req_access = list(access_mining) + limit_departments = list( + /datum/suit_cycler_choice/department/crg + ) + +/obj/machinery/suit_cycler/security + name = "Security suit cycler" + model_text = "Security" + icon_state = "sec_cycler" + req_access = list(access_security) + limit_departments = list( + /datum/suit_cycler_choice/department/sec + ) + +/obj/machinery/suit_cycler/medical + name = "Medical suit cycler" + model_text = "Medical" + icon_state = "med_cycler" + req_access = list(access_medical) + limit_departments = list( + /datum/suit_cycler_choice/department/med + ) + +/obj/machinery/suit_cycler/syndicate + name = "Nonstandard suit cycler" + model_text = "Nonstandard" + icon_state = "red_cycler" + req_access = list(access_syndicate) + limit_departments = list( + /datum/suit_cycler_choice/department/emag + ) + can_repair = 1 + +/obj/machinery/suit_cycler/exploration + name = "Explorer suit cycler" + model_text = "Exploration" + icon_state = "explo_cycler" + limit_departments = list( + /datum/suit_cycler_choice/department/exp + ) + +/obj/machinery/suit_cycler/pilot + name = "Pilot suit cycler" + model_text = "Pilot" + icon_state = "pilot_cycler" + limit_departments = list( + /datum/suit_cycler_choice/department/pil + ) + +/obj/machinery/suit_cycler/vintage + name = "Vintage Crew suit cycler" + model_text = "Vintage" + icon_state = "industrial_cycler" + limit_departments = list( + /datum/suit_cycler_choice/department/vintage/crew + ) + req_access = null + +/obj/machinery/suit_cycler/vintage/pilot + name = "Vintage Pilot suit cycler" + model_text = "Vintage Pilot" + limit_departments = list( + /datum/suit_cycler_choice/department/vintage/pilot + ) + +/obj/machinery/suit_cycler/vintage/medsci + name = "Vintage MedSci suit cycler" + model_text = "Vintage MedSci" + limit_departments = list( + /datum/suit_cycler_choice/department/vintage/research, + /datum/suit_cycler_choice/department/vintage/med + ) + +/obj/machinery/suit_cycler/vintage/rugged + name = "Vintage Ruggedized suit cycler" + model_text = "Vintage Ruggedized" + + limit_departments = list( + /datum/suit_cycler_choice/department/vintage/eng, + /datum/suit_cycler_choice/department/vintage/marine, + /datum/suit_cycler_choice/department/vintage/officer, + /datum/suit_cycler_choice/department/vintage/merc + ) + +/obj/machinery/suit_cycler/vintage/omni + name = "Vintage Master suit cycler" + model_text = "Vintage Master" + limit_departments = list( + /datum/suit_cycler_choice/department/vintage + ) \ No newline at end of file diff --git a/code/game/machinery/suit_storage_unit_vr.dm b/code/game/machinery/suit_storage/suit_cycler_units_vr.dm similarity index 89% rename from code/game/machinery/suit_storage_unit_vr.dm rename to code/game/machinery/suit_storage/suit_cycler_units_vr.dm index 5dda239b93..604d6320bd 100644 --- a/code/game/machinery/suit_storage_unit_vr.dm +++ b/code/game/machinery/suit_storage/suit_cycler_units_vr.dm @@ -9,53 +9,62 @@ /obj/machinery/suit_cycler/captain name = "Manager suit cycler" model_text = "Manager" + icon_state = "cap_cycler" req_access = list(access_captain) departments = list(/datum/suit_cycler_choice/department/captain) /obj/machinery/suit_cycler/prototype name = "Prototype suit cycler" model_text = "Prototype" + icon_state = "industrial_cycler" req_access = list(access_hos) departments = list(/datum/suit_cycler_choice/department/prototype) /obj/machinery/suit_cycler/vintage/tcrew name = "Talon crew suit cycler" model_text = "Talon crew" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/crew) /obj/machinery/suit_cycler/vintage/tpilot name = "Talon pilot suit cycler" model_text = "Talon pilot" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/pilot) /obj/machinery/suit_cycler/vintage/tengi name = "Talon engineer suit cycler" model_text = "Talon engineer" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/eng) /obj/machinery/suit_cycler/vintage/tguard name = "Talon guard suit cycler" model_text = "Talon guard" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/marine) /obj/machinery/suit_cycler/vintage/tmedic name = "Talon doctor suit cycler" model_text = "Talon doctor" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/med) /obj/machinery/suit_cycler/vintage/tcaptain name = "Talon captain suit cycler" model_text = "Talon captain" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/officer) /obj/machinery/suit_cycler/vintage/tminer name = "Talon miner suit cycler" model_text = "Talon miner" + icon_state = "dark_cycler" req_access = list(access_talon) departments = list(/datum/suit_cycler_choice/department/talon/miner) diff --git a/code/game/machinery/suit_storage/suit_storage.dm b/code/game/machinery/suit_storage/suit_storage.dm new file mode 100644 index 0000000000..334f5227d8 --- /dev/null +++ b/code/game/machinery/suit_storage/suit_storage.dm @@ -0,0 +1,476 @@ +////////////////////////////////////// +// SUIT STORAGE UNIT ///////////////// +////////////////////////////////////// + +/obj/machinery/suit_storage_unit + name = "Suit Storage Unit" + desc = "An industrial U-Stor-It Storage unit designed to accomodate all kinds of space suits. Its on-board equipment also allows the user to decontaminate the contents through a UV-ray purging cycle. There's a warning label dangling from the control pad, reading \"STRICTLY NO BIOLOGICALS IN THE CONFINES OF THE UNIT\"." + icon = 'icons/obj/suit_storage.dmi' + icon_state = "suitstorage000000100" //order is: [has helmet][has suit][has human][is open][is locked][is UV cycling][is powered][is dirty/broken] [is superUVcycling] + anchored = TRUE + density = TRUE + var/mob/living/carbon/human/OCCUPANT = null + var/obj/item/clothing/suit/space/SUIT = null + var/suit_type = null + var/obj/item/clothing/head/helmet/space/HELMET = null + var/helmet_type = null + var/obj/item/clothing/mask/MASK = null //All the stuff that's gonna be stored insiiiiiiiiiiiiiiiiiiide, nyoro~n + var/mask_type = null //Erro's idea on standarising SSUs whle keeping creation of other SSU types easy: Make a child SSU, name it something then set the TYPE vars to your desired suit output. New() should take it from there by itself. + var/isopen = 0 + var/islocked = 0 + var/isUV = 0 + var/ispowered = 1 //starts powered + var/isbroken = 0 + var/issuperUV = 0 + var/panelopen = 0 + var/safetieson = 1 + var/cycletime_left = 0 + +/obj/machinery/suit_storage_unit/Initialize() + . = ..() + if(suit_type) + SUIT = new suit_type(src) + if(helmet_type) + HELMET = new helmet_type(src) + if(mask_type) + MASK = new mask_type(src) + update_icon() + +/obj/machinery/suit_storage_unit/update_icon() + var/hashelmet = 0 + var/hassuit = 0 + var/hashuman = 0 + if(HELMET) + hashelmet = 1 + if(SUIT) + hassuit = 1 + if(OCCUPANT) + hashuman = 1 + icon_state = text("suitstorage[][][][][][][][][]", hashelmet, hassuit, hashuman, isopen, islocked, isUV, ispowered, isbroken, issuperUV) + +/obj/machinery/suit_storage_unit/power_change() + ..() + if(!(stat & NOPOWER)) + ispowered = 1 + update_icon() + else + spawn(rand(0, 15)) + ispowered = 0 + islocked = 0 + isopen = 1 + dump_everything() + update_icon() + +/obj/machinery/suit_storage_unit/ex_act(severity) + switch(severity) + if(1.0) + if(prob(50)) + dump_everything() //So suits dont survive all the time + qdel(src) + if(2.0) + if(prob(50)) + dump_everything() + qdel(src) + +/obj/machinery/suit_storage_unit/attack_hand(mob/user) + if(..()) + return + if(stat & NOPOWER) + return + if(!user.IsAdvancedToolUser()) + return 0 + tgui_interact(user) + +/obj/machinery/suit_storage_unit/tgui_state(mob/user) + return GLOB.tgui_notcontained_state + +/obj/machinery/suit_storage_unit/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "SuitStorageUnit", name) + ui.open() + +/obj/machinery/suit_storage_unit/tgui_data() + var/list/data = list() + + data["broken"] = isbroken + data["panelopen"] = panelopen + + data["locked"] = islocked + data["open"] = isopen + data["safeties"] = safetieson + data["uv_active"] = isUV + data["uv_super"] = issuperUV + if(HELMET) + data["helmet"] = HELMET.name + else + data["helmet"] = null + if(SUIT) + data["suit"] = SUIT.name + else + data["suit"] = null + if(MASK) + data["mask"] = MASK.name + else + data["mask"] = null + data["storage"] = null + if(OCCUPANT) + data["occupied"] = TRUE + else + data["occupied"] = FALSE + return data + +/obj/machinery/suit_storage_unit/tgui_act(action, params) //I fucking HATE this proc + if(..() || isUV || isbroken) + return TRUE + + switch(action) + if("door") + toggle_open(usr) + . = TRUE + if("dispense") + switch(params["item"]) + if("helmet") + dispense_helmet(usr) + if("mask") + dispense_mask(usr) + if("suit") + dispense_suit(usr) + . = TRUE + if("uv") + start_UV(usr) + . = TRUE + if("lock") + toggle_lock(usr) + . = TRUE + if("eject_guy") + eject_occupant(usr) + . = TRUE + + // Panel Open stuff + if(!. && panelopen) + switch(action) + if("toggleUV") + toggleUV(usr) + . = TRUE + if("togglesafeties") + togglesafeties(usr) + . = TRUE + + update_icon() + add_fingerprint(usr) + + +/obj/machinery/suit_storage_unit/proc/toggleUV(mob/user as mob) + if(!panelopen) + return + + else //welp, the guy is protected, we can continue + if(issuperUV) + to_chat(user, "You slide the dial back towards \"185nm\".") + issuperUV = 0 + else + to_chat(user, "You crank the dial all the way up to \"15nm\".") + issuperUV = 1 + return + + +/obj/machinery/suit_storage_unit/proc/togglesafeties(mob/user as mob) + if(!panelopen) //Needed check due to bugs + return + + else + to_chat(user, "You push the button. The coloured LED next to it changes.") + safetieson = !safetieson + + +/obj/machinery/suit_storage_unit/proc/dispense_helmet(mob/user as mob) + if(!HELMET) + return //Do I even need this sanity check? Nyoro~n + else + HELMET.loc = src.loc + HELMET = null + return + + +/obj/machinery/suit_storage_unit/proc/dispense_suit(mob/user as mob) + if(!SUIT) + return + else + SUIT.loc = src.loc + SUIT = null + return + + +/obj/machinery/suit_storage_unit/proc/dispense_mask(mob/user as mob) + if(!MASK) + return + else + MASK.loc = src.loc + MASK = null + return + + +/obj/machinery/suit_storage_unit/proc/dump_everything() + islocked = 0 //locks go free + if(SUIT) + SUIT.loc = src.loc + SUIT = null + if(HELMET) + HELMET.loc = src.loc + HELMET = null + if(MASK) + MASK.loc = src.loc + MASK = null + if(OCCUPANT) + eject_occupant(OCCUPANT) + return + + +/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob) + if(islocked || isUV) + to_chat(user, "Unable to open unit.") + return + if(OCCUPANT) + eject_occupant(user) + return // eject_occupant opens the door, so we need to return + isopen = !isopen + return + + +/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob) + if(OCCUPANT && safetieson) + to_chat(user, "The Unit's safety protocols disallow locking when a biological form is detected inside its compartments.") + return + if(isopen) + return + islocked = !islocked + return + + +/obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob) + if(isUV || isopen) //I'm bored of all these sanity checks + return + if(OCCUPANT && safetieson) + to_chat(user, "WARNING: Biological entity detected in the confines of the Unit's storage. Cannot initiate cycle.") + return + if(!HELMET && !MASK && !SUIT && !OCCUPANT) //shit's empty yo + to_chat(user, "Unit storage bays empty. Nothing to disinfect -- Aborting.") + return + to_chat(user, "You start the Unit's cauterisation cycle.") + cycletime_left = 20 + isUV = 1 + if(OCCUPANT && !islocked) + islocked = 1 //Let's lock it for good measure + update_icon() + updateUsrDialog() + + var/i //our counter + for(i=0,i<4,i++) + sleep(50) + if(OCCUPANT) + OCCUPANT.apply_effect(50, IRRADIATE) + var/obj/item/organ/internal/diona/nutrients/rad_organ = locate() in OCCUPANT.internal_organs + if(!rad_organ) + if(OCCUPANT.can_feel_pain()) + OCCUPANT.emote("scream") + if(issuperUV) + var/burndamage = rand(28,35) + OCCUPANT.take_organ_damage(0,burndamage) + else + var/burndamage = rand(6,10) + OCCUPANT.take_organ_damage(0,burndamage) + if(i==3) //End of the cycle + if(!issuperUV) + if(HELMET) + HELMET.clean_blood() + if(SUIT) + SUIT.clean_blood() + if(MASK) + MASK.clean_blood() + else //It was supercycling, destroy everything + if(HELMET) + HELMET = null + if(SUIT) + SUIT = null + if(MASK) + MASK = null + visible_message("With a loud whining noise, the Suit Storage Unit's door grinds open. Puffs of ashen smoke come out of its chamber.", 3) + isbroken = 1 + isopen = 1 + islocked = 0 + eject_occupant(OCCUPANT) //Mixing up these two lines causes bug. DO NOT DO IT. + isUV = 0 //Cycle ends + update_icon() + updateUsrDialog() + return + +/obj/machinery/suit_storage_unit/proc/cycletimeleft() + if(cycletime_left >= 1) + cycletime_left-- + return cycletime_left + + +/obj/machinery/suit_storage_unit/proc/eject_occupant(mob/user as mob) + if(islocked) + return + + if(!OCCUPANT) + return + + if(OCCUPANT.client) + if(user != OCCUPANT) + to_chat(OCCUPANT, "The machine kicks you out!") + if(user.loc != src.loc) + to_chat(OCCUPANT, "You leave the not-so-cozy confines of the SSU.") + + OCCUPANT.client.eye = OCCUPANT.client.mob + OCCUPANT.client.perspective = MOB_PERSPECTIVE + OCCUPANT.loc = src.loc + OCCUPANT = null + if(!isopen) + isopen = 1 + update_icon() + return + + +/obj/machinery/suit_storage_unit/verb/get_out() + set name = "Eject Suit Storage Unit" + set category = "Object" + set src in oview(1) + + if(usr.stat != 0) + return + eject_occupant(usr) + add_fingerprint(usr) + updateUsrDialog() + update_icon() + return + + +/obj/machinery/suit_storage_unit/verb/move_inside() + set name = "Hide in Suit Storage Unit" + set category = "Object" + set src in oview(1) + + if(usr.stat != 0) + return + if(!isopen) + to_chat(usr, "The unit's doors are shut.") + return + if(!ispowered || isbroken) + to_chat(usr, "The unit is not operational.") + return + if((OCCUPANT) || (HELMET) || (SUIT)) + to_chat(usr, "It's too cluttered inside for you to fit in!") + return + visible_message("[usr] starts squeezing into the suit storage unit!", 3) + if(do_after(usr, 10)) + usr.stop_pulling() + usr.client.perspective = EYE_PERSPECTIVE + usr.client.eye = src + usr.loc = src + OCCUPANT = usr + isopen = 0 //Close the thing after the guy gets inside + update_icon() + + add_fingerprint(usr) + updateUsrDialog() + return + else + OCCUPANT = null //Testing this as a backup sanity test + return + + +/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob) + if(!ispowered) + return + if(I.is_screwdriver()) + panelopen = !panelopen + playsound(src, I.usesound, 100, 1) + to_chat(user, "You [panelopen ? "open up" : "close"] the unit's maintenance panel.") + updateUsrDialog() + return + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + if(!(ismob(G.affecting))) + return + if(!isopen) + to_chat(user, "The unit's doors are shut.") + return + if(!ispowered || isbroken) + to_chat(user, "The unit is not operational.") + return + if((OCCUPANT) || (HELMET) || (SUIT)) //Unit needs to be absolutely empty + to_chat(user, "The unit's storage area is too cluttered.") + return + visible_message("[user] starts putting [G.affecting.name] into the Suit Storage Unit.", 3) + if(do_after(user, 20)) + if(!G || !G.affecting) return //derpcheck + var/mob/M = G.affecting + if(M.client) + M.client.perspective = EYE_PERSPECTIVE + M.client.eye = src + M.loc = src + OCCUPANT = M + isopen = 0 //close ittt + + add_fingerprint(user) + qdel(G) + updateUsrDialog() + update_icon() + return + return + if(istype(I,/obj/item/clothing/suit/space)) + if(!isopen) + return + var/obj/item/clothing/suit/space/S = I + if(SUIT) + to_chat(user, "The unit already contains a suit.") + return + to_chat(user, "You load the [S.name] into the storage compartment.") + user.drop_item() + S.loc = src + SUIT = S + update_icon() + updateUsrDialog() + return + if(istype(I,/obj/item/clothing/head/helmet)) + if(!isopen) + return + var/obj/item/clothing/head/helmet/H = I + if(HELMET) + to_chat(user, "The unit already contains a helmet.") + return + to_chat(user, "You load the [H.name] into the storage compartment.") + user.drop_item() + H.loc = src + HELMET = H + update_icon() + updateUsrDialog() + return + if(istype(I,/obj/item/clothing/mask)) + if(!isopen) + return + var/obj/item/clothing/mask/M = I + if(MASK) + to_chat(user, "The unit already contains a mask.") + return + to_chat(user, "You load the [M.name] into the storage compartment.") + user.drop_item() + M.loc = src + MASK = M + update_icon() + updateUsrDialog() + return + update_icon() + updateUsrDialog() + return + + +/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob) + return attack_hand(user) + +//////////////////////////////REMINDER: Make it lock once you place some fucker inside. + +//God this entire file is fucking awful //Yes \ No newline at end of file diff --git a/code/game/machinery/suit_storage/suit_storage_units.dm b/code/game/machinery/suit_storage/suit_storage_units.dm new file mode 100644 index 0000000000..740d067776 --- /dev/null +++ b/code/game/machinery/suit_storage/suit_storage_units.dm @@ -0,0 +1,54 @@ +//Standard +/obj/machinery/suit_storage_unit/empty + suit_type = null + helmet_type = null + mask_type = null + +/obj/machinery/suit_storage_unit/standard_unit + suit_type = /obj/item/clothing/suit/space + helmet_type = /obj/item/clothing/head/helmet/space + mask_type = /obj/item/clothing/mask/breath + +//Engineering +/obj/machinery/suit_storage_unit/engineering + suit_type = /obj/item/clothing/head/helmet/space/void/engineering + helmet_type = /obj/item/clothing/suit/space/void/engineering + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/hazmat + suit_type = /obj/item/clothing/head/helmet/space/void/engineering/hazmat + helmet_type = /obj/item/clothing/suit/space/void/engineering/hazmat + mask_type = /obj/item/clothing/mask/breath + +//Mining +/obj/machinery/suit_storage_unit/mining + suit_type = /obj/item/clothing/head/helmet/space/void/mining + helmet_type = /obj/item/clothing/suit/space/void/mining + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/mining_alt + suit_type = /obj/item/clothing/head/helmet/space/void/mining/alt + helmet_type = /obj/item/clothing/suit/space/void/mining/alt + mask_type = /obj/item/clothing/mask/breath + +//Medical +/obj/machinery/suit_storage_unit/medical + suit_type = /obj/item/clothing/head/helmet/space/void/medical + helmet_type = /obj/item/clothing/suit/space/void/medical + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/emt + suit_type = /obj/item/clothing/head/helmet/space/void/medical/emt + helmet_type = /obj/item/clothing/suit/space/void/medical/emt + mask_type = /obj/item/clothing/mask/breath + +//Security +/obj/machinery/suit_storage_unit/security + suit_type = /obj/item/clothing/head/helmet/space/void/security + helmet_type = /obj/item/clothing/suit/space/void/security + mask_type = /obj/item/clothing/mask/breath + +/obj/machinery/suit_storage_unit/riot + suit_type = /obj/item/clothing/head/helmet/space/void/security/riot + helmet_type = /obj/item/clothing/suit/space/void/security/riot + mask_type = /obj/item/clothing/mask/breath \ No newline at end of file diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm deleted file mode 100644 index c8a980c2ce..0000000000 --- a/code/game/machinery/suit_storage_unit.dm +++ /dev/null @@ -1,1131 +0,0 @@ -////////////////////////////////////// -// SUIT STORAGE UNIT ///////////////// -////////////////////////////////////// - -/obj/machinery/suit_storage_unit - name = "Suit Storage Unit" - desc = "An industrial U-Stor-It Storage unit designed to accomodate all kinds of space suits. Its on-board equipment also allows the user to decontaminate the contents through a UV-ray purging cycle. There's a warning label dangling from the control pad, reading \"STRICTLY NO BIOLOGICALS IN THE CONFINES OF THE UNIT\"." - icon = 'icons/obj/suitstorage.dmi' - icon_state = "suitstorage000000100" //order is: [has helmet][has suit][has human][is open][is locked][is UV cycling][is powered][is dirty/broken] [is superUVcycling] - anchored = TRUE - density = TRUE - var/mob/living/carbon/human/OCCUPANT = null - var/obj/item/clothing/suit/space/SUIT = null - var/suit_type = null - var/obj/item/clothing/head/helmet/space/HELMET = null - var/helmet_type = null - var/obj/item/clothing/mask/MASK = null //All the stuff that's gonna be stored insiiiiiiiiiiiiiiiiiiide, nyoro~n - var/mask_type = null //Erro's idea on standarising SSUs whle keeping creation of other SSU types easy: Make a child SSU, name it something then set the TYPE vars to your desired suit output. New() should take it from there by itself. - var/isopen = 0 - var/islocked = 0 - var/isUV = 0 - var/ispowered = 1 //starts powered - var/isbroken = 0 - var/issuperUV = 0 - var/panelopen = 0 - var/safetieson = 1 - var/cycletime_left = 0 - -//The units themselves///////////////// - -/obj/machinery/suit_storage_unit/standard_unit - suit_type = /obj/item/clothing/suit/space - helmet_type = /obj/item/clothing/head/helmet/space - mask_type = /obj/item/clothing/mask/breath - -/obj/machinery/suit_storage_unit/Initialize() - . = ..() - if(suit_type) - SUIT = new suit_type(src) - if(helmet_type) - HELMET = new helmet_type(src) - if(mask_type) - MASK = new mask_type(src) - update_icon() - -/obj/machinery/suit_storage_unit/update_icon() - var/hashelmet = 0 - var/hassuit = 0 - var/hashuman = 0 - if(HELMET) - hashelmet = 1 - if(SUIT) - hassuit = 1 - if(OCCUPANT) - hashuman = 1 - icon_state = text("suitstorage[][][][][][][][][]", hashelmet, hassuit, hashuman, isopen, islocked, isUV, ispowered, isbroken, issuperUV) - -/obj/machinery/suit_storage_unit/power_change() - ..() - if(!(stat & NOPOWER)) - ispowered = 1 - update_icon() - else - spawn(rand(0, 15)) - ispowered = 0 - islocked = 0 - isopen = 1 - dump_everything() - update_icon() - -/obj/machinery/suit_storage_unit/ex_act(severity) - switch(severity) - if(1.0) - if(prob(50)) - dump_everything() //So suits dont survive all the time - qdel(src) - if(2.0) - if(prob(50)) - dump_everything() - qdel(src) - -/obj/machinery/suit_storage_unit/attack_hand(mob/user) - if(..()) - return - if(stat & NOPOWER) - return - if(!user.IsAdvancedToolUser()) - return 0 - tgui_interact(user) - -/obj/machinery/suit_storage_unit/tgui_state(mob/user) - return GLOB.tgui_notcontained_state - -/obj/machinery/suit_storage_unit/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "SuitStorageUnit", name) - ui.open() - -/obj/machinery/suit_storage_unit/tgui_data() - var/list/data = list() - - data["broken"] = isbroken - data["panelopen"] = panelopen - - data["locked"] = islocked - data["open"] = isopen - data["safeties"] = safetieson - data["uv_active"] = isUV - data["uv_super"] = issuperUV - if(HELMET) - data["helmet"] = HELMET.name - else - data["helmet"] = null - if(SUIT) - data["suit"] = SUIT.name - else - data["suit"] = null - if(MASK) - data["mask"] = MASK.name - else - data["mask"] = null - data["storage"] = null - if(OCCUPANT) - data["occupied"] = TRUE - else - data["occupied"] = FALSE - return data - -/obj/machinery/suit_storage_unit/tgui_act(action, params) //I fucking HATE this proc - if(..() || isUV || isbroken) - return TRUE - - switch(action) - if("door") - toggle_open(usr) - . = TRUE - if("dispense") - switch(params["item"]) - if("helmet") - dispense_helmet(usr) - if("mask") - dispense_mask(usr) - if("suit") - dispense_suit(usr) - . = TRUE - if("uv") - start_UV(usr) - . = TRUE - if("lock") - toggle_lock(usr) - . = TRUE - if("eject_guy") - eject_occupant(usr) - . = TRUE - - // Panel Open stuff - if(!. && panelopen) - switch(action) - if("toggleUV") - toggleUV(usr) - . = TRUE - if("togglesafeties") - togglesafeties(usr) - . = TRUE - - update_icon() - add_fingerprint(usr) - - -/obj/machinery/suit_storage_unit/proc/toggleUV(mob/user as mob) - if(!panelopen) - return - - else //welp, the guy is protected, we can continue - if(issuperUV) - to_chat(user, "You slide the dial back towards \"185nm\".") - issuperUV = 0 - else - to_chat(user, "You crank the dial all the way up to \"15nm\".") - issuperUV = 1 - return - - -/obj/machinery/suit_storage_unit/proc/togglesafeties(mob/user as mob) - if(!panelopen) //Needed check due to bugs - return - - else - to_chat(user, "You push the button. The coloured LED next to it changes.") - safetieson = !safetieson - - -/obj/machinery/suit_storage_unit/proc/dispense_helmet(mob/user as mob) - if(!HELMET) - return //Do I even need this sanity check? Nyoro~n - else - HELMET.loc = src.loc - HELMET = null - return - - -/obj/machinery/suit_storage_unit/proc/dispense_suit(mob/user as mob) - if(!SUIT) - return - else - SUIT.loc = src.loc - SUIT = null - return - - -/obj/machinery/suit_storage_unit/proc/dispense_mask(mob/user as mob) - if(!MASK) - return - else - MASK.loc = src.loc - MASK = null - return - - -/obj/machinery/suit_storage_unit/proc/dump_everything() - islocked = 0 //locks go free - if(SUIT) - SUIT.loc = src.loc - SUIT = null - if(HELMET) - HELMET.loc = src.loc - HELMET = null - if(MASK) - MASK.loc = src.loc - MASK = null - if(OCCUPANT) - eject_occupant(OCCUPANT) - return - - -/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob) - if(islocked || isUV) - to_chat(user, "Unable to open unit.") - return - if(OCCUPANT) - eject_occupant(user) - return // eject_occupant opens the door, so we need to return - isopen = !isopen - return - - -/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob) - if(OCCUPANT && safetieson) - to_chat(user, "The Unit's safety protocols disallow locking when a biological form is detected inside its compartments.") - return - if(isopen) - return - islocked = !islocked - return - - -/obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob) - if(isUV || isopen) //I'm bored of all these sanity checks - return - if(OCCUPANT && safetieson) - to_chat(user, "WARNING: Biological entity detected in the confines of the Unit's storage. Cannot initiate cycle.") - return - if(!HELMET && !MASK && !SUIT && !OCCUPANT) //shit's empty yo - to_chat(user, "Unit storage bays empty. Nothing to disinfect -- Aborting.") - return - to_chat(user, "You start the Unit's cauterisation cycle.") - cycletime_left = 20 - isUV = 1 - if(OCCUPANT && !islocked) - islocked = 1 //Let's lock it for good measure - update_icon() - updateUsrDialog() - - var/i //our counter - for(i=0,i<4,i++) - sleep(50) - if(OCCUPANT) - OCCUPANT.apply_effect(50, IRRADIATE) - var/obj/item/organ/internal/diona/nutrients/rad_organ = locate() in OCCUPANT.internal_organs - if(!rad_organ) - if(OCCUPANT.can_feel_pain()) - OCCUPANT.emote("scream") - if(issuperUV) - var/burndamage = rand(28,35) - OCCUPANT.take_organ_damage(0,burndamage) - else - var/burndamage = rand(6,10) - OCCUPANT.take_organ_damage(0,burndamage) - if(i==3) //End of the cycle - if(!issuperUV) - if(HELMET) - HELMET.clean_blood() - if(SUIT) - SUIT.clean_blood() - if(MASK) - MASK.clean_blood() - else //It was supercycling, destroy everything - if(HELMET) - HELMET = null - if(SUIT) - SUIT = null - if(MASK) - MASK = null - visible_message("With a loud whining noise, the Suit Storage Unit's door grinds open. Puffs of ashen smoke come out of its chamber.", 3) - isbroken = 1 - isopen = 1 - islocked = 0 - eject_occupant(OCCUPANT) //Mixing up these two lines causes bug. DO NOT DO IT. - isUV = 0 //Cycle ends - update_icon() - updateUsrDialog() - return - -/obj/machinery/suit_storage_unit/proc/cycletimeleft() - if(cycletime_left >= 1) - cycletime_left-- - return cycletime_left - - -/obj/machinery/suit_storage_unit/proc/eject_occupant(mob/user as mob) - if(islocked) - return - - if(!OCCUPANT) - return - - if(OCCUPANT.client) - if(user != OCCUPANT) - to_chat(OCCUPANT, "The machine kicks you out!") - if(user.loc != src.loc) - to_chat(OCCUPANT, "You leave the not-so-cozy confines of the SSU.") - - OCCUPANT.client.eye = OCCUPANT.client.mob - OCCUPANT.client.perspective = MOB_PERSPECTIVE - OCCUPANT.loc = src.loc - OCCUPANT = null - if(!isopen) - isopen = 1 - update_icon() - return - - -/obj/machinery/suit_storage_unit/verb/get_out() - set name = "Eject Suit Storage Unit" - set category = "Object" - set src in oview(1) - - if(usr.stat != 0) - return - eject_occupant(usr) - add_fingerprint(usr) - updateUsrDialog() - update_icon() - return - - -/obj/machinery/suit_storage_unit/verb/move_inside() - set name = "Hide in Suit Storage Unit" - set category = "Object" - set src in oview(1) - - if(usr.stat != 0) - return - if(!isopen) - to_chat(usr, "The unit's doors are shut.") - return - if(!ispowered || isbroken) - to_chat(usr, "The unit is not operational.") - return - if((OCCUPANT) || (HELMET) || (SUIT)) - to_chat(usr, "It's too cluttered inside for you to fit in!") - return - visible_message("[usr] starts squeezing into the suit storage unit!", 3) - if(do_after(usr, 10)) - usr.stop_pulling() - usr.client.perspective = EYE_PERSPECTIVE - usr.client.eye = src - usr.loc = src - OCCUPANT = usr - isopen = 0 //Close the thing after the guy gets inside - update_icon() - - add_fingerprint(usr) - updateUsrDialog() - return - else - OCCUPANT = null //Testing this as a backup sanity test - return - - -/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob) - if(!ispowered) - return - if(I.is_screwdriver()) - panelopen = !panelopen - playsound(src, I.usesound, 100, 1) - to_chat(user, "You [panelopen ? "open up" : "close"] the unit's maintenance panel.") - updateUsrDialog() - return - if(istype(I, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = I - if(!(ismob(G.affecting))) - return - if(!isopen) - to_chat(user, "The unit's doors are shut.") - return - if(!ispowered || isbroken) - to_chat(user, "The unit is not operational.") - return - if((OCCUPANT) || (HELMET) || (SUIT)) //Unit needs to be absolutely empty - to_chat(user, "The unit's storage area is too cluttered.") - return - visible_message("[user] starts putting [G.affecting.name] into the Suit Storage Unit.", 3) - if(do_after(user, 20)) - if(!G || !G.affecting) return //derpcheck - var/mob/M = G.affecting - if(M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.loc = src - OCCUPANT = M - isopen = 0 //close ittt - - add_fingerprint(user) - qdel(G) - updateUsrDialog() - update_icon() - return - return - if(istype(I,/obj/item/clothing/suit/space)) - if(!isopen) - return - var/obj/item/clothing/suit/space/S = I - if(SUIT) - to_chat(user, "The unit already contains a suit.") - return - to_chat(user, "You load the [S.name] into the storage compartment.") - user.drop_item() - S.loc = src - SUIT = S - update_icon() - updateUsrDialog() - return - if(istype(I,/obj/item/clothing/head/helmet)) - if(!isopen) - return - var/obj/item/clothing/head/helmet/H = I - if(HELMET) - to_chat(user, "The unit already contains a helmet.") - return - to_chat(user, "You load the [H.name] into the storage compartment.") - user.drop_item() - H.loc = src - HELMET = H - update_icon() - updateUsrDialog() - return - if(istype(I,/obj/item/clothing/mask)) - if(!isopen) - return - var/obj/item/clothing/mask/M = I - if(MASK) - to_chat(user, "The unit already contains a mask.") - return - to_chat(user, "You load the [M.name] into the storage compartment.") - user.drop_item() - M.loc = src - MASK = M - update_icon() - updateUsrDialog() - return - update_icon() - updateUsrDialog() - return - - -/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob) - return attack_hand(user) - -//////////////////////////////REMINDER: Make it lock once you place some fucker inside. - -//God this entire file is fucking awful //Yes -//Suit painter for Bay's special snowflake aliums. - -GLOBAL_LIST_EMPTY(suit_cycler_typecache) -/obj/machinery/suit_cycler - - name = "suit cycler" - desc = "An industrial machine for painting and refitting voidsuits." - anchored = TRUE - density = TRUE - - icon = 'icons/obj/suitstorage.dmi' - icon_state = "suitstorage000000100" - - req_access = list(access_captain,access_heads) - - var/active = 0 // PLEASE HOLD. - var/safeties = 1 // The cycler won't start with a living thing inside it unless safeties are off. - var/irradiating = 0 // If this is > 0, the cycler is decontaminating whatever is inside it. - var/radiation_level = 2 // 1 is removing germs, 2 is removing blood, 3 is removing phoron. - var/model_text = "" // Some flavour text for the topic box. - var/locked = 1 // If locked, nothing can be taken from or added to the cycler. - var/can_repair // If set, the cycler can repair voidsuits. - var/electrified = 0 - - /// Departments that the cycler can paint suits to look like. Null assumes all except specially excluded ones. - /// No idea why these particular suits are the default cycler's options. - var/list/limit_departments = list( - /datum/suit_cycler_choice/department/eng/standard, - /datum/suit_cycler_choice/department/crg/mining, - /datum/suit_cycler_choice/department/med/standard, - /datum/suit_cycler_choice/department/sec/standard, - /datum/suit_cycler_choice/department/eng/atmospherics, - /datum/suit_cycler_choice/department/eng/hazmat, - /datum/suit_cycler_choice/department/eng/construction, - /datum/suit_cycler_choice/department/med/biohazard, - /datum/suit_cycler_choice/department/med/emt, - /datum/suit_cycler_choice/department/sec/riot, - /datum/suit_cycler_choice/department/sec/eva - ) - - /// Species that the cycler can refit suits for. Null assumes all except specially excluded ones. - var/list/limit_species - - var/list/departments - var/list/species - var/list/emagged_departments - - var/datum/suit_cycler_choice/department/target_department - var/datum/suit_cycler_choice/species/target_species - - var/mob/living/carbon/human/occupant = null - var/obj/item/clothing/suit/space/void/suit = null - var/obj/item/clothing/head/helmet/space/helmet = null - - var/datum/wires/suit_storage_unit/wires = null - -/obj/machinery/suit_cycler/Initialize() - . = ..() - - departments = load_departments() - species = load_species() - emagged_departments = load_emagged() - limit_departments = null // just for mem - - target_department = departments["No Change"] - target_species = species["No Change"] - - if(!target_department || !target_species) - stat |= BROKEN - - wires = new(src) - -/obj/machinery/suit_cycler/Destroy() - qdel(wires) - wires = null - return ..() - -/obj/machinery/suit_cycler/proc/load_departments() - var/list/typecache = GLOB.suit_cycler_typecache[type] - // First of our type - if(!typecache) - typecache = list() - GLOB.suit_cycler_typecache[type] = typecache - var/list/loaded = typecache["departments"] - // No departments loaded - if(!loaded) - loaded = list() - typecache["departments"] = loaded - for(var/datum/suit_cycler_choice/department/thing as anything in GLOB.suit_cycler_departments) - if(istype(thing, /datum/suit_cycler_choice/department/noop)) - loaded[thing.name] = thing - continue - if(limit_departments && !is_type_in_list(thing, limit_departments)) - continue - loaded[thing.name] = thing - - return loaded - -/obj/machinery/suit_cycler/proc/load_species() - var/list/typecache = GLOB.suit_cycler_typecache[type] - // First of our type - if(!typecache) - typecache = list() - GLOB.suit_cycler_typecache[type] = typecache - var/list/loaded = typecache["species"] - // No species loaded - if(!loaded) - loaded = list() - typecache["species"] = loaded - for(var/datum/suit_cycler_choice/species/thing as anything in GLOB.suit_cycler_species) - if(istype(thing, /datum/suit_cycler_choice/species/noop)) - loaded[thing.name] = thing - continue - if(limit_species && !is_type_in_list(thing, limit_species)) - continue - loaded[thing.name] = thing - - return loaded - -/obj/machinery/suit_cycler/proc/load_emagged() - var/list/typecache = GLOB.suit_cycler_typecache[type] - // First of our type - if(!typecache) - typecache = list() - GLOB.suit_cycler_typecache[type] = typecache - var/list/loaded = typecache["emagged"] - // No emagged loaded - if(!loaded) - loaded = list() - typecache["emagged"] = loaded - for(var/datum/suit_cycler_choice/department/thing as anything in GLOB.suit_cycler_emagged) - loaded[thing.name] = thing - - return loaded - -/obj/machinery/suit_cycler/refit_only - name = "Suit cycler" - desc = "A dedicated industrial machine that can refit voidsuits for different species, but not change the suit's overall appearance or departmental scheme." - model_text = "General Access" - req_access = null - limit_departments = list() - -/obj/machinery/suit_cycler/engineering - name = "Engineering suit cycler" - model_text = "Engineering" - req_access = list(access_construction) - limit_departments = list( - /datum/suit_cycler_choice/department/eng - ) - -/obj/machinery/suit_cycler/mining - name = "Mining suit cycler" - model_text = "Mining" - req_access = list(access_mining) - limit_departments = list( - /datum/suit_cycler_choice/department/crg - ) - -/obj/machinery/suit_cycler/security - name = "Security suit cycler" - model_text = "Security" - req_access = list(access_security) - limit_departments = list( - /datum/suit_cycler_choice/department/sec - ) - -/obj/machinery/suit_cycler/medical - name = "Medical suit cycler" - model_text = "Medical" - req_access = list(access_medical) - limit_departments = list( - /datum/suit_cycler_choice/department/med - ) - -/obj/machinery/suit_cycler/syndicate - name = "Nonstandard suit cycler" - model_text = "Nonstandard" - req_access = list(access_syndicate) - limit_departments = list( - /datum/suit_cycler_choice/department/emag - ) - can_repair = 1 -/obj/machinery/suit_cycler/exploration - name = "Explorer suit cycler" - model_text = "Exploration" - limit_departments = list( - /datum/suit_cycler_choice/department/exp - ) -/obj/machinery/suit_cycler/pilot - name = "Pilot suit cycler" - model_text = "Pilot" - limit_departments = list( - /datum/suit_cycler_choice/department/pil - ) - -/obj/machinery/suit_cycler/vintage - name = "Vintage Crew suit cycler" - model_text = "Vintage" - limit_departments = list( - /datum/suit_cycler_choice/department/vintage/crew - ) - req_access = null - -/obj/machinery/suit_cycler/vintage/pilot - name = "Vintage Pilot suit cycler" - model_text = "Vintage Pilot" - limit_departments = list( - /datum/suit_cycler_choice/department/vintage/pilot - ) - -/obj/machinery/suit_cycler/vintage/medsci - name = "Vintage MedSci suit cycler" - model_text = "Vintage MedSci" - limit_departments = list( - /datum/suit_cycler_choice/department/vintage/research, - /datum/suit_cycler_choice/department/vintage/med - ) - -/obj/machinery/suit_cycler/vintage/rugged - name = "Vintage Ruggedized suit cycler" - model_text = "Vintage Ruggedized" - - limit_departments = list( - /datum/suit_cycler_choice/department/vintage/eng, - /datum/suit_cycler_choice/department/vintage/marine, - /datum/suit_cycler_choice/department/vintage/officer, - /datum/suit_cycler_choice/department/vintage/merc - ) - -/obj/machinery/suit_cycler/vintage/omni - name = "Vintage Master suit cycler" - model_text = "Vintage Master" - limit_departments = list( - /datum/suit_cycler_choice/department/vintage - ) - -/obj/machinery/suit_cycler/attack_ai(mob/user as mob) - return attack_hand(user) - -/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob) - - if(electrified != 0) - if(shock(user, 100)) - return - - //Hacking init. - if(istype(I, /obj/item/device/multitool) || I.is_wirecutter()) - if(panel_open) - attack_hand(user) - return - //Other interface stuff. - if(istype(I, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/G = I - - if(!(ismob(G.affecting))) - return - - if(locked) - to_chat(user, "The suit cycler is locked.") - return - - if(contents.len > 0) - to_chat(user, "There is no room inside the cycler for [G.affecting.name].") - return - - visible_message("[user] starts putting [G.affecting.name] into the suit cycler.", 3) - - if(do_after(user, 20)) - if(!G || !G.affecting) return - var/mob/M = G.affecting - if(M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.loc = src - occupant = M - - add_fingerprint(user) - qdel(G) - - updateUsrDialog() - - return - else if(I.is_screwdriver()) - - panel_open = !panel_open - playsound(src, I.usesound, 50, 1) - to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") - updateUsrDialog() - return - - else if(istype(I,/obj/item/clothing/head/helmet/space/void) && !istype(I, /obj/item/clothing/head/helmet/space/rig)) - var/obj/item/clothing/head/helmet/space/void/IH = I - - if(locked) - to_chat(user, "The suit cycler is locked.") - return - - if(helmet) - to_chat(user, "The cycler already contains a helmet.") - return - - if(IH.no_cycle) - to_chat(user, "That item is not compatible with the cycler's protocols.") - return - - if(I.icon_override == CUSTOM_ITEM_MOB) - to_chat(user, "You cannot refit a customised voidsuit.") - return - - //VOREStation Edit BEGINS - //Make it so autolok suits can't be refitted in a cycler - if(istype(I,/obj/item/clothing/head/helmet/space/void/autolok)) - to_chat(user, "You cannot refit an autolok helmet. In fact you shouldn't even be able to remove it in the first place. Inform an admin!") - return - - //Ditto the Mk7 - if(istype(I,/obj/item/clothing/head/helmet/space/void/responseteam)) - to_chat(user, "The cycler indicates that the Mark VII Emergency Response Helmet is not compatible with the refitting system. How did you manage to detach it anyway? Inform an admin!") - return - //VOREStation Edit ENDS - - to_chat(user, "You fit \the [I] into the suit cycler.") - user.drop_item() - I.loc = src - helmet = I - - update_icon() - updateUsrDialog() - return - - else if(istype(I,/obj/item/clothing/suit/space/void)) - var/obj/item/clothing/suit/space/void/IS = I - - if(locked) - to_chat(user, "The suit cycler is locked.") - return - - if(suit) - to_chat(user, "The cycler already contains a voidsuit.") - return - - if(IS.no_cycle) - to_chat(user, "That item is not compatible with the cycler's protocols.") - return - - if(I.icon_override == CUSTOM_ITEM_MOB) - to_chat(user, "You cannot refit a customised voidsuit.") - return - - //VOREStation Edit BEGINS - //Make it so autolok suits can't be refitted in a cycler - if(istype(I,/obj/item/clothing/suit/space/void/autolok)) - to_chat(user, "You cannot refit an autolok suit.") - return - - //Ditto the Mk7 - if(istype(I,/obj/item/clothing/suit/space/void/responseteam)) - to_chat(user, "The cycler indicates that the Mark VII Emergency Response Suit is not compatible with the refitting system.") - return - //VOREStation Edit ENDS - - to_chat(user, "You fit \the [I] into the suit cycler.") - user.drop_item() - I.loc = src - suit = I - - update_icon() - updateUsrDialog() - return - - ..() - -/obj/machinery/suit_cycler/emag_act(var/remaining_charges, var/mob/user) - if(emagged) - to_chat(user, "The cycler has already been subverted.") - return - - //Clear the access reqs, disable the safeties, and open up all paintjobs. - to_chat(user, "You run the sequencer across the interface, corrupting the operating protocols.") - - emagged = 1 - safeties = 0 - req_access = list() - updateUsrDialog() - return 1 - -/obj/machinery/suit_cycler/attack_hand(mob/user as mob) - add_fingerprint(user) - if(..() || stat & (BROKEN|NOPOWER)) - return - - if(!user.IsAdvancedToolUser()) - return 0 - - if(electrified != 0) - if(shock(user, 100)) - return - - tgui_interact(user) - -/obj/machinery/suit_cycler/tgui_state(mob/user) - return GLOB.tgui_notcontained_state - -/obj/machinery/suit_cycler/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "SuitCycler", name) - ui.open() - -/obj/machinery/suit_cycler/tgui_data(mob/user) - var/list/data = list() - - data["model_text"] = model_text - data["can_repair"] = can_repair - data["userHasAccess"] = allowed(user) - - data["locked"] = locked - data["active"] = active - data["safeties"] = safeties - data["uv_active"] = (active && irradiating > 0) - data["uv_level"] = radiation_level - data["max_uv_level"] = emagged ? 5 : 3 - if(helmet) - data["helmet"] = helmet.name - else - data["helmet"] = null - if(suit) - data["suit"] = suit.name - if(istype(suit) && can_repair) - data["damage"] = suit.damage - else - data["suit"] = null - data["damage"] = null - if(occupant) - data["occupied"] = TRUE - else - data["occupied"] = FALSE - - return data - -/obj/machinery/suit_cycler/tgui_static_data(mob/user) - var/list/data = list() - - // tgui gets angy if you pass values too - var/list/department_keys = list() - for(var/key in departments) - department_keys += key - - // emagged at the bottom - if(emagged) - for(var/key in emagged_departments) - department_keys += key - - var/list/species_keys = list() - for(var/key in species) - species_keys += key - - data["departments"] = department_keys - data["species"] = species_keys - - return data - -/obj/machinery/suit_cycler/tgui_act(action, params) - if(..()) - return TRUE - - switch(action) - if("dispense") - switch(params["item"]) - if("helmet") - helmet.forceMove(get_turf(src)) - helmet = null - if("suit") - suit.forceMove(get_turf(src)) - suit = null - . = TRUE - - if("department") - var/choice = params["department"] - if(choice in departments) - target_department = departments[choice] - else if(emagged && (choice in emagged_departments)) - target_department = emagged_departments[choice] - . = TRUE - - if("species") - var/choice = params["species"] - if(choice in species) - target_species = species[choice] - . = TRUE - - if("radlevel") - radiation_level = clamp(params["radlevel"], 1, emagged ? 5 : 3) - . = TRUE - - if("repair_suit") - if(!suit || !can_repair) - return - active = 1 - spawn(100) - repair_suit() - finished_job() - . = TRUE - - if("apply_paintjob") - if(!suit && !helmet) - return - active = 1 - spawn(100) - apply_paintjob() - finished_job() - . = TRUE - - if("lock") - if(allowed(usr)) - locked = !locked - to_chat(usr, "You [locked ? "" : "un"]lock \the [src].") - else - to_chat(usr, "Access denied.") - . = TRUE - - if("eject_guy") - eject_occupant(usr) - . = TRUE - - if("uv") - if(safeties && occupant) - to_chat(usr, "The cycler has detected an occupant. Please remove the occupant before commencing the decontamination cycle.") - return - - active = 1 - irradiating = 10 - - sleep(10) - - if(helmet) - if(radiation_level > 2) - helmet.decontaminate() - if(radiation_level > 1) - helmet.clean_blood() - - if(suit) - if(radiation_level > 2) - suit.decontaminate() - if(radiation_level > 1) - suit.clean_blood() - - . = TRUE - -/obj/machinery/suit_cycler/process() - - if(electrified > 0) - electrified-- - - if(!active) - return - - if(active && stat & (BROKEN|NOPOWER)) - active = 0 - irradiating = 0 - electrified = 0 - return - - if(irradiating == 1) - finished_job() - irradiating = 0 - return - - irradiating-- - - if(occupant) - if(prob(radiation_level*2)) occupant.emote("scream") - if(radiation_level > 2) - occupant.take_organ_damage(0,radiation_level*2 + rand(1,3)) - if(radiation_level > 1) - occupant.take_organ_damage(0,radiation_level + rand(1,3)) - occupant.apply_effect(radiation_level*10, IRRADIATE) - -/obj/machinery/suit_cycler/proc/finished_job() - var/turf/T = get_turf(src) - T.visible_message("\icon[src][bicon(src)]The [src] beeps several times.") - icon_state = initial(icon_state) - active = 0 - playsound(src, 'sound/machines/boobeebeep.ogg', 50) - updateUsrDialog() - -/obj/machinery/suit_cycler/proc/repair_suit() - if(!suit || !suit.damage || !suit.can_breach) - return - - suit.breaches = list() - suit.calc_breach_damage() - - return - -/obj/machinery/suit_cycler/verb/leave() - set name = "Eject Cycler" - set category = "Object" - set src in oview(1) - - if(usr.stat != 0) - return - - eject_occupant(usr) - -/obj/machinery/suit_cycler/proc/eject_occupant(mob/user as mob) - - if(locked || active) - to_chat(user, "The cycler is locked.") - return - - if(!occupant) - return - - if(occupant.client) - occupant.client.eye = occupant.client.mob - occupant.client.perspective = MOB_PERSPECTIVE - - occupant.loc = get_turf(occupant) - occupant = null - - add_fingerprint(user) - updateUsrDialog() - update_icon() - - return - -// "Streamlined" before? Ok. -Aro -/obj/machinery/suit_cycler/proc/apply_paintjob() - if(!target_species || !target_department) - return - - // Helmet to new paint - if(target_department.can_refit_helmet(helmet)) - target_department.do_refit_helmet(helmet) - // Suit to new paint - if(target_department.can_refit_suit(suit)) - target_department.do_refit_suit(suit) - // Attached voidsuit helmet to new paint - if(target_department.can_refit_helmet(suit?.helmet)) - target_department.do_refit_helmet(suit.helmet) - - // Species fitting for all 3 potential changes - if(target_species.can_refit_to(helmet, suit, suit?.helmet)) - target_species.do_refit_to(helmet, suit, suit?.helmet) - else - visible_message("\icon[src][bicon(src)]Unable to apply specified cosmetics with specified species. Please try again with a different species or cosmetic option selected.") - return diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm index 8c1bc87f3f..377a02aa74 100644 --- a/code/game/machinery/supplybeacon.dm +++ b/code/game/machinery/supplybeacon.dm @@ -114,6 +114,6 @@ var/drop_x = src.x - 2 var/drop_y = src.y - 2 var/drop_z = src.z - command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] recieved. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage") + command_announcement.Announce("[using_map.starsys_name] Rapid Fabrication priority supply request #[rand(1000,9999)]-[rand(100,999)] received. Shipment dispatched via ballistic supply pod for immediate delivery. Have a nice day.", "Thank You For Your Patronage") spawn(rand(100, 300)) new /datum/random_map/droppod/supply(null, drop_x, drop_y, drop_z, supplied_drop = drop_type) // Splat. diff --git a/code/game/machinery/syndicatebeacon_vr.dm b/code/game/machinery/syndicatebeacon_vr.dm index 668b36dcb7..30dd61458c 100644 --- a/code/game/machinery/syndicatebeacon_vr.dm +++ b/code/game/machinery/syndicatebeacon_vr.dm @@ -36,7 +36,7 @@ traitors.spawn_uplink(N) N.mind.tcrystals = DEFAULT_TELECRYSTAL_AMOUNT N.mind.accept_tcrystals = 1 - message_admins("[N]/([N.ckey]) has recieved an uplink and telecrystals from the syndicate beacon.") + message_admins("[N]/([N.ckey]) has received an uplink and telecrystals from the syndicate beacon.") updateUsrDialog() return diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index e23f7dd8b2..9c25b9f650 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -37,6 +37,8 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() var/hide = 0 // Is it a hidden machine? var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. + var/datum/looping_sound/tcomms/soundloop // CHOMPStation Add: Hummy noises + var/noisy = TRUE // CHOMPStation Add: Hummy noises, this starts on /obj/machinery/telecomms/proc/relay_information(datum/signal/signal, filter, copysig, amount = 20) // relay signal to all linked machinery that are of type [filter]. If signal has been sent [amount] times, stop sending @@ -132,6 +134,20 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() else for(var/obj/machinery/telecomms/T in telecomms_list) add_link(T) + // CHOMPAdd: TComms humming + soundloop = new(list(src), FALSE) + if(prob(60)) // 60% chance to change the midloop + if(prob(40)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_02.ogg' = 1) + soundloop.mid_length = 40 + else if(prob(20)) + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_03.ogg' = 1) + soundloop.mid_length = 10 + else + soundloop.mid_sounds = list('sound/machines/tcomms/tcomms_04.ogg' = 1) + soundloop.mid_length = 30 + soundloop.start() + // CHOMPAdd End . = ..() /obj/machinery/telecomms/Destroy() @@ -139,6 +155,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() for(var/obj/machinery/telecomms/comm in telecomms_list) comm.links -= src links = list() + QDEL_NULL(soundloop) // CHOMPAdd: Tcomms noises ..() // Used in auto linking @@ -162,10 +179,17 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() if(toggled) if(stat & (BROKEN|NOPOWER|EMPED) || integrity <= 0) // if powered, on. if not powered, off. if too damaged, off on = 0 + soundloop.stop() // CHOMPAdd: Tcomms noises + noisy = FALSE else on = 1 else on = 0 + soundloop.stop() // CHOMPAdd: Tcomms noises + noisy = FALSE + if(!noisy) // CHOMPAdd: Tcomms noises + soundloop.start() // CHOMPAdd: Tcomms noises + noisy = TRUE /obj/machinery/telecomms/process() update_power() @@ -183,6 +207,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() if(prob(100/severity)) if(!(stat & EMPED)) stat |= EMPED + playsound(src, 'sound/machines/tcomms/tcomms_pulse.ogg', 70, 1, 30) // CHOMPAdd: Tcomms noises var/duration = (300 * 10)/severity spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. stat &= ~EMPED diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index e46eb5117a..ddab98d730 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -566,7 +566,7 @@ "View Stats" = radial_image_statpanel ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_occupant_radial, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_occupant_radial), user), require_near = TRUE, tooltips = TRUE) if(!check_occupant_radial(user)) return if(!choice) diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm index 8cdeb690e4..2807dbb4d9 100644 --- a/code/game/objects/effects/alien/aliens.dm +++ b/code/game/objects/effects/alien/aliens.dm @@ -10,7 +10,7 @@ */ /obj/effect/alien name = "alien thing" - desc = "theres something alien about this" + desc = "there's something alien about this" icon = 'icons/mob/alien.dmi' /* @@ -289,3 +289,5 @@ if(0 to 1) visible_message("[src.target] begins to crumble under the acid!") spawn(rand(150, 200)) tick() + +//Xenomorph Effect egg removed, replaced with Structure Egg. diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm index 5dad8accc4..b57145c801 100644 --- a/code/game/objects/effects/chem/foam.dm +++ b/code/game/objects/effects/chem/foam.dm @@ -23,9 +23,9 @@ metal = ismetal playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3) if(dries) //VOREStation Add - addtimer(CALLBACK(src, .proc/post_spread), 3 + metal * 3) - addtimer(CALLBACK(src, .proc/pre_harden), 12 SECONDS) - addtimer(CALLBACK(src, .proc/harden), 15 SECONDS) + addtimer(CALLBACK(src, PROC_REF(post_spread)), 3 + metal * 3) + addtimer(CALLBACK(src, PROC_REF(pre_harden)), 12 SECONDS) + addtimer(CALLBACK(src, PROC_REF(harden)), 15 SECONDS) /obj/effect/effect/foam/proc/post_spread() process() diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 6f96ec1689..7366912038 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -49,7 +49,7 @@ var/global/list/image/splatter_cache=list() if (B.blood_DNA) blood_DNA |= B.blood_DNA.Copy() qdel(B) - addtimer(CALLBACK(src, .proc/dry), DRYING_TIME * (amount+1)) + addtimer(CALLBACK(src, PROC_REF(dry)), DRYING_TIME * (amount+1)) /obj/effect/decal/cleanable/blood/update_icon() if(basecolor == "rainbow") basecolor = get_random_colour(1) diff --git a/code/game/objects/effects/map_effects/beam_point.dm b/code/game/objects/effects/map_effects/beam_point.dm index c10e8b0315..6a023a0470 100644 --- a/code/game/objects/effects/map_effects/beam_point.dm +++ b/code/game/objects/effects/map_effects/beam_point.dm @@ -36,7 +36,7 @@ GLOBAL_LIST_EMPTY(all_beam_points) if(make_beams_on_init) create_beams() if(use_timer) - addtimer(CALLBACK(src, .proc/handle_beam_timer), initial_delay) + addtimer(CALLBACK(src, PROC_REF(handle_beam_timer)), initial_delay) return ..() /obj/effect/map_effect/beam_point/Destroy() diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 89b0bc2e87..aba53f81bc 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -4,7 +4,7 @@ density = FALSE anchored = TRUE icon = 'icons/obj/weapons.dmi' - icon_state = "uglymine" + icon_state = "landmine" var/triggered = 0 var/smoke_strength = 3 var/obj/item/weapon/mine/mineitemtype = /obj/item/weapon/mine @@ -16,7 +16,7 @@ var/obj/item/trap = null /obj/effect/mine/Initialize() - icon_state = "uglyminearmed" + icon_state = "landmine_armed" wires = new(src) . = ..() if(ispath(trap)) diff --git a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm index cbf8db46be..0b962a48b6 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -102,4 +102,12 @@ light_color = "#80F5FF" //VOREStation edit ends /obj/effect/projectile/impact/pointdefense - icon_state = "impact_pointdef" \ No newline at end of file + icon_state = "impact_pointdef" + //CHOMPStation add coilgun pointdefense +/obj/effect/projectile/impact/coildefense + icon = 'icons/obj/projectiles_impact_ch.dmi' + icon_state = "impact_coildef" + light_range = 2 + light_power = 3 + light_color = "#FFFFFF" +//CHOMPStation add end <3 diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index a817c9e74d..b2e73ead43 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -114,4 +114,12 @@ light_color = "#80F5FF" //VOREStation edit ends /obj/effect/projectile/muzzle/pointdefense - icon_state = "muzzle_pointdef" \ No newline at end of file + icon_state = "muzzle_pointdef" +//CHOMPStation add coilgun pointdefense +/obj/effect/projectile/muzzle/coildefense + icon = 'icons/obj/projectiles_muzzle_ch.dmi' + icon_state = "muzzle_coildef" + light_range = 3 + light_power = 1 + light_color = "#FFFFFF" +//CHOMPStation add end <3 diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 01a6b64e1c..f6d03516c6 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -141,4 +141,12 @@ light_color = "#80F5FF" //VOREStation edit ends /obj/effect/projectile/tracer/pointdefense - icon_state = "beam_pointdef" \ No newline at end of file + icon_state = "beam_pointdef" +//CHOMPStation add coilgun pointdefense +/obj/effect/projectile/tracer/coildefense + icon = 'icons/obj/projectiles_tracer_ch.dmi' + icon_state = "tracer_coildef" + light_range = 1 + light_power = 2 + light_color = "#FFFFFF" +//CHOMPStation add end <3 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cb2150f29b..57aa00fe99 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -109,7 +109,10 @@ var/tip_timer // reference to timer id for a tooltip we might open soon var/no_random_knockdown = FALSE //stops item from being able to randomly knock people down in combat - + + var/rock_climbing = FALSE //If true, allows climbing cliffs using click drag for single Z, walls if multiZ + var/climbing_delay = 1 //If rock_climbing, lower better. + /obj/item/Initialize(mapload) //CHOMPedit I stg I'm going to overwrite these many uncommented edits. . = ..() if(islist(origin_tech)) @@ -734,7 +737,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. H.toggle_zoom_hud() // If the user has already limited their HUD this avoids them having a HUD when they zoom in H.set_viewsize(viewsize) zoom = 1 - GLOB.moved_event.register(H, src, .proc/zoom) + GLOB.moved_event.register(H, src, PROC_REF(zoom)) var/tilesize = 32 var/viewoffset = tilesize * tileoffset @@ -763,7 +766,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. if(!H.hud_used.hud_shown) H.toggle_zoom_hud() zoom = 0 - GLOB.moved_event.unregister(H, src, .proc/zoom) + GLOB.moved_event.unregister(H, src, PROC_REF(zoom)) H.client.pixel_x = 0 H.client.pixel_y = 0 @@ -944,7 +947,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. . = ..() if(usr.is_preference_enabled(/datum/client_preference/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at var/user = usr - tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), 5, TIMER_STOPPABLE) + tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), 5, TIMER_STOPPABLE) /obj/item/MouseExited() . = ..() diff --git a/code/game/objects/items/contraband_vr.dm b/code/game/objects/items/contraband_vr.dm index 6737788486..804dd4b554 100644 --- a/code/game/objects/items/contraband_vr.dm +++ b/code/game/objects/items/contraband_vr.dm @@ -92,18 +92,6 @@ to_chat(user, "You unwrap the package.") qdel(src) -/obj/item/weapon/storage/fancy/cigar/havana // Putting this here 'cuz fuck it. -Spades - name = "\improper Havana cigar case" - desc = "Save these for the fancy-pantses at the next CentCom black tie reception. You can't blow the smoke from such majestic stogies in just anyone's face." - icon_state = "cigarcase" - icon = 'icons/obj/cigarettes.dmi' - w_class = ITEMSIZE_TINY - throwforce = 2 - slot_flags = SLOT_BELT - storage_slots = 7 - can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar/havana) - icon_type = "cigar" - /obj/item/weapon/miscdisc name = "strange artefact" desc = "A large disc-shaped item, with a red, opaque crystal embedded in the center. It is some what heavy. There are indentations along the ring of the disc. Alien scripture lines the disc." diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index e1a295dfc4..ac73bf97c8 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -71,7 +71,7 @@ if("wipe") msg_admin_attack("[key_name_admin(user)] wiped [key_name_admin(AI)] with \the [src].") add_attack_logs(user,carded_ai,"Purged from AI Card") - INVOKE_ASYNC(src, .proc/wipe_ai) + INVOKE_ASYNC(src, PROC_REF(wipe_ai)) if("radio") carded_ai.aiRadio.disabledAi = !carded_ai.aiRadio.disabledAi to_chat(carded_ai, "Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!") @@ -83,7 +83,7 @@ if(carded_ai.control_disabled && carded_ai.deployed_shell) carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.") update_icon() - + return TRUE /obj/item/device/aicard/update_icon() @@ -182,4 +182,4 @@ AI.adjustOxyLoss(2) AI.updatehealth() sleep(10) - flush = FALSE \ No newline at end of file + flush = FALSE diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm index 9ce6bfac8c..3ac84edc98 100644 --- a/code/game/objects/items/devices/communicator/communicator.dm +++ b/code/game/objects/items/devices/communicator/communicator.dm @@ -108,7 +108,7 @@ var/global/list/obj/item/device/communicator/all_communicators = list() setup_tgui_camera() //This is a pretty terrible way of doing this. - addtimer(CALLBACK(src, .proc/register_to_holder), 5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(register_to_holder)), 5 SECONDS) @@ -477,4 +477,3 @@ var/global/list/obj/item/device/communicator/all_communicators = list() return icon_state = initial(icon_state) - diff --git a/code/game/objects/items/devices/communicator/phone.dm b/code/game/objects/items/devices/communicator/phone.dm index 671598a6ef..eafd3105e0 100644 --- a/code/game/objects/items/devices/communicator/phone.dm +++ b/code/game/objects/items/devices/communicator/phone.dm @@ -349,14 +349,14 @@ video_source = comm.camera comm.visible_message("\icon[src][bicon(src)] New video connection from [comm].") update_active_camera_screen() - GLOB.moved_event.register(video_source, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(video_source, src, PROC_REF(update_active_camera_screen)) update_icon() // Proc: end_video() // Parameters: reason - the text reason to print for why it ended // Description: Ends the video call by clearing video_source /obj/item/device/communicator/proc/end_video(var/reason) - GLOB.moved_event.unregister(video_source, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(video_source, src, PROC_REF(update_active_camera_screen)) show_static() video_source = null @@ -364,4 +364,3 @@ visible_message(.) update_icon() - diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm index 32b7be4ac6..3b8fb1c761 100644 --- a/code/game/objects/items/devices/denecrotizer_vr.dm +++ b/code/game/objects/items/devices/denecrotizer_vr.dm @@ -49,7 +49,7 @@ if(!evaluate_ghost_join(user)) return ..() - tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, .proc/reply_ghost_join), 20 SECONDS) + tgui_alert_async(usr, "Would you like to become [src]? It is bound to [revivedby].", "Become Mob", list("Yes","No"), CALLBACK(src, PROC_REF(reply_ghost_join)), 20 SECONDS) /// A reply to an async alert request was received /mob/living/simple_mob/proc/reply_ghost_join(response) @@ -64,7 +64,7 @@ /mob/living/simple_mob/proc/ghost_join(mob/observer/dead/D) log_and_message_admins("[key_name_admin(D)] joined [src] as a ghost [ADMIN_FLW(src)]") active_ghost_pods -= src - + // Move the ghost in if(D.mind) D.mind.active = TRUE @@ -72,7 +72,7 @@ else src.ckey = D.ckey qdel(D) - + // Clean up the simplemob ghostjoin = FALSE ghostjoin_icon() @@ -91,14 +91,14 @@ return FALSE // At this point we can at least send them messages as to why they can't join, since they are a mob with a client - if(!ghostjoin) + if(!ghostjoin) to_chat(D, "Sorry, [src] is no longer ghost-joinable.") return FALSE if(ckey) to_chat(D, "Sorry, someone else has already inhabited [src].") return FALSE - + if(capture_caught && !D.client.prefs.capture_crystal) to_chat(D, "Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.") return FALSE @@ -128,7 +128,7 @@ else . += "The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses." -/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user) +/obj/item/device/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user) if(!target.Adjacent(user)) return FALSE if(user.a_intent != I_HELP) //be gentle @@ -150,10 +150,10 @@ if(!advanced) to_chat(user, "[src] doesn't seem to work on that.") return FALSE - if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS + if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS to_chat(user, "[src] doesn't seem to work on that.") return FALSE - if(!target.mind) + if(!target.mind) user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]") if(do_after(user, revive_time, exclusive = TASK_USER_EXCLUSIVE, target = target)) target.faction = user.faction @@ -196,7 +196,7 @@ icon_state = "[initial(icon_state)]-o" update_icon() return - + /obj/item/device/denecrotizer/proc/basic_rez(mob/living/simple_mob/target, mob/living/user) //so medical can have a way to bring back people's pets or whatever, does not change any settings about the mob or offer it to ghosts. user.visible_message("[user] presses [src] to [target]...", runemessage = "presses [src] to [target]") if(do_after(user, revive_time, exclusive = TASK_ALL_EXCLUSIVE, target = target)) @@ -234,9 +234,9 @@ I.invisibility = INVISIBILITY_OBSERVER I.plane = PLANE_GHOSTS I.appearance_flags = KEEP_APART|RESET_TRANSFORM - + cut_overlay(I) - + if(ghostjoin) add_overlay(I) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 71bb7c0dd5..a776f1847f 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -45,8 +45,8 @@ var/list/GPS_list = list() if(istype(loc, /mob)) holder = loc - GLOB.moved_event.register(holder, src, .proc/update_compass) - GLOB.dir_set_event.register(holder, src, .proc/update_compass) + GLOB.moved_event.register(holder, src, PROC_REF(update_compass)) + GLOB.dir_set_event.register(holder, src, PROC_REF(update_compass)) if(holder && tracking) if(!is_in_processing_list) diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index 37a5ade906..7c27d9f2ee 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -95,7 +95,7 @@ to conduct a one time lawful search of the Suspect's person/belongings/premises and/or Department
for any items and materials that could be connected to the suspected criminal act described below,
pending an investigation in progress. The Security Officer(s) are obligated to remove any and all
- such items from the Suspects posession and/or Department and file it as evidence. The Suspect/Department
+ such items from the Suspect's possession and/or Department and file it as evidence. The Suspect/Department
staff is expected to offer full co-operation. In the event of the Suspect/Department staff attempting
to resist/impede this search or flee, they must be taken into custody immediately!
All confiscated items must be filed and taken to Evidence!
@@ -113,9 +113,9 @@ /obj/item/weapon/storage/box/holowarrants // VOREStation addition starts name = "holowarrant devices" - desc = "A box of holowarrant diplays for security use." + desc = "A box of holowarrant displays for security use." /obj/item/weapon/storage/box/holowarrants/New() ..() for(var/i = 0 to 3) - new /obj/item/device/holowarrant(src) // VOREStation addition ends \ No newline at end of file + new /obj/item/device/holowarrant(src) // VOREStation addition ends diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 0a73242717..6e6d6e132c 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -226,13 +226,13 @@ /obj/item/device/radio/headset/heads/hos name = "head of security's headset" - desc = "The headset of the hardass who protects your worthless lifes." + desc = "The headset of the hardass who protects your worthless lives." icon_state = "com_headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/hos/alt name = "head of security's bowman headset" - desc = "The headset of the hardass who protects your worthless lifes." + desc = "The headset of the hardass who protects your worthless lives." icon_state = "com_headset_alt" ks2type = /obj/item/device/encryptionkey/heads/hos diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index 0e87e867c5..d5baa6516b 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -2,8 +2,9 @@ name = "portable suit cooling unit" desc = "A portable heat sink and liquid cooled radiator that can be hooked up to a space suit's existing temperature controls to provide industrial levels of cooling." w_class = ITEMSIZE_LARGE - icon = 'icons/obj/device.dmi' + icon = 'icons/obj/suit_cooler.dmi' icon_state = "suitcooler0" + item_state = "coolingpack" slot_flags = SLOT_BACK //copied from tank.dm @@ -171,13 +172,32 @@ return ..() /obj/item/device/suit_cooling_unit/proc/updateicon() - if (cover_open) - if (cell) + cut_overlays() + if(cover_open) + if(cell) icon_state = "suitcooler1" else icon_state = "suitcooler2" - else - icon_state = "suitcooler0" + return + + icon_state = "suitcooler0" + + if(!cell || !on) + return + + switch(round(cell.percent())) + if(86 to INFINITY) + add_overlay("battery-0") + if(69 to 85) + add_overlay("battery-1") + if(52 to 68) + add_overlay("battery-2") + if(35 to 51) + add_overlay("battery-3") + if(18 to 34) + add_overlay("battery-4") + if(-INFINITY to 17) + add_overlay("battery-5") /obj/item/device/suit_cooling_unit/examine(mob/user) . = ..() @@ -218,7 +238,7 @@ /obj/item/device/suit_cooling_unit/emergency/attackby(obj/item/weapon/W as obj, mob/user as mob) if (W.is_screwdriver()) - to_chat(user, "This model has the cell permanently installed!") + to_chat(user, "This cooler's cell is permanently installed!") return return ..() diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 30d032215f..d3923a478d 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -99,7 +99,7 @@ voice = M.name //END OF CHOMPEDIT if(mytape && recording) - mytape.record_speech("[voice] [verb], \"[msg]\"") //CHOMP Edit + mytape.record_speech("[voice] [verb], \"[msg]\"") /obj/item/device/taperecorder/see_emote(mob/M as mob, text, var/emote_type) diff --git a/code/game/objects/items/devices/translocator_vr.dm b/code/game/objects/items/devices/translocator_vr.dm index 8333f2228b..ae17602794 100644 --- a/code/game/objects/items/devices/translocator_vr.dm +++ b/code/game/objects/items/devices/translocator_vr.dm @@ -125,7 +125,7 @@ This device can be easily used to break ERP preferences due to the nature of tel Make sure you carefully examine someone's OOC prefs before teleporting them if you are going to use this device for ERP purposes. This device records all warnings given and teleport events for admin review in case of pref-breaking, so just don't do it. "},"OOC Warning") - var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, radial_menu_anchor, radial_images, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!choice) return diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm index ef5ae25fa7..268131fb7d 100644 --- a/code/game/objects/items/devices/uplink.dm +++ b/code/game/objects/items/devices/uplink.dm @@ -25,7 +25,7 @@ /obj/item/device/uplink/Initialize(var/mapload) . = ..() - addtimer(CALLBACK(src, .proc/next_offer), offer_time) //It seems like only the /hidden type actually makes use of this... + addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time) //It seems like only the /hidden type actually makes use of this... /obj/item/device/uplink/get_item_cost(var/item_type, var/item_cost) return (discount_item && (item_type == discount_item)) ? max(1, round(item_cost*discount_amount)) : item_cost @@ -63,7 +63,7 @@ discount_amount = pick(90;0.9, 80;0.8, 70;0.7, 60;0.6, 50;0.5, 40;0.4, 30;0.3, 20;0.2, 10;0.1) next_offer_time = world.time + offer_time SStgui.update_uis(src) - addtimer(CALLBACK(src, .proc/next_offer), offer_time) + addtimer(CALLBACK(src, PROC_REF(next_offer)), offer_time) // Toggles the uplink on and off. Normally this will bypass the item's normal functions and go to the uplink menu, if activated. /obj/item/device/uplink/hidden/proc/toggle() diff --git a/code/game/objects/items/pizza_voucher_vr.dm b/code/game/objects/items/pizza_voucher_vr.dm index a4dad4720f..af7469715a 100644 --- a/code/game/objects/items/pizza_voucher_vr.dm +++ b/code/game/objects/items/pizza_voucher_vr.dm @@ -30,7 +30,7 @@ "A small bluespace rift opens just above your head and spits out a pizza box!", "You hear a fwoosh followed by a thump.") if(special_delivery) - command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECIEVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!") + command_announcement.Announce("SPECIAL DELIVERY PIZZA ORDER #[rand(1000,9999)]-[rand(100,999)] HAS BEEN RECEIVED. SHIPMENT DISPATCHED VIA EXTRA-POWERFUL BALLISTIC LAUNCHERS FOR IMMEDIATE DELIVERY! THANK YOU AND ENJOY YOUR PIZZA!", "WE ALWAYS DELIVER!") new /obj/effect/falling_effect/pizza_delivery/special(user.loc) else new /obj/effect/falling_effect/pizza_delivery(user.loc) diff --git a/code/game/objects/items/toys/mech_toys.dm b/code/game/objects/items/toys/mech_toys.dm index 3fdb9c6659..ecbefb74d2 100644 --- a/code/game/objects/items/toys/mech_toys.dm +++ b/code/game/objects/items/toys/mech_toys.dm @@ -90,7 +90,7 @@ return FALSE // If the attacker_controller isn't next to the attacking toy (and doesn't have telekinesis), the battle ends. if(!in_range(attacker, attacker_controller)) - attacker_controller.visible_message(" [attacker_controller.name] seperates from [attacker], ending the battle.", \ + attacker_controller.visible_message(" [attacker_controller.name] separates from [attacker], ending the battle.", \ " You separate from [attacker], ending the battle. ") return FALSE @@ -99,13 +99,13 @@ if(opponent.incapacitated()) return FALSE if(!in_range(src, opponent)) - opponent.visible_message(" [opponent.name] seperates from [src], ending the battle.", \ + opponent.visible_message(" [opponent.name] separates from [src], ending the battle.", \ " You separate from [src], ending the battle. ") return FALSE // If it's not PVP and the attacker_controller isn't next to the defending toy (and doesn't have telekinesis), the battle ends. else if (!in_range(src, attacker_controller)) - attacker_controller.visible_message(" [attacker_controller.name] seperates from [src] and [attacker], ending the battle.", \ + attacker_controller.visible_message(" [attacker_controller.name] separates from [src] and [attacker], ending the battle.", \ " You separate [attacker] and [src], ending the battle. ") return FALSE @@ -170,7 +170,7 @@ to_chat(user, "You offer battle to [target.name]!") to_chat(target, "[user.name] wants to battle with [T.His] [name]! Attack them with a toy mech to initiate combat.") wants_to_battle = TRUE - addtimer(CALLBACK(src, .proc/withdraw_offer, user), 6 SECONDS) + addtimer(CALLBACK(src, PROC_REF(withdraw_offer), user), 6 SECONDS) return ..() @@ -602,4 +602,4 @@ #undef SPECIAL_ATTACK_DAMAGE #undef SPECIAL_ATTACK_UTILITY #undef SPECIAL_ATTACK_OTHER -#undef MAX_BATTLE_LENGTH \ No newline at end of file +#undef MAX_BATTLE_LENGTH diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index c55a6bf6e4..55b28c867e 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -179,7 +179,7 @@ playsound(user, 'sound/voice/shriek1.ogg', 10, 0) src.visible_message("Skreee!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/vox/proc/cooldownreset() @@ -229,7 +229,7 @@ playsound(user, 'sound/machines/ping.ogg', 10, 0) src.visible_message("Ping!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/ipc/proc/cooldownreset() @@ -246,7 +246,7 @@ playsound(user, 'sound/machines/ding.ogg', 10, 0) src.visible_message("Ding!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/snakeplushie @@ -280,14 +280,14 @@ atom_say(pick(responses)) playsound(user, 'sound/effects/whistle.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/marketable_pip/attack_self(mob/user as mob) if(!cooldown) playsound(user, 'sound/effects/whistle.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/marketable_pip/proc/cooldownreset() @@ -306,7 +306,7 @@ playsound(user, 'sound/voice/moth/scream_moth.ogg', 10, 0) src.visible_message("Aaaaaaa.") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/moth/proc/cooldownreset() @@ -351,7 +351,7 @@ playsound(user, 'sound/weapons/slice.ogg', 10, 0) src.visible_message("Stab!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/plushie/susblue @@ -477,7 +477,7 @@ flick("[initial(icon_state)]2", src) user.visible_message("[user] doesn't blind [M] with the toy flash!") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/flash/proc/cooldownreset() @@ -546,7 +546,7 @@ user.visible_message("[user] asks the AI core to state laws.") user.visible_message("[src] says \"[answer]\"") cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/AI/proc/cooldownreset() @@ -826,7 +826,7 @@ if(!cooldown) playsound(user, 'sound/weapons/chainsaw_startup.ogg', 10, 0) cooldown = 1 - addtimer(CALLBACK(src, .proc/cooldownreset), 50) + addtimer(CALLBACK(src, PROC_REF(cooldownreset)), 50) return ..() /obj/item/toy/chainsaw/proc/cooldownreset() diff --git a/code/game/objects/items/weapons/RCD_vr.dm b/code/game/objects/items/weapons/RCD_vr.dm index d120e593f4..48f380f1ae 100644 --- a/code/game/objects/items/weapons/RCD_vr.dm +++ b/code/game/objects/items/weapons/RCD_vr.dm @@ -36,20 +36,20 @@ /obj/item/weapon/rcd/update_icon() var/nearest_ten = round((stored_matter/max_stored_matter)*10, 1) - + //Just to prevent updates every use if(ammostate == nearest_ten) return //No change ammostate = nearest_ten - + cut_overlays() - + //Main sprite update if(!nearest_ten) icon_state = "[initial(icon_state)]_empty" else icon_state = "[initial(icon_state)]" - + add_overlay("[initial(icon_state)]_charge[nearest_ten]") /obj/item/weapon/rcd/proc/perform_effect(var/atom/A, var/time_taken) @@ -98,12 +98,12 @@ if(user.incapacitated()) world.log << "Two" return FALSE - + var/obj/item/rig_module/device/D = loc if(!istype(D) || !D?.holder?.wearer == user) world.log << "Three" return FALSE - + return TRUE /obj/item/weapon/rcd/attack_self(mob/living/user) @@ -134,7 +134,7 @@ "Change Window Type" = image(icon = 'icons/mob/radial.dmi', icon_state = "windowtype") ) */ - var/choice = show_radial_menu(user, user, choices, custom_check = CALLBACK(src, .proc/check_menu, user), tooltips = TRUE) + var/choice = show_radial_menu(user, user, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), tooltips = TRUE) if(!check_menu(user)) return switch(choice) @@ -206,7 +206,7 @@ status = rcd_status delay = rcd_delay if (status == RCD_DECONSTRUCT) - addtimer(CALLBACK(src, /atom/.proc/update_icon), 11) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 11) delay -= 11 icon_state = "rcd_end_reverse" else @@ -228,7 +228,7 @@ qdel(src) else icon_state = "rcd_end" - addtimer(CALLBACK(src, .proc/end), 15) + addtimer(CALLBACK(src, PROC_REF(end)), 15) /obj/effect/constructing_effect/proc/end() qdel(src) diff --git a/code/game/objects/items/weapons/RMS_vr.dm b/code/game/objects/items/weapons/RMS_vr.dm index 4ec4996bdd..2e1cfc4b3d 100644 --- a/code/game/objects/items/weapons/RMS_vr.dm +++ b/code/game/objects/items/weapons/RMS_vr.dm @@ -221,7 +221,7 @@ "Random" = radial_image_random ) - var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) + var/choice = show_radial_menu(user, src, choices, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) if(!check_menu(user)) return switch(choice) diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index d195d09c1c..da096cd0f0 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -250,8 +250,8 @@ //Make it so the crystal knows if its mob references get deleted to make sure things get cleaned up /obj/item/capture_crystal/proc/knowyoursignals(mob/living/M, mob/living/U) - RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/mob_was_deleted, TRUE) - RegisterSignal(U, COMSIG_PARENT_QDELETING, .proc/owner_was_deleted, TRUE) + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(mob_was_deleted), TRUE) + RegisterSignal(U, COMSIG_PARENT_QDELETING, PROC_REF(owner_was_deleted), TRUE) //The basic capture command does most of the registration work. /obj/item/capture_crystal/proc/capture(mob/living/M, mob/living/U) diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index d85e21ae1c..3d252a03a6 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -335,7 +335,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/smokable/cigarette/cigar name = "premium cigar" desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" - description_fluff = "While the label does say that this is a 'premium cigar', it really cannot match other types of cigars on the market. Is it a quality cigarette? Perhaps. Was it hand-made with care? No." + description_fluff = "While the label does say that this is a 'premium cigar', it \ + really cannot match other types of cigars on the market. Is it a quality \ + cigarette? Perhaps. Was it hand-made with care? No." icon_state = "cigar2" type_butt = /obj/item/trash/cigbutt/cigarbutt throw_speed = 0.5 @@ -353,14 +355,22 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba name = "\improper Cohiba Robusto cigar" desc = "There's little more you could want from a cigar." - description_fluff = "Cohiba has been a popular cigar company for centuries. They are still based out of Cuba and refuse to expand and therefore have a very limited quantity, making their cigars coveted all through known space. Robusto is one of their most popular shapes of cigars." + description_fluff = "Cohiba has been a popular cigar company for centuries. \ + They are still based out of Cuba and refuse to expand and therefore have a very \ + limited quantity, making their cigars coveted all through known space. Robusto \ + is one of their most popular shapes of cigars." icon_state = "cigar2" nicotine_amt = 7 /obj/item/clothing/mask/smokable/cigarette/cigar/havana name = "premium Havanian cigar" - desc = "A cigar fit for only the best of the best." - description_fluff = "'Havanian' is an umbrella term for any cigar made in the typical handmade style of Cuba. This particular cigar is from Gilthari's cigar manufacturers and produced galaxy-wide. While this way of making quality cigars has become slightly bastardized over the years, overall quality has remained relatively the same, even if there is a large quantity of 'Havanian' cigars." + desc = "Save these for the fancy-pantses at the next CentCom black tie reception. \ + You can't blow the smoke from such majestic stogies in just anyone's face." + description_fluff = "'Havanian' is an umbrella term for any cigar made in the \ + typical handmade style of Cuba. This particular cigar is from Gilthari's cigar \ + manufacturers and produced galaxy-wide. While this way of making quality cigars \ + has become slightly bastardized over the years, overall quality has remained \ + relatively the same, even if there is a large quantity of 'Havanian' cigars." icon_state = "cigar2" max_smoketime = 7200 smoketime = 7200 @@ -400,7 +410,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/smokable/pipe name = "smoking pipe" desc = "A pipe, for smoking. Made of fine, stained cherry wood." - description_fluff = "ClassiCo Accessories and Haberdashers, originating out of Mars, claim to produce products 'for the modern gentlefolk'. Most of their items are high-end and expensive, but they pledge to back their prices up with quality, and usually do." + description_fluff = "ClassiCo Accessories and Haberdashers, originating out of Mars, \ + claim to produce products 'for the modern gentlefolk'. Most of their items are high-end \ + and expensive, but they pledge to back their prices up with quality, and usually do." icon_state = "pipe" item_state = "pipe" smoketime = 0 @@ -507,7 +519,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/weapon/reagent_containers/rollingpaper name = "rolling paper" desc = "A small, thin piece of easily flammable paper, commonly used for rolling and smoking various dried plants." - description_fluff = "The legalization of certain substances propelled the sale of rolling papers through the roof. Now almost every Trans-stellar produces a variety, often of questionable quality." + description_fluff = "The legalization of certain substances propelled the sale of rolling \ + papers through the roof. Now almost every Trans-stellar produces a variety, often of questionable quality." icon = 'icons/obj/cigarettes.dmi' icon_state = "cig paper" volume = 25 @@ -555,77 +568,85 @@ CIGARETTE PACKETS ARE IN FANCY.DM qdel(src) ///////// -//ZIPPO// +//CHEAP// ///////// /obj/item/weapon/flame/lighter name = "cheap lighter" desc = "A cheap-as-free lighter." - description_fluff = "The 'hand-made in Altair' sticker underneath is a charming way of saying 'Made with prison labour'. It's no wonder the company can sell these things so cheap." - icon = 'icons/obj/items.dmi' - icon_state = "lighter-g" - item_state = "lighter-g" + description_fluff = "The 'hand-made in Altair' sticker underneath is a charming way of \ + saying 'Made with prison labour'. It's no wonder the company can sell these things so cheap." + icon = 'icons/obj/lighters.dmi' + icon_state = "lighter" + item_state = "lighter" w_class = ITEMSIZE_TINY throwforce = 4 slot_flags = SLOT_BELT attack_verb = list("burnt", "singed") var/base_state + /// Sounds var/activation_sound = 'sound/items/lighter_on.ogg' var/deactivation_sound = 'sound/items/lighter_off.ogg' + /// Color of the flame and how big the flame is (pulled from Welder code) + var/flame_color = "#FF9933" + var/flame_intensity = 2 + /// Color List + var/random_color = FALSE + var/available_colors = list(COLOR_ASSEMBLY_BLACK, + COLOR_ASSEMBLY_BGRAY, + COLOR_ASSEMBLY_WHITE, + COLOR_ASSEMBLY_RED, + COLOR_ASSEMBLY_ORANGE, + COLOR_ASSEMBLY_BEIGE, + COLOR_ASSEMBLY_BROWN, + COLOR_ASSEMBLY_GOLD, + COLOR_ASSEMBLY_YELLOW, + COLOR_ASSEMBLY_GURKHA, + COLOR_ASSEMBLY_LGREEN, + COLOR_ASSEMBLY_GREEN, + COLOR_ASSEMBLY_LBLUE, + COLOR_ASSEMBLY_BLUE, + COLOR_ASSEMBLY_PURPLE, + COLOR_ASSEMBLY_HOT_PINK) -/obj/item/weapon/flame/lighter/zippo - name = "\improper Zippo lighter" - desc = "The zippo." - description_fluff = "Still going after all these years." - icon = 'icons/obj/zippo.dmi' - icon_state = "zippo" - item_state = "zippo" - activation_sound = 'sound/items/zippo_on.ogg' - deactivation_sound = 'sound/items/zippo_off.ogg' - +// TODO: Remove this path from POIs and loose maps (it's no longer needed) /obj/item/weapon/flame/lighter/random -/obj/item/weapon/flame/lighter/random/New() - icon_state = "lighter-[pick("r","c","y","g")]" - item_state = icon_state - base_state = icon_state + +// Randomizes Cheap Lighters on Spawn +/obj/item/weapon/flame/lighter/Initialize() + . = ..() + var/image/I = image(icon, "lighter-[pick("trans","tall","matte")]") + I.color = pick(available_colors) + add_overlay(I) /obj/item/weapon/flame/lighter/attack_self(mob/living/user) - if(!base_state) - base_state = icon_state if(!lit) lit = 1 - icon_state = "[base_state]on" - item_state = "[base_state]on" + icon_state = "lighteron" playsound(src, activation_sound, 75, 1) - if(istype(src, /obj/item/weapon/flame/lighter/zippo) ) - user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.") + if(prob(95)) + user.visible_message("After a few attempts, [user] manages to light the [src].") else - if(prob(95)) - user.visible_message("After a few attempts, [user] manages to light the [src].") + to_chat(user, "You burn yourself while lighting the lighter.") + if (user.get_left_hand() == src) + user.apply_damage(2,BURN,"l_hand") else - to_chat(user, "You burn yourself while lighting the lighter.") - if (user.get_left_hand() == src) - user.apply_damage(2,BURN,"l_hand") - else - user.apply_damage(2,BURN,"r_hand") - user.visible_message("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.") + user.apply_damage(2,BURN,"r_hand") + user.visible_message("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.") - set_light(2) + set_light(2, 0.5, "#FF9933") START_PROCESSING(SSobj, src) + update_icon() else lit = 0 - icon_state = "[base_state]" - item_state = "[base_state]" + icon_state = "lighter" playsound(src, deactivation_sound, 75, 1) - if(istype(src, /obj/item/weapon/flame/lighter/zippo) ) - user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing.") - else - user.visible_message("[user] quietly shuts off the [src].") + user.visible_message("[user] quietly shuts off the [src].") set_light(0) STOP_PROCESSING(SSobj, src) + update_icon() return - /obj/item/weapon/flame/lighter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) if(!istype(M, /mob)) return @@ -652,6 +673,45 @@ CIGARETTE PACKETS ARE IN FANCY.DM location.hotspot_expose(700, 5) return +///////// +//ZIPPO// +///////// +/obj/item/weapon/flame/lighter/zippo + name = "\improper Zippo lighter" + desc = "The zippo." + description_fluff = "Still going after all these years." + icon_state = "zippo" + item_state = "zippo" + activation_sound = 'sound/items/zippo_on.ogg' + deactivation_sound = 'sound/items/zippo_off.ogg' + +/obj/item/weapon/flame/lighter/zippo/Initialize() + . = ..() + cut_overlays() //Prevents the Cheap Lighter overlay from appearing on this + +/obj/item/weapon/flame/lighter/zippo/attack_self(mob/living/user) + if(!base_state) + base_state = icon_state + if(!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.") + + set_light(2, 0.5, "#FF9933") + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing.") + + set_light(0) + STOP_PROCESSING(SSobj, src) + return + //Here we add Zippo skins. /obj/item/weapon/flame/lighter/zippo/black @@ -708,4 +768,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/weapon/flame/lighter/zippo/rainbow name = "\improper rainbow Zippo lighter" - icon_state = "rainbowzippo" \ No newline at end of file + icon_state = "rainbowzippo" + +/obj/item/weapon/flame/lighter/zippo/skull + name = "\improper badass Zippo lighter" + desc = "An absolutely badass zippo lighter. Just look at that skull!" + icon_state = "skullzippo" \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm index 05ef9a7428..57a7406c82 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm @@ -74,7 +74,7 @@ to_chat(user, "Circuit controls are locked.") return var/existing_networks = jointext(network,",") - var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera console circuit to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks)) + var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera console circuit to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks)) if(!input) to_chat(usr, "No input found please hang up and try your call again.") return diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm index 1db8b10130..3d0e3d9cd2 100644 --- a/code/game/objects/items/weapons/circuitboards/frame.dm +++ b/code/game/objects/items/weapons/circuitboards/frame.dm @@ -183,7 +183,7 @@ // origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 4) //CHOMPedit Balance req_components = list( - /obj/item/weapon/ore/bluespace_crystal = 2, + /obj/item/weapon/bluespace_crystal = 2, /obj/item/weapon/stock_parts/capacitor = 2, /obj/item/weapon/stock_parts/scanning_module = 2, /obj/item/weapon/stock_parts/micro_laser =2, diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index c825a108ae..ca88e3a9b9 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -122,7 +122,7 @@ /obj/item/weapon/implanter/sizecontrol name = "size control implant" desc = "Implant which allows to control host size via voice commands." - description_info = {"Only accessable by those who implanted the victim. Self-implanting allows everyone to change host size. The following special commands are available: + description_info = {"Only accessible by those who implanted the victim. Self-implanting allows everyone to change host size. The following special commands are available: 'Shrink' - host size decreases. 'Grow' - host size increases. 'Resize (NUMBER)' - for accurate size control. @@ -141,10 +141,10 @@ ////////////////////////////// /obj/item/weapon/implanter/compliance name = "compliance implant" - desc = "Implant which allows for implanting 'laws' or 'commands' in the host. Has a minature keyboard for typing laws into." + desc = "Implant which allows for implanting 'laws' or 'commands' in the host. Has a miniature keyboard for typing laws into." description_info = {"An implant that allows for a 'law' or 'command' to be uploaded in the implanted host. In un-modified organics, this is performed through manipulation of the nervous system and release of chemicals to ensure continued compliance. -In synthetics or modified organics, this implant uploads a virus to any compatable hardware. +In synthetics or modified organics, this implant uploads a virus to any compatible hardware. Due to the small chemical capacity of the implant, the life of the implant is relatively small, wearing off within 24 hours or sooner."} description_fluff = "Due to the illegality of these types of implants, they are often made in clandestine facilities with a complete lack of quality control \ diff --git a/code/game/objects/items/weapons/picnic_blankets.dm b/code/game/objects/items/weapons/picnic_blankets.dm index a5da986015..ab76b8efa7 100644 --- a/code/game/objects/items/weapons/picnic_blankets.dm +++ b/code/game/objects/items/weapons/picnic_blankets.dm @@ -33,6 +33,7 @@ var/blanket_type = CENTER layer = HIDING_LAYER - 0.01 //Stuff shouldn't be able to hide under the blanket on the ground var/list/attached_blankets = list() + anchored = TRUE /obj/structure/picnic_blanket_deployed/verb/fold_up() set name = "Fold up" diff --git a/code/game/objects/items/weapons/storage/belt_vr.dm b/code/game/objects/items/weapons/storage/belt_vr.dm index e88d8fa420..08a096c881 100644 --- a/code/game/objects/items/weapons/storage/belt_vr.dm +++ b/code/game/objects/items/weapons/storage/belt_vr.dm @@ -59,7 +59,7 @@ desc = "A deluxe belt with many pouches. It can hold a very wide variety of items, but less items overall than a dedicated belt. Still, it's useful for any explorer who wants to be prepared for anything they might find." icon = 'icons/inventory/belt/item_vr.dmi' icon_state = "pathfinder_belt" - item_state = "explorer_belt" + item_state = "pathfinder_belt" storage_slots = 7 //two more, bringing it on par with normal belts max_storage_space = ITEMSIZE_COST_NORMAL * 7 @@ -158,6 +158,7 @@ name = "hydroponics belt" desc = "A belt used to hold most hydroponics supplies. Suprisingly, not green." icon = 'icons/inventory/belt/item_vr.dmi' + icon_override = 'icons/inventory/belt/mob_vr.dmi' icon_state = "plantbelt" item_state = "plantbelt" storage_slots = 5 diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index 20fe500575..6352f4ff9e 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -50,7 +50,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list( var/image/bible_image = image(icon = 'icons/obj/storage.dmi', icon_state = GLOB.biblestates[i]) skins += list("[GLOB.biblenames[i]]" = bible_image) - var/choice = show_radial_menu(user, src, skins, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 40, require_near = TRUE) + var/choice = show_radial_menu(user, src, skins, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 40, require_near = TRUE) if(!choice) return FALSE var/bible_index = GLOB.biblenames.Find(choice) @@ -112,4 +112,4 @@ GLOBAL_LIST_INIT(bibleitemstates, list( /obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob) if (src.use_sound) playsound(src, src.use_sound, 50, 1, -5) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index b18180c352..639bd175a4 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -385,16 +385,18 @@ /obj/item/weapon/storage/fancy/cigar name = "cigar case" desc = "A case for holding your cigars when you are not smoking them." - description_fluff = "The tastefully engraved palm tree tells you that these 'Palma Grande' premium cigars are only sold on the luxury cruises and resorts of Oasis, though ten separate companies produce them for that purpose galaxy-wide. The standard is however very high." + description_fluff = "The tasteful stained palm case tells you that these 'Palma Grande' premium \ + cigars are only sold on the luxury cruises and resorts of Oasis, though ten separate companies \ + produce them for that purpose galaxy-wide. The standard is however very high." icon_state = "cigarcase" icon = 'icons/obj/cigarettes.dmi' w_class = ITEMSIZE_TINY throwforce = 2 slot_flags = SLOT_BELT - storage_slots = 7 + storage_slots = 5 can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar, /obj/item/trash/cigbutt/cigarbutt) icon_type = "cigar" - starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 8) + starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 5) /obj/item/weapon/storage/fancy/cigar/Initialize() . = ..() @@ -419,7 +421,7 @@ if(open) icon_state = open_state if(contents.len >= 1) - add_overlay("cigarcase[contents.len]") + add_overlay("[initial(icon_state)][contents.len]") else icon_state = closed_state @@ -435,6 +437,27 @@ update_icon() ..() +/obj/item/weapon/storage/fancy/cigar/choiba + name = "/improper Choiba cigar case" + desc = "A fancy case for holding your cigars when you are not smoking them." + description_fluff = "The exquisite wooden case bears the markings of the \ + Choiba cigar company based out of Cuba. The perfectly humidized case keeps \ + the companies signature Cigars in premium condidtion even when traveling \ + long distances within a vacuume. The custom case itself can sell for quite \ + a lot in some places." + icon_state = "cohibacase" + icon = 'icons/obj/cigarettes.dmi' + icon_type = "cigar" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba = 5) + +/obj/item/weapon/storage/fancy/cigar/havana + name = "\improper Havana cigar case" + desc = "A fancy case for holding your cigars when you are not smoking them." + icon_state = "havanacase" + icon = 'icons/obj/cigarettes.dmi' + icon_type = "cigar" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar/havana = 5) + /* * Tobacco Bits */ diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 324fb93dd8..198eeda966 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -128,7 +128,7 @@ /obj/item/weapon/storage/box/syndie_kit/imp_aug/sprinter case_type = /obj/item/weapon/implantcase/sprinter - + /obj/item/weapon/storage/box/syndie_kit/imp_aug/armblade case_type = /obj/item/weapon/implantcase/armblade @@ -146,7 +146,7 @@ /obj/item/weapon/storage/box/syndie_kit/chameleon name = "chameleon kit" - desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately." + desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold separately." starts_with = list( /obj/item/weapon/storage/backpack/chameleon/full, /obj/item/weapon/gun/energy/chameleon diff --git a/code/game/objects/items/weapons/tools/wirecutters.dm b/code/game/objects/items/weapons/tools/wirecutters.dm index 84fb15e70e..035cb2300c 100644 --- a/code/game/objects/items/weapons/tools/wirecutters.dm +++ b/code/game/objects/items/weapons/tools/wirecutters.dm @@ -58,10 +58,10 @@ ..() /datum/category_item/catalogue/anomalous/precursor_a/alien_wirecutters - name = "Precursor Alpha Object - Wire Seperator" + name = "Precursor Alpha Object - Wire Separator" desc = "An object appearing to have a tool shape. It has two handles, and two \ sides which are attached to each other in the center. At the end on each side \ - is a sharp cutting edge, made from a seperate material than the rest of the \ + is a sharp cutting edge, made from a separate material than the rest of the \ tool.\

\ This tool appears to serve the same purpose as conventional wirecutters, due \ diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm index c6c2ec106b..ecd7468d13 100644 --- a/code/game/objects/random/misc_vr.dm +++ b/code/game/objects/random/misc_vr.dm @@ -189,7 +189,7 @@ prob(1);/obj/random/thermalponcho, prob(5);/obj/random/contraband, prob(5);/obj/random/cargopod, - prob(1);/obj/item/weapon/flame/lighter/random, + prob(1);/obj/item/weapon/flame/lighter, prob(1);/obj/item/weapon/storage/wallet/random, prob(1);/obj/random/cutout) diff --git a/code/game/objects/structures/crates_lockers/__closets.dm b/code/game/objects/structures/crates_lockers/__closets.dm index cf196ddf0a..05661ccedb 100644 --- a/code/game/objects/structures/crates_lockers/__closets.dm +++ b/code/game/objects/structures/crates_lockers/__closets.dm @@ -526,7 +526,7 @@ animate(door_obj, transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag, flags = ANIMATION_END_NOW) else animate(transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag) - addtimer(CALLBACK(src, .proc/end_door_animation,closing), closet_appearance.door_anim_time, TIMER_UNIQUE|TIMER_OVERRIDE) + addtimer(CALLBACK(src, PROC_REF(end_door_animation), closing), closet_appearance.door_anim_time, TIMER_UNIQUE|TIMER_OVERRIDE) /obj/structure/closet/proc/end_door_animation(closing = FALSE) is_animating_door = FALSE diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 66695f3511..c94683a260 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -10,8 +10,8 @@ /obj/item/weapon/reagent_containers/food/condiment/spacespice = 2 ) - open_sound = 'sound/machines/click.ogg' - close_sound = 'sound/machines/click.ogg' + open_sound = 'sound/machines/kitchen/fridge/open_fridge.ogg' // CHOMPEdit: Fridge sounds~ + close_sound = 'sound/machines/kitchen/fridge/close_fridge.ogg' // CHOMPEdit: Fridge sounds~ /obj/structure/closet/secure_closet/freezer/kitchen/mining req_access = list() @@ -22,6 +22,9 @@ icon = 'icons/obj/closets/fridge.dmi' closet_appearance = null + open_sound = 'sound/machines/kitchen/fridge/open_fridge.ogg' // CHOMPEdit: Fridge sounds~ + close_sound = 'sound/machines/kitchen/fridge/close_fridge.ogg' // CHOMPEdit: Fridge sounds~ + starts_with = list( /obj/item/weapon/reagent_containers/food/snacks/meat/monkey = 10) @@ -31,6 +34,9 @@ icon = 'icons/obj/closets/fridge.dmi' closet_appearance = null + open_sound = 'sound/machines/kitchen/fridge/open_fridge.ogg' // CHOMPEdit: Fridge sounds~ + close_sound = 'sound/machines/kitchen/fridge/close_fridge.ogg' // CHOMPEdit: Fridge sounds~ + starts_with = list( /obj/item/weapon/reagent_containers/food/drinks/milk = 6, /obj/item/weapon/reagent_containers/food/drinks/soymilk = 4, diff --git a/code/game/objects/structures/ghost_pods/ghost_pods.dm b/code/game/objects/structures/ghost_pods/ghost_pods.dm index 6c856ceb7f..5a5ed5db2f 100644 --- a/code/game/objects/structures/ghost_pods/ghost_pods.dm +++ b/code/game/objects/structures/ghost_pods/ghost_pods.dm @@ -73,13 +73,13 @@ /obj/structure/ghost_pod/automatic/Initialize() . = ..() - addtimer(CALLBACK(src, .proc/trigger), delay_to_self_open) + addtimer(CALLBACK(src, PROC_REF(trigger)), delay_to_self_open) /obj/structure/ghost_pod/automatic/trigger() . = ..() if(. == FALSE) // If we failed to get a volunteer, try again later if allowed to. if(delay_to_try_again) - addtimer(CALLBACK(src, .proc/trigger), delay_to_try_again) + addtimer(CALLBACK(src, PROC_REF(trigger)), delay_to_try_again) // This type is triggered by a ghost clicking on it, as opposed to a living player. A ghost query type isn't needed. /obj/structure/ghost_pod/ghost_activated diff --git a/code/game/objects/structures/props/blackbox.dm b/code/game/objects/structures/props/blackbox.dm index 5581d2cc52..7aedb3ff0c 100644 --- a/code/game/objects/structures/props/blackbox.dm +++ b/code/game/objects/structures/props/blackbox.dm @@ -34,7 +34,7 @@ Captain Willis 06:13:15: (Expletives), I'm turning us around. Put out a distress call to Control, we'll be back in Sif orbit in a couple of minutes.
**
- V.I.S Traffic Control 06:15:49: MBT-540 we are recieving you. Your atmospheric sensors are reading potentially harmful toxins in your cargo bay. Advise locking down interior cargo bay doors. Please stand by.
+ V.I.S Traffic Control 06:15:49: MBT-540 we are receiving you. Your atmospheric sensors are reading potentially harmful toxins in your cargo bay. Advise locking down interior cargo bay doors. Please stand by.
Captain Adisu 06:16:10: Understood.
**
V.I.S Traffic Control 06:27:02: MBT-540, we have no docking bays available at this time, are you equipped for atmospheric re-entry?
Captain Willis 06:27:12: We-We are shielded. But we have fuel and air for-
V.I.S Traffic Control 06:27:17: Please make an emergency landing at the coordinates provided and standby for further information.
@@ -172,7 +172,7 @@ END LOG

CATALOGUER VOICE RECOGNITION RESULTS:
- No match found for either speaker, but contextual clues and use of Old Earth russian (\'brat\', approximately \'brother\' or \'pal\') suggests out-of-sector criminal elements. + No match found for either speaker, but contextual clues and use of Old Earth Russian (\'brat\', approximately \'brother\' or \'pal\') suggests out-of-sector criminal elements. "} /obj/structure/prop/blackbox/gecko_wreck diff --git a/code/game/objects/structures/salvageable.dm b/code/game/objects/structures/salvageable.dm index 95dd89161c..7153dbca4d 100644 --- a/code/game/objects/structures/salvageable.dm +++ b/code/game/objects/structures/salvageable.dm @@ -1,5 +1,5 @@ /obj/structure/salvageable - name = "broken macninery" + name = "broken machinery" desc = "Broken beyond repair, but looks like you can still salvage something from this if you had a prying implement." icon = 'icons/obj/salvageable.dmi' density = TRUE @@ -400,3 +400,29 @@ /obj/item/weapon/computer_hardware/card_slot = 40, /obj/item/weapon/computer_hardware/network_card/advanced = 40 ) + +/obj/structure/salvageable/slotmachine1 + name = "broken slot machine" + icon_state = "slot1" + salvageable_parts = list( + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/weapon/stock_parts/console_screen = 90, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/network_card/advanced = 40 + ) + +/obj/structure/salvageable/slotmachine2 + name = "broken slot machine" + icon_state = "slot2" + salvageable_parts = list( + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/weapon/stock_parts/console_screen = 90, + /obj/item/stack/cable_coil{amount = 5} = 90, + /obj/item/stack/material/glass{amount = 5} = 90, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/stock_parts/capacitor = 60, + /obj/item/weapon/computer_hardware/network_card/advanced = 40 + ) diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index 99f2626aa8..67715dfbe1 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -1853,7 +1853,7 @@ /obj/structure/sign/flag/fivearrows name = "Five Arrows flag" desc = "The red flag of the Five Arrows." - description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to percieved \ + description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to perceived \ failures in aiding the Sagittarius Heights during the Skathari Incursion. The success of the government in achieving effective local defense and prosperity has \ since attracted the membership of Kauq'xum, a remote Skrellian colony. \The Five Arrows formed the model for SolGov's own semi-autonomous \"Regional Blocs\"." icon_state = "fivearrows" @@ -1868,7 +1868,7 @@ /obj/item/flag/fivearrows name = "Five Arrows flag" desc = "The red flag of the Five Arrows." - description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to percieved \ + description_fluff = "The Five Arrows is an independent government entity that seceded from the Solar Confederate Government in 2570, in response to perceived \ failures in aiding the Sagittarius Heights during the Skathari Incursion. The success of the government in achieving effective local defense and prosperity has \ since attracted the membership of Kauq'xum, a remote Skrellian colony. \The Five Arrows formed the model for SolGov's own semi-autonomous \"Regional Blocs\"." flag_path = "fivearrows" diff --git a/code/game/objects/structures/signs_vr.dm b/code/game/objects/structures/signs_vr.dm index d786560142..f939037160 100644 --- a/code/game/objects/structures/signs_vr.dm +++ b/code/game/objects/structures/signs_vr.dm @@ -8,4 +8,58 @@ name = "decorative fire axe cabinet" desc = "A fancy decorative indent in the wall, with an axe inside. The axe is actually a part of the indent and cannot be removed. A nostalgic reminder of older times of firefighting." icon_state = "fireaxe1000" - icon = 'icons/obj/closet.dmi' \ No newline at end of file + icon = 'icons/obj/closet.dmi' + +//Small Signs for detailing +/obj/structure/sign/small/fire/small + icon = 'icons/obj/decals.dmi' + name = "\improper DANGER: FIRE" + desc = "A warning sign which reads 'DANGER: FIRE'." + icon_state = "fire_small" + +/obj/structure/sign/small/nosmoking + name = "\improper NO SMOKING" + desc = "A warning sign which reads 'NO SMOKING'." + icon_state = "nosmoking_small" + +/obj/structure/sign/small/nosmoking + name = "\improper DESIGNATED SMOKING AREA" + desc = "A warning sign which reads 'DESIGNATED SMOKING AREA'." + icon_state = "smoking_small" + +/obj/structure/sign/small/warning + name = "\improper WARNING" + desc = "" //Null description + icon_state = "warning_small" + +/obj/structure/sign/small/warning/high_voltage + name = "\improper HIGH VOLTAGE" + icon_state = "shock_small" + +/obj/structure/sign/small/warning/radioactive + name = "\improper RADIOACTIVE AREA" + icon_state = "radiation_small" + +/obj/structure/sign/small/warning/caution + name = "\improper CAUTION" + icon_state = "caution_small" + +/obj/structure/sign/small/warning/server_room + name = "\improper SERVER ROOM" + icon_state = "server_small" + +/obj/structure/sign/small/warning/secure_area + name = "\improper SECURE AREA" + icon_state = "securearea_small" + +/obj/structure/sign/small/warning/vacuum + name = "\improper HARD VACUUM AHEAD" + icon_state = "space_small" + +/obj/structure/sign/small/warning/pods + name = "\improper ESCAPE PODS" + icon_state = "pods" + +/obj/structure/sign/small/warning/emerg_only + name = "\improper EMERGENCY USE ONLY" + icon_state = "emerg_small" \ No newline at end of file diff --git a/code/game/socket_talk.dm b/code/game/socket_talk.dm index 8484b636b8..6cad496937 100644 --- a/code/game/socket_talk.dm +++ b/code/game/socket_talk.dm @@ -8,15 +8,15 @@ src.enabled = config.socket_talk if(enabled) - call("DLLSocket.so","establish_connection")("127.0.0.1","8019") + LIBCALL("DLLSocket.so","establish_connection")("127.0.0.1","8019") proc send_raw(message) if(enabled) - return call("DLLSocket.so","send_message")(message) + return LIBCALL("DLLSocket.so","send_message")(message) receive_raw() if(enabled) - return call("DLLSocket.so","recv_message")() + return LIBCALL("DLLSocket.so","recv_message")() send_log(var/log, var/message) return send_raw("type=log&log=[log]&message=[message]") send_keepalive() diff --git a/code/game/turfs/flooring/flooring_decals.dm b/code/game/turfs/flooring/flooring_decals.dm index 7d5a1aa7d5..cf7a64572d 100644 --- a/code/game/turfs/flooring/flooring_decals.dm +++ b/code/game/turfs/flooring/flooring_decals.dm @@ -518,21 +518,23 @@ var/list/floor_decals = list() /obj/effect/floor_decal/spline/plain name = "spline - plain" icon_state = "spline_plain" +/obj/effect/floor_decal/spline/plain/corner + icon_state = "spline_plain_corner" +/obj/effect/floor_decal/spline/plain/cee + icon_state = "spline_plain_cee" +/obj/effect/floor_decal/spline/plain/three_quarters + icon_state = "spline_plain_full" /obj/effect/floor_decal/spline/fancy name = "spline - fancy" icon_state = "spline_fancy" - /obj/effect/floor_decal/spline/fancy/wood name = "spline - wood" color = "#CB9E04" - /obj/effect/floor_decal/spline/fancy/wood/corner icon_state = "spline_fancy_corner" - /obj/effect/floor_decal/spline/fancy/wood/cee icon_state = "spline_fancy_cee" - /obj/effect/floor_decal/spline/fancy/wood/three_quarters icon_state = "spline_fancy_full" @@ -593,6 +595,10 @@ var/list/floor_decals = list() name = "grey outline" color = "#808080" +/obj/effect/floor_decal/industrial/outline/red + name = "red outline" + color = COLOR_RED + /obj/effect/floor_decal/industrial/loading name = "loading area" icon_state = "loadingarea" diff --git a/code/game/turfs/flooring/flooring_decals_vr.dm b/code/game/turfs/flooring/flooring_decals_vr.dm index 80b26db2e5..c751896011 100644 --- a/code/game/turfs/flooring/flooring_decals_vr.dm +++ b/code/game/turfs/flooring/flooring_decals_vr.dm @@ -8,9 +8,6 @@ icon = 'icons/turf/stomach_vr.dmi' icon_state = "c_flesh_floor_edges" -/obj/effect/floor_decal/industrial/outline/red - name = "red outline" - color = COLOR_RED /obj/effect/floor_decal/borderfloor/shifted icon_state = "borderfloor_shifted" @@ -232,3 +229,238 @@ icon_state = "mss_green_corner" /obj/effect/floor_decal/milspec_sterile/green/half icon_state = "mss_green_side" + +//Shuttle Floor Decals +/obj/effect/floor_decal/shuttle + name = "partial outline" + icon_state = "semi_outline" +/obj/effect/floor_decal/shuttle/yellow + color = "#CFCF55" +/obj/effect/floor_decal/shuttle/grey + color = "#545253" +/obj/effect/floor_decal/shuttle/blue + color = "#00B8B2" + +/obj/effect/floor_decal/shuttle/handicap + name = "handicap marker" + icon_state = "handicap" +/obj/effect/floor_decal/shuttle/handicap/yellow + color = "#CFCF55" +/obj/effect/floor_decal/shuttle/handicap/grey + color = "#545253" + +/obj/effect/floor_decal/shuttle/loading + name = "loading/unloading marker" + icon_state = "exit_and_entrance" +/obj/effect/floor_decal/shuttle/loading/yellow + color = "#CFCF55" +/obj/effect/floor_decal/shuttle/loading/grey + color = "#545253" +/obj/effect/floor_decal/shuttle/loading/red + color = "#a70000" + +/obj/effect/floor_decal/shuttle/full_2 + name = "hatched marker" + icon_state = "full_2" +/obj/effect/floor_decal/shuttle/full_2/yellow + color = "#CFCF55" +/obj/effect/floor_decal/shuttle/full_2/grey + color = "#545253" +/obj/effect/floor_decal/shuttle/full_2/blue + color = "#00B8B2" + +//Industrial Floor Decals +/obj/effect/floor_decal/industrial/warning + name = "hazard stripes" + icon_state = "warning" +/obj/effect/floor_decal/industrial/warning/corner + icon_state = "warningcorner" +/obj/effect/floor_decal/industrial/warning/full + icon_state = "warningfull" +/obj/effect/floor_decal/industrial/warning/cee + icon_state = "warningcee" +/obj/effect/floor_decal/industrial/warning/tile + icon_state = "warningtile" + +/obj/effect/floor_decal/industrial/warning/dust + icon_state = "warning_dust" +/obj/effect/floor_decal/industrial/warning/dust/corner + icon_state = "warningcorner_dust" +/obj/effect/floor_decal/industrial/warning/dust/full + icon_state = "warningfull_dust" +/obj/effect/floor_decal/industrial/warning/dust/cee + icon_state = "warningcee_dust" +/obj/effect/floor_decal/industrial/warning/dust/tile + icon_state = "warningtile_dust" + +/obj/effect/floor_decal/industrial/danger + name = "danger stripes" + icon_state = "danger" +/obj/effect/floor_decal/industrial/danger/corner + icon_state = "dangercorner" +/obj/effect/floor_decal/industrial/danger/full + icon_state = "dangerfull" +/obj/effect/floor_decal/industrial/danger/cee + icon_state = "dangercee" + +/obj/effect/floor_decal/industrial/hatch + name = "hatched marking" + icon_state = "delivery" +/obj/effect/floor_decal/industrial/hatch/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/hatch/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/hatch/grey + color = "#545253" +/obj/effect/floor_decal/industrial/hatch/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/rad_floor + name = "radiation marking" + icon_state = "rad_floor" +/obj/effect/floor_decal/industrial/rad_floor/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/rad_floor/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/rad_floor/grey + color = "#545253" +/obj/effect/floor_decal/industrial/rad_floor/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/outline + name = "white outline" + icon_state = "outline" +/obj/effect/floor_decal/industrial/outline/blue + name = "blue outline" + color = "#00B8B2" +/obj/effect/floor_decal/industrial/outline/yellow + name = "yellow outline" + color = "#CFCF55" +/obj/effect/floor_decal/industrial/outline/grey + name = "grey outline" + color = "#545253" +/obj/effect/floor_decal/industrial/outline/red + name = "red outline" + color = "#a70000" + +/obj/effect/floor_decal/industrial/outline/cut_corners + name = "white cut outline" + icon_state = "cut_corners" +/obj/effect/floor_decal/industrial/outline/cut_corners/blue + name = "blue cut outline" + color = "#00B8B2" +/obj/effect/floor_decal/industrial/outline/cut_corners/yellow + name = "yellow cut outline" + color = "#CFCF55" +/obj/effect/floor_decal/industrial/outline/cut_corners/grey + name = "grey cut outline" + color = "#545253" +/obj/effect/floor_decal/industrial/outline/cut_corners/red + name = "red cut outline" + color = "#a70000" + +/obj/effect/floor_decal/industrial/loading + name = "loading area" + icon_state = "loading" + color = "#CFCF55" +/obj/effect/floor_decal/industrial/loading/white + color = null +/obj/effect/floor_decal/industrial/loading/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/loading/grey + color = "#545253" +/obj/effect/floor_decal/industrial/loading/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/arrows + name = "tri-arrows" + icon_state = "tri-arrows" +/obj/effect/floor_decal/industrial/arrows/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/arrows/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/arrows/grey + color = "#545253" +/obj/effect/floor_decal/industrial/arrows/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/caution + name = "caution" + icon_state = "caution" +/obj/effect/floor_decal/industrial/caution/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/caution/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/caution/grey + color = "#545253" +/obj/effect/floor_decal/industrial/caution/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/stand_clear + name = "stand clear" + icon_state = "stand_clear" +/obj/effect/floor_decal/industrial/stand_clear/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/stand_clear/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/stand_clear/grey + color = "#545253" +/obj/effect/floor_decal/industrial/stand_clear/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/bot_outline + name = "bot outline" + icon_state = "bot_outline" +/obj/effect/floor_decal/industrial/bot_outline/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/bot_outline/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/bot_outline/grey + color = "#545253" +/obj/effect/floor_decal/industrial/bot_outline/red + color = "#a70000" + +/obj/effect/floor_decal/industrial/bot_outline/corner + icon_state = "bot_corners" +/obj/effect/floor_decal/industrial/bot_outline/corner/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/bot_outline/corner/blue + color = "#00B8B2" +/obj/effect/floor_decal/industrial/bot_outline/corner/grey + color = "#545253" +/obj/effect/floor_decal/industrial/bot_outline/corner/red + color = "#a70000" + +//Colored Warning Stripes +/obj/effect/floor_decal/industrial/warning/color + icon_state = "warning_color" +/obj/effect/floor_decal/industrial/warning/color/corner + icon_state = "warningcorner_color" +/obj/effect/floor_decal/industrial/warning/color/full + icon_state = "warningfull_color" +/obj/effect/floor_decal/industrial/warning/color/cee + icon_state = "warningcee_color" +/obj/effect/floor_decal/industrial/warning/color/tile + icon_state = "warningtile_color" + +/obj/effect/floor_decal/industrial/warning/color/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/warning/color/corner/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/warning/color/full/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/warning/color/cee/yellow + color = "#CFCF55" +/obj/effect/floor_decal/industrial/warning/color/tile/yellow + color = "#CFCF55" + +/obj/effect/floor_decal/industrial/warning/color/red + color = "#a70000" +/obj/effect/floor_decal/industrial/warning/color/corner/red + color = "#a70000" +/obj/effect/floor_decal/industrial/warning/color/full/red + color = "#a70000" +/obj/effect/floor_decal/industrial/warning/color/cee/red + color = "#a70000" +/obj/effect/floor_decal/industrial/warning/color/tile/red + color = "#a70000" \ No newline at end of file diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 23044a5d8b..ad4a90bf2d 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -17,6 +17,7 @@ var/dirty_prob = 2 // Chance of being dirty roundstart var/dirt = 0 var/special_temperature //Used for turf HE-Pipe interaction + var/climbable = FALSE //Adds proc to wall if set to TRUE on its initialization, defined here since not all walls are subtypes of wall var/icon_edge = 'icons/turf/outdoors_edge.dmi' //VOREStation Addition - Allows for alternative edge icon files @@ -63,6 +64,14 @@ if(istype(loc, /area/chapel)) holy = 1 levelupdate() + if(climbable) + verbs += /turf/simulated/proc/climb_wall + +/turf/simulated/examine(mob/user) + . = ..() + if(climbable) + . += "This [src] looks climbable." + /turf/simulated/proc/AddTracks(var/typepath,var/bloodDNA,var/comingdir,var/goingdir,var/bloodcolor="#A10808") var/obj/effect/decal/cleanable/blood/tracks/tracks = locate(typepath) in src @@ -108,7 +117,7 @@ if(H.shoes) var/obj/item/clothing/shoes/S = H.shoes if(istype(S)) - S.handle_movement(src,(H.m_intent == "run" ? 1 : 0)) + S.handle_movement(src,(H.m_intent == "run" ? 1 : 0), H) // CHOMPEdit handle_movement now needs to know who is moving, for inshoe steppies if(S.track_blood && S.blood_DNA) bloodDNA = S.blood_DNA bloodcolor=S.blood_color diff --git a/code/game/turfs/simulated/angled_walls_and_doors_department_colors.dm b/code/game/turfs/simulated/angled_walls_and_doors_department_colors.dm index 84f762944a..d2ea874a81 100644 --- a/code/game/turfs/simulated/angled_walls_and_doors_department_colors.dm +++ b/code/game/turfs/simulated/angled_walls_and_doors_department_colors.dm @@ -1,57 +1,57 @@ /turf/simulated/wall/bay/steel - desc = "It has a steel stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a steel stripe! A huge chunk of metal used to separate rooms." stripe_color = "#3d5e80" /turf/simulated/wall/bay/red - desc = "It has a red stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a red stripe! A huge chunk of metal used to separate rooms." stripe_color = "#8c1d11" /turf/simulated/wall/bay/brown - desc = "It has a brown stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a brown stripe! A huge chunk of metal used to separate rooms." stripe_color = "#785134" /turf/simulated/wall/bay/purple - desc = "It has a purple stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a purple stripe! A huge chunk of metal used to separate rooms." stripe_color = "#5a19a8" /turf/simulated/wall/bay/blue - desc = "It has a blue stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a blue stripe! A huge chunk of metal used to separate rooms." stripe_color = "#2e2aa1" /turf/simulated/wall/bay/orange - desc = "It has a orange stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a orange stripe! A huge chunk of metal used to separate rooms." stripe_color = "#e6ab22" /turf/simulated/wall/bay/white - desc = "It has a white stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a white stripe! A huge chunk of metal used to separate rooms." stripe_color = "#ffffff" /turf/simulated/wall/bay/black - desc = "It has a black stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a black stripe! A huge chunk of metal used to separate rooms." stripe_color = "#2e2e2e" /turf/simulated/wall/bay/green - desc = "It has a green stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a green stripe! A huge chunk of metal used to separate rooms." stripe_color = "#00ab03" /////R-Wall /turf/simulated/wall/bay/r_wall/steel - desc = "It has a steel stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a steel stripe! A huge chunk of metal used to separate rooms." stripe_color = "#3d5e80" /turf/simulated/wall/bay/r_wall/red - desc = "It has a red stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a red stripe! A huge chunk of metal used to separate rooms." stripe_color = "#8c1d11" /turf/simulated/wall/bay/r_wall/brown - desc = "It has a brown stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a brown stripe! A huge chunk of metal used to separate rooms." stripe_color = "#785134" /turf/simulated/wall/bay/r_wall/purple - desc = "It has a purple stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a purple stripe! A huge chunk of metal used to separate rooms." stripe_color = "#5a19a8" /turf/simulated/wall/bay/r_wall/blue - desc = "It has a blue stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a blue stripe! A huge chunk of metal used to separate rooms." stripe_color = "#2e2aa1" /turf/simulated/wall/bay/r_wall/orange - desc = "It has a orange stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a orange stripe! A huge chunk of metal used to separate rooms." stripe_color = "#e6ab22" /turf/simulated/wall/bay/r_wall/white - desc = "It has a white stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a white stripe! A huge chunk of metal used to separate rooms." stripe_color = "#ffffff" /turf/simulated/wall/bay/r_wall/black - desc = "It has a black stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a black stripe! A huge chunk of metal used to separate rooms." stripe_color = "#2e2e2e" /turf/simulated/wall/bay/r_wall/green - desc = "It has a green stripe! A huge chunk of metal used to seperate rooms." + desc = "It has a green stripe! A huge chunk of metal used to separate rooms." stripe_color = "#00ab03" /////Low wall /obj/structure/low_wall/bay/steel diff --git a/code/game/turfs/simulated/outdoors/atmoscaves_vr.dm b/code/game/turfs/simulated/outdoors/atmoscaves_vr.dm index 8ac5dc08e5..7c96f35143 100644 --- a/code/game/turfs/simulated/outdoors/atmoscaves_vr.dm +++ b/code/game/turfs/simulated/outdoors/atmoscaves_vr.dm @@ -2,11 +2,13 @@ oxygen = MOLES_O2STANDARD nitrogen = MOLES_N2STANDARD temperature = T20C + climbable = TRUE /turf/simulated/mineral/ignore_mapgen/cave oxygen = MOLES_O2STANDARD nitrogen = MOLES_N2STANDARD temperature = T20C + climbable = TRUE /turf/simulated/mineral/floor/cave oxygen = MOLES_O2STANDARD diff --git a/code/game/turfs/simulated/wall_types_vr.dm b/code/game/turfs/simulated/wall_types_vr.dm index 6793cba759..fe8e5d4927 100644 --- a/code/game/turfs/simulated/wall_types_vr.dm +++ b/code/game/turfs/simulated/wall_types_vr.dm @@ -212,6 +212,7 @@ var/list/flesh_overlay_cache = list() /turf/simulated/wall/solidrock icon_state = "solidrock" icon = 'icons/turf/wall_masks_vr.dmi' + climbable = TRUE /turf/simulated/wall/titanium icon_state = "titanium" diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index e90a758eed..0c34354acc 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -1,6 +1,6 @@ /turf/simulated/wall name = "wall" - desc = "A huge chunk of metal used to seperate rooms." + desc = "A huge chunk of metal used to separate rooms." icon = 'icons/turf/wall_masks.dmi' icon_state = "generic" opacity = 1 diff --git a/code/game/turfs/simulated_vr.dm b/code/game/turfs/simulated_vr.dm index 6c7325305f..dc74fd9aba 100644 --- a/code/game/turfs/simulated_vr.dm +++ b/code/game/turfs/simulated_vr.dm @@ -1,5 +1,15 @@ /turf/simulated can_start_dirty = FALSE // We have enough premapped dirt where needed + + /turf/simulated/floor/plating - can_start_dirty = TRUE // But let maints and decrepit areas have some randomness \ No newline at end of file + can_start_dirty = TRUE // But let maints and decrepit areas have some randomness + + +/turf/simulated/proc/toggle_climbability() //Again, b + if(climbable) + verbs -= /turf/simulated/proc/climb_wall + else + verbs += /turf/simulated/proc/climb_wall + climbable = !climbable diff --git a/code/game/world.dm b/code/game/world.dm index c61c58ec9e..5d2f9686f2 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -535,6 +535,24 @@ var/world_topic_spam_protect_time = world.timeofday var/ckey = copytext(line, 1, length(line)+1) var/datum/mentor/M = new /datum/mentor(ckey) M.associate(GLOB.directory[ckey]) + else // CHOMPedit Start - Implementing loading mentors from database + establish_db_connection() + if(!SSdbcore.IsConnected()) + error("Failed to connect to database in load_mentors().") + log_misc("Failed to connect to database in load_mentors().") + return + + var/DBQuery/query = SSdbcore.NewQuery("SELECT ckey, mentor FROM erro_mentor") //CHOMPEdit TGSQL + query.Execute() + while(query.NextRow()) + var/ckey = query.item[1] + var/mentor = query.item[2] + + if(mentor) + var/datum/mentor/M = new /datum/mentor(ckey) + M.associate(GLOB.directory[ckey]) + qdel(query) + // COMPedit End /world/proc/update_status() var/s = "" diff --git a/code/hub.dm b/code/hub.dm deleted file mode 100644 index 93c5b7323e..0000000000 --- a/code/hub.dm +++ /dev/null @@ -1,18 +0,0 @@ -/world - - hub = "Exadv1.spacestation13" - //CHOMPEdit: Accidentally committed this to master instead of pull request. Adding comment to make a pull request. Also to note that I have changed the password so we won't appear on the HUB regardless of TGS3. - hub_password = "null" - name = "Space Station 13" - /*YW EDIT we want to be on the hub - name = "VOREStation" //VOREStation Edit - visibility = 0 //VOREStation Edit - */ -/* This is for any host that would like their server to appear on the main SS13 hub. -To use it, simply replace the password above, with the password found below, and it should work. -If not, let us know on the main tgstation IRC channel of irc.rizon.net #tgstation13 we can help you there. - - hub = "Exadv1.spacestation13" - hub_password = "kMZy3U5jJHSiBQjr" - name = "Space Station 13" -*/ diff --git a/code/modules/admin/admin_report.dm b/code/modules/admin/admin_report.dm index 33339429cf..e0c38345e5 100644 --- a/code/modules/admin/admin_report.dm +++ b/code/modules/admin/admin_report.dm @@ -105,7 +105,7 @@ world/New() continue output += "Reported player: [N.offender_key](CID: [N.offender_cid])
" output += "Offense:[N.body]
" - output += "Occured at [time2text(N.date,"MM/DD hh:mm:ss")]
" + output += "Occurred at [time2text(N.date,"MM/DD hh:mm:ss")]
" output += "authored by [N.author]
" output += " Flag as Handled" if(src.key == N.author) @@ -150,7 +150,7 @@ world/New() if(N.ID == ID) found = N if(!found) - to_chat(src, "* An error occured, sorry.") + to_chat(src, "* An error occurred, sorry.") found.done = 1 @@ -172,7 +172,7 @@ world/New() if(N.ID == ID) found = N if(!found) - to_chat(src, "* An error occured, sorry.") + to_chat(src, "* An error occurred, sorry.") var/body = tgui_input_text(src.mob, "Enter a body for the news", "Body", multiline = TRUE, prevent_enter = TRUE) if(!body) return diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index 24f27f3761..6bb4ee1b4b 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -171,7 +171,9 @@ var/list/admin_verbs_fun = list( /client/proc/add_mob_for_narration, //VOREStation Add /client/proc/remove_mob_for_narration, //VOREStation Add /client/proc/narrate_mob, //VOREStation Add - /client/proc/narrate_mob_args //VOREStation Add + /client/proc/narrate_mob_args, //VOREStation Add + /client/proc/getPlayerStatus //VORESTation Add + ) var/list/admin_verbs_spawn = list( @@ -187,7 +189,8 @@ var/list/admin_verbs_spawn = list( /client/proc/spawn_chemdisp_cartridge, /client/proc/map_template_load, /client/proc/map_template_upload, - /client/proc/map_template_load_on_new_z + /client/proc/map_template_load_on_new_z, + /client/proc/eventkit_open_mob_spawner //VOREStation Add ) var/list/admin_verbs_server = list( diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index b1702a2c4a..b6f16a5090 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -29,19 +29,22 @@ check_antagonists() return - if(href_list["ahelp"]) + // CHOMPedit Start - Tickets System + if(href_list["ticket"]) if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT)) return - var/ahelp_ref = href_list["ahelp"] - var/datum/admin_help/AH = locate(ahelp_ref) - if(AH) - AH.Action(href_list["ahelp_action"]) + var/ticket_ref = href_list["ticket"] + var/datum/ticket/T = locate(ticket_ref) + if(T) + T.Action(href_list["ticket_action"]) else - to_chat(usr, "Ticket [ahelp_ref] has been deleted!") + to_chat(usr, "Ticket [ticket_ref] has been deleted!") - else if(href_list["ahelp_tickets"]) - GLOB.ahelp_tickets.BrowseTickets(text2num(href_list["ahelp_tickets"])) + else if(href_list["tickets"]) + GLOB.tickets.BrowseTickets(text2num(href_list["tickets"])) + + // CHOMPedit End mentor_commands(href, href_list, src) @@ -166,7 +169,7 @@ if(admin_ranks.len) new_rank = tgui_input_list(usr, "Please select a rank", "New rank", (admin_ranks|"*New Rank*")) else - new_rank = tgui_input_list(usr, "Please select a rank", "New rank", list("Game Master","Head Admin","Game Admin", "Trial Admin", "Admin Observer","Moderator","Mentor","Badmin","Retired Admin","Event Manager","Developer","DevMod","*New Rank*")) //CHOMP Edit bandaid fix to assigning titles because we're having some funky database issues, I think. Other option is to manually edit database entry for someone's title. + new_rank = tgui_input_list(usr, "Please select a rank", "New rank", list("Game Master","Head Admin","Game Admin", "Trial Admin", "Admin Observer","Moderator","Mentor","Badmin","Retired Admin","Event Manager","Developer","DevMod","*New Rank*")) //CHOMP Edit bandaid fix to assigning titles because we're having some funky database issues, I think. Other option is to manually edit database entry for someone's title. var/rights = 0 if(D) @@ -935,10 +938,12 @@ to_chat(M, "No ban appeals URL has been set.") log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.") - var/datum/admin_help/AH = M.client ? M.client.current_ticket : null - if(AH) - AH.Resolve() + // CHOMPedit Start - Tickets System + var/datum/ticket/T = M.client ? M.client.current_ticket : null + if(T) + T.Resolve() qdel(M.client) + // CHOMPedit End //qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends. if("No") if(!check_rights(R_BAN)) return @@ -963,9 +968,11 @@ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.") feedback_inc("ban_perma",1) DB_ban_record(BANTYPE_PERMA, M, -1, reason) - var/datum/admin_help/AH = M.client ? M.client.current_ticket : null - if(AH) - AH.Resolve() + // CHOMPedit Start - Tickets System + var/datum/ticket/T = M.client ? M.client.current_ticket : null + if(T) + T.Resolve() + // CHOMPedit End qdel(M.client) //qdel(M) if("Cancel") diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index baba14563c..fe64b97346 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -445,7 +445,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null ENABLE_BITFIELD(options, SDQL2_OPTION_DO_NOT_AUTOGC) /datum/SDQL2_query/proc/ARun() - INVOKE_ASYNC(src, .proc/Run) + INVOKE_ASYNC(src, PROC_REF(Run)) /datum/SDQL2_query/proc/Run() if(SDQL2_IS_RUNNING) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 7c8dd0bc6b..634d6d4a64 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -1,3 +1,10 @@ +/* + +CHOMPedit - This file has been excluded from the compilation. +Reason: Replaced with "Tickets System". Main logic has been moved to: modular_chomp/modules/tickets/tickets.dm + +*/ + /client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with //CHOMPEdit Begin diff --git a/code/modules/admin/verbs/adminhelp_vr.dm b/code/modules/admin/verbs/adminhelp_vr.dm index d6bdb37f21..5c55732d0e 100644 --- a/code/modules/admin/verbs/adminhelp_vr.dm +++ b/code/modules/admin/verbs/adminhelp_vr.dm @@ -1,3 +1,10 @@ +/* + +CHOMPedit - This file has been excluded from the compilation. +Reason: Replaced with "Tickets System" + +*/ + /datum/admin_help/proc/send2adminchat() if(!config.chat_webhook_url) return diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index f093baa1da..9283afbc7b 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -53,19 +53,19 @@ to_chat(src, "Error: Admin-PM: Client not found.") return - var/datum/admin_help/AH = C.current_ticket + var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System - if(AH) + if(T) // CHOMPedit - Ticket System message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.") var/msg = tgui_input_text(src,"Message:", "Private message to [key_name(C, 0, 0)]") if (!msg) message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.") return - cmd_admin_pm(whom, msg, AH) + cmd_admin_pm(whom, msg, T) // CHOMPedit - Ticket System //takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM. //Fetching a message if needed. src is the sender and C is the target client -/client/proc/cmd_admin_pm(whom, msg, datum/admin_help/AH) +/client/proc/cmd_admin_pm(whom, msg, datum/ticket/T) // CHOMPedit - Ticket System if(prefs.muted & MUTE_ADMINHELP) to_chat(src, "Error: Admin-PM: You are unable to use admin PM-s (muted).") return @@ -171,7 +171,7 @@ else if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT if(!recipient.current_ticket) - new /datum/admin_help(msg, recipient, TRUE) + new /datum/ticket(msg, recipient, TRUE, 0) // CHOMPedit - Ticket System to_chat(recipient, "-- Administrator private message --") to_chat(recipient, "Admin PM from-[key_name(src, recipient, 0)]: [msg]") @@ -214,7 +214,7 @@ /proc/IrcPm(target,msg,sender) var/client/C = GLOB.directory[target] - var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target) + var/datum/ticket/ticket = C ? C.current_ticket : GLOB.tickets.CKey2ActiveTicket(target) // CHOMPedit - Ticket System var/compliant_msg = trim(lowertext(msg)) var/irc_tagged = "[sender](IRC)" var/list/splits = splittext(compliant_msg, " ") diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 0a80c9bc77..4a06c79f26 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -158,14 +158,16 @@ Left Mouse Button on AI mob = Select/Deselect mob
\ Left Mouse Button + alt on AI mob = Toggle hostility on mob
\ Left Mouse Button + shift on AI mob = Toggle AI (also resets)
\ - Left Mouse Button + ctrl on AI mob = Copy mob faction
\ + Left Mouse Button + ctrl on AI mob = Copy mob faction
\ + Middle Mouse Button + shift on any = Set selected mob(s) to wander
\ + Middle Mouse Button + shift on any = Set selected mob(s) to NOT wander
\ Right Mouse Button + ctrl on any mob = Paste mob faction copied with Left Mouse Button + shift
\ Right Mouse Button on enemy mob = Command selected mobs to attack mob
\ Right Mouse Button on allied mob = Command selected mobs to follow mob
\ Right Mouse Button + shift on any mob = Command selected mobs to follow mob regardless of faction
\ Note: The following also reset the mob's home position:
\ Right Mouse Button on tile = Command selected mobs to move to tile (will cancel if enemies are seen)
\ - Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be inturrupted by enemies)
\ + Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be interrupted by enemies)
\ Right Mouse Button + alt on obj/turfs = Command selected mobs to attack obj/turf
\ ***********************************************************") return 1 @@ -546,6 +548,18 @@ CHOMP Remove end */ for(var/mob/living/unit in holder.selected_mobs) holder.deselect_AI_mob(user.client, unit) + if(pa.Find("middle")) + if(pa.Find("shift")) + to_chat(user, SPAN_NOTICE("All selected mobs set to wander")) + for(var/mob/living/unit in holder.selected_mobs) + var/datum/ai_holder/AI = unit.ai_holder + AI.wander = TRUE + if(pa.Find("ctrl")) + to_chat(user, SPAN_NOTICE("Setting mobs set to NOT wander")) + for(var/mob/living/unit in holder.selected_mobs) + var/datum/ai_holder/AI = unit.ai_holder + AI.wander = FALSE + if(pa.Find("right")) // Paste faction diff --git a/code/modules/admin/verbs/entity_narrate.dm b/code/modules/admin/verbs/entity_narrate.dm index 20926803f5..a33d14fbf7 100644 --- a/code/modules/admin/verbs/entity_narrate.dm +++ b/code/modules/admin/verbs/entity_narrate.dm @@ -7,6 +7,20 @@ var/list/entity_refs = list() + //TGUI Helper Vars + var/tgui_id = "EntityNarrate" + var/tgui_selection_mode = 0 //0 for single entity, 1 for multi entity + var/tgui_selected_name = "" //String for single selection in-game name + var/tgui_selected_type = "" //String for single selection type + var/tgui_selected_id = "" //String to retrieve ref from entity_refs + var/tgui_selected_refs //object references + var/list/tgui_selected_id_multi = list() //List of strings containing mob ids for multi selection + var/tgui_narrate_mode = 0 //0 for speak, 1 for emote + var/tgui_narrate_privacy = 0 //0 for loud, 1 for subtle + var/tgui_last_message = 0 // int to avoid spam + + + //Appears as a right click verb on any obj and mob within view range. //when not right clicking we get a list to pick from in aforementioned view range. @@ -32,11 +46,16 @@ if(istype(E, /mob/living)) var/mob/living/L = E if(L.client) - to_chat(usr, "You may not speak for players!") - log_and_message_admins("attempted to speak for [L.ckey]'s mob", usr) + to_chat(usr, SPAN_NOTICE("[L.name] is a player. All attempts to speak through them \ + gets logged in case of abuse.")) + log_and_message_admins("has added [L.ckey]'s mob to their entity narrate list", usr) return var/unique_name = sanitize(tgui_input_text(usr, "Please give the entity a unique name to track internally. \ This doesn't override how it appears in game", "tracker", L.name)) + if(unique_name in holder.entity_names) + to_chat(usr, SPAN_NOTICE("[unique_name] is not unique! Pick another!")) + add_mob_for_narration(L) //Recursively calling ourselves until cancelled or a unique name is given. + return holder.entity_names += unique_name holder.entity_refs[unique_name] = L log_and_message_admins("added [L.name] for their personal list to narrate", usr) //Logging here to avoid spam, while still safeguarding abuse @@ -46,6 +65,10 @@ var/atom/A = E var/unique_name = sanitize(tgui_input_text(usr, "Please give the entity a unique name to track internally. \ This doesn't override how it appears in game", "tracker", A.name)) + if(unique_name in holder.entity_names) + to_chat(usr, SPAN_NOTICE("[unique_name] is not unique! Pick another!")) + add_mob_for_narration(A) + return holder.entity_names += unique_name holder.entity_refs[unique_name] = A log_and_message_admins("added [A.name] for their personal list to narrate", usr) //Logging here to avoid spam, while still safeguarding abuse @@ -98,13 +121,18 @@ //Obtaining and sanitizing arguments for the actual proc - var/which_entity = tgui_input_list(usr, "Choose which mob to narrate", "Narrate mob", holder.entity_names, null) + var/choices = holder.entity_names + "Open TGUI" + var/which_entity = tgui_input_list(usr, "Choose which mob to narrate", "Narrate mob", choices, null) if(!which_entity) return - var/mode = tgui_alert(usr, "Speak or emote?", "mode", list("Speak", "Emote", "Cancel")) - if(mode == "Cancel") return - var/message = sanitize(tgui_input_text(usr, "Input what you want [which_entity] to say or do", "narrate", null, multiline = TRUE, prevent_enter = TRUE)) - if(message) - narrate_mob_args(which_entity, mode, message) + if(which_entity == "Open TGUI") + holder.tgui_interact(usr) + else + var/mode = tgui_alert(usr, "Speak or emote?", "mode", list("Speak", "Emote", "Cancel")) + if(mode == "Cancel") return + var/message = tgui_input_text(usr, "Input what you want [which_entity] to [mode]", "narrate", + null, multiline = TRUE, prevent_enter = TRUE) + if(message) + narrate_mob_args(which_entity, mode, message) //The actual logic of the verb. Called by narrate_mob() when used. /client/proc/narrate_mob_args(name as text, mode as text, message as text) @@ -127,8 +155,6 @@ //Sanitizing args name = sanitize(name) mode = sanitize(mode) - if(message) - message = sanitize(message) if(!(mode in list("Speak", "Emote"))) to_chat(usr, SPAN_NOTICE("Valid modes are 'Speak' and 'Emote'.")) @@ -141,11 +167,9 @@ if(istype(holder.entity_refs[name], /mob/living)) var/mob/living/our_entity = holder.entity_refs[name] if(our_entity.client) //Making sure we can't speak for players - to_chat(usr, SPAN_NOTICE("Cannot narrate mobs with active clients!")) - log_and_message_admins("attempted to speak for [our_entity.ckey]'s mob", usr) - return + log_and_message_admins("used entity-narrate to speak through [our_entity.ckey]'s mob", usr) if(!message) - message = sanitize(tgui_input_text(usr, "Input what you want [our_entity] to [mode]", "narrate", null)) + message = tgui_input_text(usr, "Input what you want [our_entity] to [mode]", "narrate", null) //say/emote sanitize already if(message && mode == "Speak") our_entity.say(message) else if(message && mode == "Emote") @@ -158,10 +182,135 @@ else if(istype(holder.entity_refs[name], /atom)) var/atom/our_entity = holder.entity_refs[name] if(!message) - message = sanitize(tgui_input_text(usr, "Input what you want [our_entity] to [mode]", "narrate", null)) + message = tgui_input_text(usr, "Input what you want [our_entity] to [mode]", "narrate", null) + message = sanitize(message) if(message && mode == "Speak") our_entity.audible_message("[our_entity.name] [message]") else if(message && mode == "Emote") our_entity.visible_message("[our_entity.name] [message]") else return + + +/datum/entity_narrate/tgui_state(mob/user) + return GLOB.tgui_admin_state + +/datum/entity_narrate/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, tgui_id, "Entity Narration") + ui.open() + +/datum/entity_narrate/tgui_data(mob/user) + var/list/data = list() + data["mode_select"] = tgui_narrate_mode + data["privacy_select"] = tgui_narrate_privacy + data["selected_id"] = tgui_selected_id + data["selected_name"] = tgui_selected_name + data["selected_type"] = tgui_selected_type + data["selection_mode"] = tgui_selection_mode + data["multi_id_selection"] = tgui_selected_id_multi + data["number_mob_selected"] = LAZYLEN(tgui_selected_id_multi) + data["entity_names"] = entity_names + + return data + +/datum/entity_narrate/tgui_act(action, list/params) + . = ..() + + if(.) return + if(!check_rights_for(usr.client, R_FUN)) return + + switch(action) + if("change_mode_multi") + tgui_selection_mode = !tgui_selection_mode + //Clearing selections after switching mode + tgui_selected_id_multi = list() + tgui_selected_id = "" + tgui_selected_type = "" + tgui_selected_name = "" + tgui_selected_refs = null + if("change_mode_privacy") + tgui_narrate_privacy = !tgui_narrate_privacy + if("change_mode_narration") + tgui_narrate_mode = !tgui_narrate_mode + if("select_entity") + if(tgui_selection_mode) + if(params["id_selected"] in tgui_selected_id_multi) + tgui_selected_id_multi -= params["id_selected"] + else + tgui_selected_id_multi += params["id_selected"] + else + if(params["id_selected"] in tgui_selected_id_multi) + tgui_selected_id_multi -= params["id_selected"] + tgui_selected_id = "" + tgui_selected_type = "" + tgui_selected_name = "" + tgui_selected_refs = null + else + tgui_selected_id_multi = list() //Using the same var for ease of implementation. Thus, we must reset to empty each time. + tgui_selected_id_multi += params["id_selected"] + tgui_selected_id = params["id_selected"] + tgui_selected_refs = entity_refs[tgui_selected_id] + if(istype(tgui_selected_refs, /mob/living)) + var/mob/living/L = tgui_selected_refs + if(L.client) + tgui_selected_type = "!!!!PLAYER!!!!" + tgui_selected_name = L.name + else + tgui_selected_type = L.type + tgui_selected_name = L.name + else if(istype(tgui_selected_refs, /atom)) + var/atom/A = tgui_selected_refs + tgui_selected_type = A.type + tgui_selected_name = A.name + if("narrate") + if(world.time < (tgui_last_message + 0.5 SECONDS)) + to_chat(usr, SPAN_NOTICE("You can't messages that quickly! Wait at least half a second")) + else + to_chat(usr, SPAN_NOTICE("Message successfully sent!")) + tgui_last_message = world.time + var/message = params["message"] //Sanitizing before speaking it + if(tgui_selection_mode) + for(var/entity in tgui_selected_id_multi) + var/ref = entity_refs[entity] + if(istype(ref, /mob/living)) + var/mob/living/L = ref + if(L.client) + log_and_message_admins("used entity-narrate to speak through [L.ckey]'s mob", usr) + narrate_tgui_mob(L, message) + else if(istype(ref, /atom)) + var/atom/A = ref + narrate_tgui_atom(A, message) + else + var/ref = entity_refs[tgui_selected_id] + if(istype(ref, /mob/living)) + var/mob/living/L = ref + if(L.client) + log_and_message_admins("used entity-narrate to speak through [L.ckey]'s mob", usr) + narrate_tgui_mob(L, message) + else if(istype(ref, /atom)) + var/atom/A = ref + narrate_tgui_atom(A, message) + +/datum/entity_narrate/proc/narrate_tgui_mob(mob/living/L, message as text) + //say and custom_emote sanitize it themselves, not sanitizing here to avoid double encoding. + if(tgui_narrate_mode && tgui_narrate_privacy) + L.custom_emote_vr(m_type = VISIBLE_MESSAGE, message = message) + else if(tgui_narrate_mode && !tgui_narrate_privacy) + L.custom_emote(VISIBLE_MESSAGE, message) + else if(!tgui_narrate_mode && tgui_narrate_privacy) + L.say(message, whispering = 1) + else if(!tgui_narrate_mode && !tgui_narrate_privacy) + L.say(message) + +/datum/entity_narrate/proc/narrate_tgui_atom(atom/A, message as text) + message = sanitize(message) + if(tgui_narrate_mode && tgui_narrate_privacy) + A.visible_message("[A.name] [message]", range = 1) + else if(tgui_narrate_mode && !tgui_narrate_privacy) + A.visible_message("[A.name] [message]",) + else if(!tgui_narrate_mode && tgui_narrate_privacy) + A.audible_message("[A.name] [message]", hearing_distance = 1) + else if(!tgui_narrate_mode && !tgui_narrate_privacy) + A.audible_message("[A.name] [message]") diff --git a/code/modules/admin/verbs/get_player_status.dm b/code/modules/admin/verbs/get_player_status.dm new file mode 100644 index 0000000000..c409deab65 --- /dev/null +++ b/code/modules/admin/verbs/get_player_status.dm @@ -0,0 +1,44 @@ +#define INACTIVITY_CAP 15 MINUTES //Creating a define for this for more straight forward finagling. + + +//TGUI functionality planned for easier readability, so creating a new file for this +//TGUI functionality will call a datum to handle things separately +/client/proc/getPlayerStatus() + set name = "Report Player Status" + set desc = "Get information on all active players in-game." + set category = "EventKit" + + if(!check_rights(R_FUN)) return + + var/player_list_local = player_list //Copying player list so we don't touch a global var all the time + var/list/area_list = list() //An associative list, where key is area name, value is a list of mob references + var/inactives = 0 + var/players = 0 + + //Initializing our working list + for(var/player in player_list_local) + + if(!istype(player, /mob/living)) continue //We only care for living players + var/mob/living/L = player + players += 1 + if(L.client.inactivity > INACTIVITY_CAP) + inactives += 1 + continue //Anyone who hasn't done anything in 15 minutes is likely too busy + var/area_name = get_area_name(L) + if(area_name in area_list) + area_list[area_name] += L // area_name:list(A,B,C); we add L to (A,B,C) + else + area_list[area_name] = list(L) + + var/message = "#### The Following Players Are Likely Available #### \n" + for(var/cur_area in area_list) + var/area_players = area_list[cur_area] + message += "**** There are currently [LAZYLEN(area_players)] in [cur_area] **** \n" + + + for(var/mob/living/L in area_players) + message += "[L.name] ([L.key]) at ([L.x];[L.y]) has been inactive for [round(L.client.inactivity / (60 SECONDS))] minutes. \n" + + + message += "#### Over all, there are [players] eligible players, of which [inactives] were hidden due to inactivity. ####" + to_chat(usr, SPAN_NOTICE(message)) diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm index 9668dde7f9..20cbf4ad6d 100644 --- a/code/modules/ai/ai_holder.dm +++ b/code/modules/ai/ai_holder.dm @@ -210,7 +210,7 @@ holder = new_holder home_turf = get_turf(holder) manage_processing(AI_PROCESSING) - GLOB.stat_set_event.register(holder, src, .proc/holder_stat_change) + GLOB.stat_set_event.register(holder, src, PROC_REF(holder_stat_change)) ..() /datum/ai_holder/Destroy() @@ -459,11 +459,11 @@ walk_to_target() if(STANCE_MOVE) if(hostile && find_target()) // This will switch its stance. - ai_log("handle_stance_strategical() : STANCE_MOVE, found target and was inturrupted.", AI_LOG_TRACE) + ai_log("handle_stance_strategical() : STANCE_MOVE, found target and was interrupted.", AI_LOG_TRACE) return if(STANCE_FOLLOW) if(hostile && find_target()) // This will switch its stance. - ai_log("handle_stance_strategical() : STANCE_FOLLOW, found target and was inturrupted.", AI_LOG_TRACE) + ai_log("handle_stance_strategical() : STANCE_FOLLOW, found target and was interrupted.", AI_LOG_TRACE) return else if(leader) ai_log("handle_stance_strategical() : STANCE_FOLLOW, going to calculate_path([leader]).", AI_LOG_TRACE) @@ -505,4 +505,4 @@ #undef AI_NO_PROCESS #undef AI_PROCESSING -#undef AI_FASTPROCESSING \ No newline at end of file +#undef AI_FASTPROCESSING diff --git a/code/modules/artifice/telecube.dm b/code/modules/artifice/telecube.dm index 713903a10b..60366ab823 100644 --- a/code/modules/artifice/telecube.dm +++ b/code/modules/artifice/telecube.dm @@ -193,10 +193,10 @@ /obj/item/weapon/telecube/proc/cooldown(var/mate_too = FALSE) if(!ready) return - + ready = FALSE update_icon() - addtimer(CALLBACK(src, .proc/ready), cooldown_time) + addtimer(CALLBACK(src, PROC_REF(ready)), cooldown_time) if(mate_too && mate) mate.cooldown(mate_too = FALSE) //No infinite recursion pls diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 60eee03265..a7267ca342 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -50,7 +50,7 @@ switch(action) if("signal") - INVOKE_ASYNC(src, .proc/signal) + INVOKE_ASYNC(src, PROC_REF(signal)) . = TRUE if("freq") frequency = unformat_frequency(params["freq"]) diff --git a/code/modules/blob2/overmind/types/fabrication_swarm.dm b/code/modules/blob2/overmind/types/fabrication_swarm.dm index 7e267558d9..10a69cb301 100644 --- a/code/modules/blob2/overmind/types/fabrication_swarm.dm +++ b/code/modules/blob2/overmind/types/fabrication_swarm.dm @@ -2,7 +2,7 @@ /datum/blob_type/fabrication_swarm name = "iron tide" desc = "A swarm of self replicating construction nanites. Incredibly illegal, but only mildly dangerous." - effect_desc = "Slow-spreading, but incredibly resiliant. It has a chance to harden itself against attacks automatically for no resource cost, and uses cheaply-constructed hivebots as soldiers." + effect_desc = "Slow-spreading, but incredibly resilient. It has a chance to harden itself against attacks automatically for no resource cost, and uses cheaply-constructed hivebots as soldiers." ai_desc = "defensive" difficulty = BLOB_DIFFICULTY_MEDIUM // Emitters are okay, EMP is great. color = "#666666" @@ -41,4 +41,4 @@ if(L.stat != DEAD && L.isSynthetic()) L.adjustBruteLoss(-1) L.adjustFireLoss(-1) - return \ No newline at end of file + return diff --git a/code/modules/busy_space_vr/air_traffic.dm b/code/modules/busy_space_vr/air_traffic.dm index d353522d96..a261b56d86 100644 --- a/code/modules/busy_space_vr/air_traffic.dm +++ b/code/modules/busy_space_vr/air_traffic.dm @@ -60,7 +60,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/shift_ending(var/evac = 0) msg("[using_map.shuttle_name], this is [using_map.dock_name] Control, you are cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.shuttle_name] departing [using_map.dock_name] for [using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[using_map.shuttle_name]") /datum/lore/atc_controller/proc/random_convo() @@ -110,14 +110,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/chatter_type = "normal" if(force_chatter_type) chatter_type = force_chatter_type - else if((org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate" || org_type == "system defense") && org_type2 == "pirate") //this is ugly but when I tried to do it with !='s it fired for pirate-v-pirate, still not sure why. might as well stick it up here so it takes priority over other combos. + else if((org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate" || org_type == "system defense" || org_type == "spacer") && org_type2 == "pirate") //this is ugly but when I tried to do it with !='s it fired for pirate-v-pirate, still not sure why. might as well stick it up here so it takes priority over other combos. chatter_type = "distress" else if(org_type == "corporate") //corporate-specific subset for the slogan event. despite the relatively high weight it was still quite rare in tests. - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed",300;"slogan") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",180;"dockingrequestgeneric",30;"undockingrequest","normal",30;"undockingdenied",50;"slogan",25;"civvieleaks") else if((org_type == "government" || org_type == "neutral" || org_type == "military")) - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",180;"dockingrequestgeneric",30;"undockingrequest","normal",30;"undockingdenied",25;"civvieleaks") else if(org_type == "spacer") - chatter_type = pick(5;"emerg",15;"policescan",15;"traveladvisory",5;"pathwarning",10;"dockingrequestgeneric",30;"dockingrequestdenied",10;"dockingrequestdelayed",30;"dockingrequestsupplly",10;"dockingrequestrepair",20;"dockingrequestmedical",20;"dockingrequestsecurity",30;"undockingrequest","normal",10;"undockingdenied",30;"undockingdelayed") + chatter_type = pick(5;"emerg",15;"policescan",15;"traveladvisory",5;"pathwarning",150;"dockingrequestgeneric",30;"undockingrequest","normal",10;"undockingdenied",25;"civvieleaks") //the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with else if(org_type == "smuggler" && org_type2 != "system defense") //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff @@ -129,14 +129,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller else if((org_type == "smuggler" || org_type == "pirate") && org_type2 != "system defense") //but if we roll THIS combo, time to alert the SDF to get off their asses chatter_type = "hostiledetected" //SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in) - else if(org_type == "system defense" && (org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate")) //let's see if we can narrow this down, I didn't see many ship-to-ship scans - chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal") + else if(org_type == "system defense" && (org_type2 == "government" || org_type2 == "neutral" || org_type2 == "military" || org_type2 == "corporate" || org_type2 == "spacer")) //let's see if we can narrow this down, I didn't see many ship-to-ship scans + chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",180;"dockingrequestgeneric",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal",10;"civvieleaks") //SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something else if(org_type == "system defense") - chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",80;"sdfbeginpatrol","normal") + chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",120;"dockingrequestgeneric",20;"undockingrequest",80;"sdfbeginpatrol","normal","sdfchatter") //if we somehow don't match any of the other existing filters once we've run through all of them else - chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied",30;"undockingdelayed","normal") + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",90;"dockingrequestgeneric",30;"undockingrequest",30;"undockingdenied","normal",25;"civvieleaks") //I probably should do some kind of pass here to work through all the possible combinations of major factors and see if the filtering list needs reordering or modifying, but I really can't be arsed //DEBUG BLOCK @@ -175,11 +175,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller switch(chatter_type) //mayday call if("emerg") - var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have [pick("asteroids","space debris")] impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke in the cockpit","We have unidentified boarders","Our RCS are malfunctioning and we're losing stability","Our life support [pick("is failing","has failed")]") + var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have [pick("asteroids","space debris")] impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke [pick("in the cockpit","on the bridge")]","We have unidentified boarders","Our RCS are malfunctioning and we're losing stability","Our life support [pick("is failing","has failed")]") msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! [problem]!","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control, copy. Switch to emergency responder channel [ertchannel].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Understood [using_map.dock_name] Control, switching now.","[prefix] [shipname]") //Control scan event: soft outcome if("policescan") @@ -187,21 +187,21 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [using_map.dock_name] Control, holding position.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.") - sleep(10 SECONDS) + sleep(rand(3,6)*2 SECONDS) msg(complain,"[prefix] [shipname]") - sleep(15 SECONDS) + sleep(rand(3,6)*3 SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Scan complete. [completed]") //Control scan event: hard outcome if("policeflee") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") msg("Unknown [pick("ship","vessel","starship")], this is [using_map.dock_name] Control, identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[uhoh]","[shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("This is [using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [combined_first_name]. Control out.","[using_map.starsys_name] Defense Control") //SDF scan event: soft outcome if("policeshipscan") @@ -209,160 +209,195 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") msg("[combined_second_name], this is [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [combined_first_name], holding position.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[prefix] [shipname]") - sleep(10 SECONDS) + sleep(rand(3,6)*2 SECONDS) msg(complain,"[secondprefix] [secondshipname]") - sleep(15 SECONDS) + sleep(rand(3,6)*3 SECONDS) msg("[combined_second_name], this is [combined_first_name]. Scan complete. [completed]","[prefix] [shipname]") //SDF scan event: hard outcome if("policeshipflee") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") msg("Unknown [pick("ship","vessel","starship")], this is [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[uhoh]","[shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control, this is [combined_second_name]. We have a situation here, please advise.","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [sdfchannel].","[using_map.starsys_name] Defense Control") //SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll if("policeshipcombat") var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.") msg("[using_map.starsys_name] Defense Control, this is [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[secondprefix] [secondshipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[using_map.starsys_name] Defense Control") //SDF event: patrol update if("sdfpatrolupdate") var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","marauders")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs") msg("[using_map.starsys_name] Defense Control, this is [combined_first_name] reporting in, [statusupdate], over.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[using_map.starsys_name] Defense Control") //SDF event: end patrol if("sdfendingpatrol") var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") msg("[callname], this is [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //SDF event: general chatter + if("sdfchatter") + var/chain = pick("codecheck","commscheck") + switch(chain) + if("codecheck") + msg("Check. Check. |Check|. Uhhh... check? Wait. Wait! Hold on. Yeah, okay, I gotta call this one in.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[using_map.dock_name] Control, confirm auth-code... [rand(1,9)][rand(1,9)][rand(1,9)]-[pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")]?","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("One moment... yeah, that code checks out [combined_first_name].") + sleep(rand(3,6) SECONDS) + msg("|(sigh)| Copy that Control. You! Move along!","[prefix] [shipname]") + if("commscheck") + msg("Control this is [combined_first_name], we're getting some interference in our area. [pick("How's our line?","Do you read?","How copy, over?")]","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("Control reads you loud and clear [combined_first_name].","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("[pick("Copy that","Thanks,","Roger that")] Control. [combined_first_name] out.","[prefix] [shipname]") + //Civil event: leaky chatter + if("civvieleaks") + var/commleak = pick("thatsmywife","missingkit","pipeleaks","weirdsmell","weirdsmell2") + switch(commleak) + if("thatsmywife") + msg("-so then I says to him, |that's no [pick("space carp","space shark","vox","garbage scow","freight liner","cargo hauler","superlifter")], that's my +wife!+| And he-","[prefix] [shipname]") + if("missingkit") + msg("-did you get the kit from down on deck [rand(1,4)]? I need th-","[prefix] [shipname]") + if("pipeleaks") + msg("I swear if these pipes keep leaking I'm going to-","[prefix] [shipname]") + if("weirdsmell") + msg("-and where the hell is that smell coming fr-","[prefix] [shipname]") + if("weirdsmell2") + msg("-hat in the [pick("three","five","seven","nine")] hells did you |eat| [pick("ensign","crewman")]? This compartment reeks of-","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], your internal comms are leaking[pick("."," again.",", again.",". |Again|.")]") + sleep(rand(3,6) SECONDS) + msg("Sorry Control, won't happen again.","[prefix] [shipname]") //DefCon event: hostile found if("hostiledetected") var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert") msg("This is [using_map.starsys_name] Defense Control to all SDF assets. Priority update follows.","[using_map.starsys_name] Defense Control") - sleep(5 SECONDS) - msg("Be on the lookout for [combined_first_name], last sighted near route [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("Be on the lookout for [combined_first_name], last sighted [pick("near route","in sector","near sector")] [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control") //Ship event: distress call, under attack if("distress") - msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") - sleep(5 SECONDS) - msg("Understood [using_map.starsys_name] Defense Control, switching now.","[prefix] [shipname]") + var/state = pick(66;"calm",34;"panic") + switch(state) + if("calm") + msg("[using_map.starsys_name] Defense Control, this is [combined_first_name].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("We read you. Go ahead, [combined_first_name].","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("Another vessel in our area is moving [pick("aggressively","suspiciously","erratically","unpredictably","with clear hostile intent")], please advise? Forwarding sensor data now.","[prefix] [shipname]","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], [using_map.starsys_name] Defense Control copies. Sensor data matches logged profile for [combined_second_name]. SDF units are en route to your location.","[using_map.starsys_name] Defense Control") + sleep(rand(3,6) SECONDS) + msg("[pick("Appreciated","Copy that","Understood")], Control. Switching to [sdfchannel] to coordinate.","[prefix] [shipname]") + if("panic") + msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") + sleep(rand(3,6) SECONDS) + msg("[pick("Copy that","Understood")] [using_map.starsys_name] Defense Control, switching now!","[prefix] [shipname]") //Control event: travel advisory if("traveladvisory") - var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected along route [rand(1,100)], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. [pick("Stars","Gods","God","Goddess")] have mercy on you all, because the carp won't") + var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected [pick("along route [rand(1,100)]","in sector [rand(1,100)]")], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space [pick("carp","shark")] breeding season. [pick("Stars","Skies","Gods","God","Goddess","Fates")] have mercy on you all") msg("This is [using_map.dock_name] Control to all vessels in the [using_map.starsys_name] system. Priority travel advisory follows.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[flightwarning]. Control out.") //Control event: warning to a specific vessel if("pathwarning") - var/navhazard = pick("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector","a live-fire SDF training exercise","an ongoing Search & Rescue operation") + var/navhazard = pick("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector","a live-fire SDF training exercise","an ongoing Search & Rescue operation","a hazardous derelict","an intense electrical storm","an intense ion storm","a shoal of space carp","a pack of space sharks","an asteroid infested with gnat hives","a protected space ray habitat","a region with anomalous bluespace activity","a rogue comet") var/confirm = pick("Understood","Roger that","Affirmative","Our bad","Thanks for the heads up") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","Godspeed","Stars guide you","Don't let it happen again") msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[confirm] [using_map.dock_name] Control, adjusting course.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Your compliance is appreciated, [combined_first_name]. [safetravels].") //Ship event: docking request (generic) if("dockingrequestgeneric") - var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (denied) - if("dockingrequestdenied") - var/reason = pick("we don't have any landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class") - var/disappointed = pick("That's unfortunate. [combined_first_name], out.","Damn shame. We'll just have to keep moving. [combined_first_name], out.","[combined_first_name], out.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason].") - sleep(5 SECONDS) - msg("Understood, [using_map.dock_name] Control. [disappointed]","[prefix] [shipname]") - //Ship event: docking request (delayed) - if("dockingrequestdelayed") - var/reason = pick("we don't have any free landing pads right now, please hold for three minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for three minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for three minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for three minutes") + var/request_type = pick(100;"generic",40;"delayed",40;"supply",20;"repair",20;"medical",20;"security") var/appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") - sleep(5 SECONDS) - msg("Understood, [using_map.dock_name] Control.","[prefix] [shipname]") - sleep(180 SECONDS) - msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") - sleep (5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (resupply) - if("dockingrequestsupply") - var/preintensifier = pick(75;"getting ",75;"running ","") //whitespace hack, sometimes they'll add a preintensifier, but not always - var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta") - var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (repair/maint) - if("dockingrequestrepair") - var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","Our artificial gravity generator has failed","Our life support is failing","Our environmental controls are busted","Our water recycling system has shorted out","Our navcomp is freaking out","Our systems are glitching out","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our repair bots are malfunctioning") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (medical) - if("dockingrequestmedical") - var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","sick passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured castaways","recovered escape pods","unknown escape pods") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") - sleep(5 SECONDS) - msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") - //Ship event: docking request (security) - if("dockingrequestsecurity") - var/species = pick("human","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien") - var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a very lost shadekin",5;"a raging case of [pick("spiders","crabs")]") //gotta have a little something to lighten the mood now and then - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") - var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") - msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") - sleep(5 SECONDS) + switch(request_type) + if("generic") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("delayed") + var/reason = pick("we don't have any free landing pads right now, please hold for a few minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for a few minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for a few minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for a few minutes") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") + sleep(rand(3,6) SECONDS) + msg("Understood, [using_map.dock_name] Control.","[prefix] [shipname]") + sleep(rand(3,6)*60 SECONDS) + msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") + sleep (5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("supply") + var/preintensifier = pick(75;"getting ",75;"running ","",15;"like, ") //whitespace hack, sometimes they'll add a preintensifier, but not always + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta") + var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + if("repair") + var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some [pick("weird","strange","odd","unusual")] technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our [pick("life support","water recycling system","navcomp","shield generator","RCS","auto-repair system","artificial gravity generator","environmental control system")] is [pick("failing","acting up","on the fritz","shorting out","glitching out","freaking out","malfunctioning")]") + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") + if("medical") + var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug") + var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured [pick("","[species] ")]passengers","sick [pick("","[species] ")]passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured [pick("","[species] ")]castaways","recovered escape pods","unknown escape pods") + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") + if("security") + var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug") + var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","[pick("a container","containers")] full of [pick("confiscated contraband","stolen goods")]",5;"a very lost shadekin",15;"a buncha lost-looking uh... cat... slug... |things?|",10;"a raging case of [pick("spiders","crabs","geese","gnats","sharks","carp")]") //gotta have a little something to lighten the mood now and then + appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") + msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") + sleep(rand(3,6) SECONDS) msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") //Ship event: undocking request if("undockingrequest") + var/request_type = pick(150;"generic",50;"delayed") + var/takeoff = pick("depart","launch") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") - var/takeoff = pick("depart","launch") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) + switch(request_type) + if("generic") + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") + sleep(rand(3,6) SECONDS) + msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") + if("delayed") + var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard") + msg("Negative [combined_first_name], request denied. [denialreason]. Try again in a few minutes.") + sleep(rand(3,6)*60 SECONDS) + msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") + sleep(rand(3,6) SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") + sleep(rand(3,6) SECONDS) msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") //SDF event: starting patrol if("sdfbeginpatrol") @@ -370,51 +405,36 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too") var/takeoff = pick("depart","launch","take off","dust off") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] beginning system patrol, out.","[prefix] [shipname]") //Ship event: undocking request (denied) if("undockingdenied") var/takeoff = pick("depart","launch") var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("Negative [combined_first_name], request denied. [denialreason].") - //Ship event: undocking request (delayed) - if("undockingdelayed") - var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard") - var/takeoff = pick("depart","launch") - var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") - var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") - msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("Negative [combined_first_name], request denied. [denialreason]. Try again in three minutes.") - sleep(180 SECONDS) //yes, three minutes - msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") - sleep(5 SECONDS) - msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") - sleep(5 SECONDS) - msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") if("slogan") msg("The following is a sponsored message from [name].","Facility PA") - sleep (5 SECONDS) + sleep(5 SECONDS) msg("[slogan]","Facility PA") else //time for generic message msg("[callname], this is [combined_first_name] on [mission] [pick(mission_noun)] to [destname], requesting [request].","[prefix] [shipname]") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[combined_first_name], this is [using_map.dock_name] Control, [response].") - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) msg("[using_map.dock_name] Control, [yes ? "thank you" : "understood"], out.","[prefix] [shipname]") return //oops, forgot to restore this /* //OLD BLOCK, for reference //Ship sends request to ATC msg(full_request,"[prefix] [shipname]" - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) //ATC sends response to ship msg(full_response) - sleep(5 SECONDS) + sleep(rand(3,6) SECONDS) //Ship sends response to ATC msg(full_closure,"[prefix] [shipname]") return diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm index 71768e301d..0008df7c63 100644 --- a/code/modules/busy_space_vr/organizations.dm +++ b/code/modules/busy_space_vr/organizations.dm @@ -11,12 +11,12 @@ var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") var/complex_tasks = FALSE //enables complex task generation - + //how does it work? simple: if you have complex tasks enabled, it goes; PREFIX + TASK_TYPE + FLIGHT_TYPE //e.g. NDV = Asset Protection + Patrol + Flight //this overrides the standard PREFIX = TASK logic and allows you to use the ship prefix for subfactions (warbands, religions, whatever) within a faction, and define task_types at the faction level //task_types are picked from completely at random in air_traffic.dm, much like flight_types, so be careful not to potentially create combos that make no sense! - + var/list/task_types = list( "logistics", "patrol", @@ -183,7 +183,8 @@ "Cwn Annwn", "Morning Swan", "Black Cat", - "Challenger" + "Challenger", + "Savage Chicken" ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. @@ -192,7 +193,7 @@ var/org_type = "neutral" //Valid options are "neutral", "corporate", "government", "system defense", "military, "smuggler", & "pirate" var/sysdef = FALSE //Are we the space cops? var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? see the proc below for info on that - + var/slogans = list("This is a placeholder slogan, ding dong!") //Advertising slogans. Who doesn't want more obnoxiousness on the radio? Picked at random each time the slogan event fires. This has a placeholder so it doesn't runtime on trying to draw from a 0-length list in the event that new corps are added without full support. /datum/lore/organization/New() @@ -218,7 +219,7 @@ "Finlay","Onasilos","Makropolus","Surt","Boinayel", "Eyeke","Cayahuanca","Hamarik","Abol","Hiisi", "Belisama","Mintome","Neri","Toge","Iolaus", - "Koyopa","Independance","Ixbalanque","Magor","Fold", + "Koyopa","Independence","Ixbalanque","Magor","Fold", "Santamasa","Noifasui","Kavian","Babylonia","Bran", "Alef","Lete","Chura","Wadirum","Buru", "Umbaasaa","Vytis","Peitruss","Trimobe","Baiduri", @@ -309,8 +310,8 @@ them being the foremost experts on the substance and its uses. In the modern day, NanoTrasen prides \ itself on being an early adopter to as many new technologies as possible, often offering the newest \ products to their employees. In an effort to combat complaints about being 'guinea pigs', Nanotrasen \ - also offers one of the most comprehensive medical plans in Commonwealth space, up to and including cloning \ - and therapy.\ + also offers one of the most comprehensive medical plans in Commonwealth space, up to and including cloning, \ + resleeving, and therapy.\

\ NT's most well known products are its phoron based creations, especially those used in Cryotherapy. \ It also boasts a prosthetic line, which is provided to its employees as needed, and is used as an incentive \ @@ -403,9 +404,9 @@ org_type = "corporate" slogans = list( - "Hephaestus Arms - When it comes to personal protection, nobody does it better.", - "Hephaestus Arms - Peace through Superior Firepower.", - "Hephaestus Arms - Don't be caught firing blanks." + "+Hephaestus Arms!+ - When it comes to +personal protection+, +nobody+ does it +better+.", + "+Hephaestus Arms!+ - Peace through +Superior Firepower+.", + "+Hephaestus Arms!+ - Don't be caught +firing blanks+." ) ship_prefixes = list("HCV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") //War God Theme, updated @@ -503,7 +504,7 @@ and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \ human-like FBP designs. Vey's rise to stardom came from their introduction of resurrective cloning, although in \ recent years they've been forced to diversify as their patents expired and NanoTrasen-made medications became \ - essential to modern cloning. \ + essential to modern cloning and resleeving procedures. \

\ For reasons known only to the board, Vey-Med's ship names seem to follow the same naming pattern as the Dionae use." history = "" @@ -719,7 +720,8 @@ slogans = list( "Bishop Cybernetics - only the best in personal augmentation.", "Bishop Cybernetics - why settle for flesh when you can have metal?", - "Bishop Cybernetics - make a statement." + "Bishop Cybernetics - make a statement.", + "Bishop Cybernetics - embrace the purity of the machine." ) ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange") //famous mechanical engineers @@ -957,6 +959,7 @@ slogans = list( "The FTU. We look out for the little guy.", "There's no Trade like Free Trade.", + "There's no Union like the Free Trade Union.", "Join the Free Trade Union. Because anything worth doing, is worth doing for money." //rule of acquisition #13 ) ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment") @@ -1333,6 +1336,7 @@ slogans = list( "Oculum - All News, All The Time.", "Oculum - We Keep An Eye Out.", + "Oculum - Nothing But The Truth.", "Oculum - Your Eye On The Galaxy." ) ship_prefixes = list("OBV" = "an investigation", "OBV" = "a distribution", "OBV" = "a journalism", "OBV" = "a general operations") @@ -1354,7 +1358,9 @@ slogans = list( "Centauri Provisions Bread Tubes - They're Not Just Edible, They're |Breadible!|", "Centauri Provisions SkrellSnax - Not |Just| For Skrell!", - "Centauri Provisions Space Mountain Wind - It'll Take Your |Breath| Away!" + "Centauri Provisions Space Mountain Wind - It'll Take Your |Breath| Away!", + "Centauri Provisions Syndi-Cakes - A Taste So Good You'll Swear It's |Illegal|!", + "Centauri Provisions Tuna Snax - There's Nothing |Fishy| Going On Here!" ) ship_prefixes = list("CPTV" = "a transport", "CPCV" = "a catering", "CPRV" = "a resupply", "CPV" = "a general operations") destination_names = list( @@ -1620,7 +1626,7 @@ "Vampir", "Wendigo", "Werewolf", - "Wraith" + "Wraith" ) destination_names = list ( "Chimera HQ, Titan", @@ -2186,23 +2192,40 @@ org_type = "pirate" ship_prefixes = list("Ue-Katish pirate" = "a raiding", "Ue-Katish bandit" = "a raiding", "Ue-Katish raider" = "a raiding", "Ue-Katish enforcer" = "an enforcement") - ship_names = list( - "Keqxuer'xeu's Prize", - "Xaeker'qux' Bounty", - "Teq'ker'qerr's Mercy", - "Ke'teq's Thunder", - "Xumxerr's Compass", - "Xue'qux' Greed", - "Xaexuer's Slave", - "Xue'taq's Dagger", - "Teqxae's Madness", - "Taeqtaq'kea's Pride", - "Keqxae'xeu's Saber", - "Xueaeq's Disgrace", - "Xum'taq'qux' Star", - "Ke'xae'xe's Scream", - "Keq'keax' Blade" + ship_names = list() + +/datum/lore/organization/other/uekatish/New() + ..() + var/i = 20 //give us twenty random names + var/list/first_names = file2list('config/names/first_name_skrell.txt') + var/list/words = list( + "Prize", + "Bounty", + "Treasure", + "Pearl", + "Star", + "Mercy", + "Compass", + "Greed", + "Slave", + "Madness", + "Pride", + "Disgrace", + "Judgement", + "Wrath", + "Hatred", + "Vengeance", + "Fury", + "Thunder", + "Scream", + "Dagger", + "Saber", + "Lance", + "Blade" ) + while(i) + ship_names.Add("[pick(first_names)] [pick(words)]") + i-- /datum/lore/organization/other/marauders name = "Vox Marauders" @@ -2222,12 +2245,7 @@ org_type = "pirate" ship_prefixes = list("vox marauder" = "a marauding", "vox raider" = "a raiding", "vox ravager" = "a raiding", "vox corsair" = "a raiding") //as assigned by control, second part shouldn't even come up //blank out our shipnames for redesignation - ship_names = list( - ) - /* - destination_names = list( - ) - */ + ship_names = list() /datum/lore/organization/other/marauders/New() ..() @@ -2635,26 +2653,7 @@ //the tesh expeditionary fleet's closest analogue in modern terms would be the US Army Corps of Engineers, just with added combat personnel as well ship_prefixes = list("TEF" = "a diplomatic", "TEF" = "a peacekeeping", "TEF" = "an escort", "TEF" = "an exploration", "TEF" = "a survey", "TEF" = "an expeditionary", "TEF" = "a pioneering") //TODO: better ship names? I just took a bunch of random teshnames from the Random Name button and added a word. - ship_names = list( - "Leniri's Hope", - "Tatani's Venture", - "Ninai's Voyage", - "Miiescha's Claw", - "Ishena's Talons", - "Lili's Fang", - "Taalische's Wing", - "Cami's Pride", - "Schemisa's Glory", - "Shilirashi's Wit", - "Sanene's Insight", - "Aeimi's Wisdom", - "Ischica's Mind", - "Recite's Cry", - "Leseca's Howl", - "Iisi's Fury", - "Simascha's Revenge", - "Lisascheca's Vengeance" - ) + ship_names = list() destination_names = list( "an Expeditionary Fleet RV point", "an Expeditionary Fleet Resupply Ship", @@ -2665,14 +2664,59 @@ "Expeditionary Fleet HQ" ) +/datum/lore/organization/gov/teshari/New() + ..() + var/i = 20 //give us twenty random names + var/list/first_names = list( + "Leniri's", + "Tatani's", + "Ninai's", + "Miiescha's", + "Ishena's", + "Taalische's", + "Cami's", + "Schemisa's", + "Shilirashi's", + "Sanene's", + "Aeimi's", + "Ischica's", + "Shasche's", + "Leseca's", + "Iisi's", + "Simascha's", + "Lisascheca's" + ) + var/list/words = list( + "Hope", + "Venture", + "Voyage", + "Talons", + "Fang", + "Wing", + "Pride", + "Glory", + "Wit", + "Insight", + "Wisdom", + "Mind", + "Cry", + "Howl", + "Fury", + "Revenge", + "Vengeance" + ) + while(i) + ship_names.Add("[pick(first_names)] [pick(words)]") + i-- + /datum/lore/organization/gov/altevian_hegemony - name = "The Altevian Hegemony" + name = "The Altevian Hegemony" short_name = "Altevian Hegemony " acronym = "AH" desc = "The Altevians are a space-faring race of rodents that resemble Earth-like rats. \ They do not have a place they call home in terms of a planet, and instead have massive multiple-kilometer-long colony-ships \ - that are constantly on the move and typically keep operations outside of known populated systems to not eat the resources from others. \ - Their primary focus is trade and slavage operations and can be expected to be seen around both densely populated and empty systems for their work." + that are constantly on the move and typically keep operations outside of known populated systems to minimize potential conflicts over resources. \ + Their primary focus is trade and salvage operations, and their ships can be expected to be seen around both densely populated and empty systems for their work." history = "" work = "salvage and trade operators" headquarters = "AH-CV Migrant" diff --git a/code/modules/casino/boxes_casino.dm b/code/modules/casino/boxes_casino.dm index 3b4c548056..136ff9ba03 100644 --- a/code/modules/casino/boxes_casino.dm +++ b/code/modules/casino/boxes_casino.dm @@ -1,6 +1,6 @@ /obj/item/weapon/storage/box/casino name = "prize box" - desc = "It's a lovely golden tinted cardboard box, maybe theres something valuable inside?" + desc = "It's a lovely golden tinted cardboard box, maybe there's something valuable inside?" icon = 'icons/obj/casino.dmi' icon_state = "casino_box" @@ -91,4 +91,4 @@ /obj/item/roulette_ball/cheat/black, /obj/item/roulette_ball/cheat/zeros, /obj/item/roulette_ball/cheat/odd, - /obj/item/roulette_ball/cheat/even) \ No newline at end of file + /obj/item/roulette_ball/cheat/even) diff --git a/code/modules/casino/casino_book.dm b/code/modules/casino/casino_book.dm index f02a53abd0..84cd8197ee 100644 --- a/code/modules/casino/casino_book.dm +++ b/code/modules/casino/casino_book.dm @@ -45,7 +45,7 @@ The values of cards are as follow: A game of blackjack begins with the dealer giving the gambler two cards, in normal blackjack all cards dealt to gambler and dealer are always shown. The two cards dealt have their values put together, the gambler has three choices, stand, hit, or double down. @@ -60,17 +60,17 @@
  • Hard 17 - They dealer must stop if they get a value of 17.
  • The casino who supplies this version of the manual follows the rule of hard 17.
    - The game ends when the dealer busts, reaches the threshold of what they are allowed to draw, or if they get a higher value than the gambler. Again, the one who has the highest value that isnt higher than 21 wins, but if both has the same value no one wins and the bet goes back to the gambler.
    - And thats it! Now go out there and gamble your savings away! This casino allows bets between 5 and 50 with double down ignoring that limit!

    + The game ends when the dealer busts, reaches the threshold of what they are allowed to draw, or if they get a higher value than the gambler. Again, the one who has the highest value that isn't higher than 21 wins, but if both has the same value no one wins and the bet goes back to the gambler.
    + And that's it! Now go out there and gamble your savings away! This casino allows bets between 5 and 50 with double down ignoring that limit!

    - But wait! Theres more! Theres also group blackjack! This game is a little different, the dealer can be part of it or simple deal for players, this game works differently with everyone keeping their hands hidden, everyone makes initial bets, gets two facedown cards, then its a matter of trying to get as good a hand as possible, but if you go bust, its over. But dont tell or show until everyone reveals! If youre going down, its best if youre opponents dont know they simply can play safe and win, if youre lucky everyone else gets themselves busted and you dont lose your beloved chips!
    - Its kinda like texas hold em in a way, everyone draws, folks can raise bets or fold, then draw more. Rinse and repeat until no one wants to raise any more nor draw cards, if everyone except one person has folded, they win by default even if they have busted, cause they dont need to reveal their hand that game, so you can choose to either sit and wait and fold if someone raise the bets, or you can gamble and make it look like you have an amazing hand and win by default since everyone else folds and no one is wise that you had a bust! This game has turned from simple probability and chance against the dealer to a game of risk and deception, fun fun fun! + But wait! There's more! There's also group blackjack! This game is a little different, the dealer can be part of it or simple deal for players, this game works differently with everyone keeping their hands hidden, everyone makes initial bets, gets two facedown cards, then its a matter of trying to get as good a hand as possible, but if you go bust, its over. But don't tell or show until everyone reveals! If your going down, its best if your opponents don't know they simply can play safe and win, if you're lucky everyone else gets themselves busted and you don't lose your beloved chips!
    + Its kinda like Texas hold em in a way, everyone draws, folks can raise bets or fold, then draw more. Rinse and repeat until no one wants to raise any more nor draw cards, if everyone except one person has folded, they win by default even if they have busted, cause they don't need to reveal their hand that game, so you can choose to either sit and wait and fold if someone raise the bets, or you can gamble and make it look like you have an amazing hand and win by default since everyone else folds and no one is wise that you had a bust! This game has turned from simple probability and chance against the dealer to a game of risk and deception, fun fun fun!

    Roulette

    So this game of roulette is all about chance! what happens is that people bet on different odds and hope for the best as the dealer rolls the ball and makes that roulette thingy make than fun addicting spin! Once it lands on a number between 0 and 36 its either bust or payout! Pretty simple, right?
    Everyone starts by putting their bets down, people can bet more than once before the ball goes rolling, the odds and their payoffs are these: - Theres not much more to it! Bets made, ball rolls, number announced, people win, people lose! Bets allowed here are from 1 to 25 per bet. Oh, im also being told this casino has the fancy rule that if ball lands on 0, one wins at least one bet no matter what it is! So lets hope you got that big bet on a single number! + There's not much more to it! Bets made, ball rolls, number announced, people win, people lose! Bets allowed here are from 1 to 25 per bet. Oh, I'm also being told this casino has the fancy rule that if ball lands on 0, one wins at least one bet no matter what it is! So lets hope you got that big bet on a single number!

    Poker

    - Aaah yes, good old poker. This casino runs by the rules of texas hold em, though the might be a little modified to be simpler for the average joe. In a game of poker it can be a single gambler and a dealer against each other, but most often its the dealer making the game proceed while several gamblers fights tooth and nail to steal each others chips, but the dealer can still join in on the free for all if they so wish!
    + Aaah yes, good old poker. This casino runs by the rules of Texas hold em, though the might be a little modified to be simpler for the average joe. In a game of poker it can be a single gambler and a dealer against each other, but most often its the dealer making the game proceed while several gamblers fights tooth and nail to steal each others chips, but the dealer can still join in on the free for all if they so wish!
    To simply explain the game, people gamble with each other, a game of trying to get the best hand and raise bets or back out depending on what the outcome may be. The game starts with everyone betting a certain amount, it can be 5 or 10 chips depending on dealer, but if one wants to join, there needs to be chips on that table! Once everyone has made their initial bet, everyone gets two cards face down, these are kept hidden, no one not even dealer gets to see players cards until the end, not even folded cards are to be shown unless wanted to, sometimes its better making people unsure if you dropped out with bad cards or if you have other motives, deception is a large part of this game!
    - With everyone having cards dealt, its time for the dealer to lay three on the table face up, these cards are 3 of 5 cards in the community pool, everyone can use these cards to make sets like pairs and such, this doesnt mean they are taken, multiple people can use the same community card for their own sets!
    - With the community having three we enter the second betting stage, here people have two options, standing or raising. Standing means you dont want to raise, raising explains itself, though if someone bets, people have three options, commit putting the chips in to risk as much as the raised bet, but if one doesnt have enough, then they can still go all in with their remaining chips, one can also drop out if its too risky, the chips bet will remain on the table, but at least you wont lose more eh? Final one is to raise further, sometimes people can dare each other to raise more, but its not allowed for someone to raise, then raise further if no one else raises after them!
    + With everyone having cards dealt, its time for the dealer to lay three on the table face up, these cards are 3 of 5 cards in the community pool, everyone can use these cards to make sets like pairs and such, this doesn't mean they are taken, multiple people can use the same community card for their own sets!
    + With the community having three we enter the second betting stage, here people have two options, standing or raising. Standing means you don't want to raise, raising explains itself, though if someone bets, people have three options, commit putting the chips in to risk as much as the raised bet, but if one doesn't have enough, then they can still go all in with their remaining chips, one can also drop out if its too risky, the chips bet will remain on the table, but at least you wont lose more eh? Final one is to raise further, sometimes people can dare each other to raise more, but its not allowed for someone to raise, then raise further if no one else raises after them!
    As said earlier, we got like a community pool of 5 cards total, this time another card is revealed and we enter a new betting phase, then the final fifth card is revealed and final bets are made, and then the cards are revealed so it can be determined who has the best hand! If two or more have equally good sets, then the chips are split evenly between them.
    - But notice, if someone is left because everyone else didnt dare to raise with their bet, they can decide to not reveal their hand, they might have had a winning hand, or maybe its terrible and they just bluffed their way to victory, only they know and can decide if they want to expose their cards to gloat or confuse their opponents. So in summary, the game can be simple, but hard to master!

    + But notice, if someone is left because everyone else didn't dare to raise with their bet, they can decide to not reveal their hand, they might have had a winning hand, or maybe its terrible and they just bluffed their way to victory, only they know and can decide if they want to expose their cards to gloat or confuse their opponents. So in summary, the game can be simple, but hard to master!

    And here is the order of winning hands folks! - Wew, what a long lesson, but thats how one does the Texas hold em here at this casino, hope you guys have fun winning and losing your hard earned cash with this one! + Wew, what a long lesson, but that's how one does the Texas hold em here at this casino, hope you guys have fun winning and losing your hard earned cash with this one!

    Cards against the galaxy

    So hear this, NT is now sponsoring team building at the casino, so folks who wants to just relax with friends, play some games, earn chips with no risk, even the ones broke can join in on a fun game of Cards against the galaxy and have fun!
    The idea is that once a round has concluded and a casino member is present to see the game being actually played, everyone gets 10 chips while the one who won the round gets 25 instead! Interested? Good! Its easy and simple to play and very fun and vulgar!

    - The game is best played with at least 4 players and starts with everyone drawing 7 white cards, the person who most recently pooped starts as the 'card czar', but folks can agree on another criteria for the czar or simply pick one. Each round the current card czar draws a black card that has text written on it and blank lines, everyone aside from the czar takes a white card from their hand for every blank line which they find funny in that sentence and puts on the table face down with the others. The card czar cant know who has which white card and simply reads the black card with the white ones, the most funniest combination is choosen by the czar and the one who made that combination is the current rounds winner and the next rounds czar. At the end of each round everyone makes sure to draw enough white card to have 7 on hand and if theres a casino staff member playing or watching, they note down or hand out chips for everyone, and if they are playing, they get to add chips to their own personal stockpile too!
    - Thats it for cards against the galaxy! Simple, fun and vulgar, whats there not to love? + The game is best played with at least 4 players and starts with everyone drawing 7 white cards, the person who most recently pooped starts as the 'card czar', but folks can agree on another criteria for the czar or simply pick one. Each round the current card czar draws a black card that has text written on it and blank lines, everyone aside from the czar takes a white card from their hand for every blank line which they find funny in that sentence and puts on the table face down with the others. The card czar cant know who has which white card and simply reads the black card with the white ones, the most funniest combination is chosen by the czar and the one who made that combination is the current rounds winner and the next rounds czar. At the end of each round everyone makes sure to draw enough white card to have 7 on hand and if there's a casino staff member playing or watching, they note down or hand out chips for everyone, and if they are playing, they get to add chips to their own personal stockpile too!
    + That's it for cards against the galaxy! Simple, fun and vulgar, what's there not to love?

    Prizes

    - Hey folks, welcome to the prize section! This part is definently important for you folks operating the prize booth! First off I wanna tell you some great news! Nanotransen has gone along with a nice deal that allows crew to occasionally keep their hard earned rewards on station for a limited time, now you can enjoy your new fancy toolbelt or bluespace beaker for more than just the shift where the casino comes around!
    + Hey folks, welcome to the prize section! This part is definitely important for you folks operating the prize booth! First off I wanna tell you some great news! Nanotransen has gone along with a nice deal that allows crew to occasionally keep their hard earned rewards on station for a limited time, now you can enjoy your new fancy toolbelt or bluespace beaker for more than just the shift where the casino comes around!
    ((Be aware, there can be limitations on how many rewards you get to keep after the shift, it might be unfair if some shows up and wins one thing, while they watch as command staff crew with high background income as well as hyperactive miners walks home with 20 prizes they get to enjoy while having almost done no gambling at all.))

    Lets get to the prizes and exchange rate before we get started on the stuff specifically for the booth operators, so heres the current prizes one can win and their costs! Be aware there might be new prizes or absent ones from time to time!
    @@ -127,9 +127,9 @@ This section was outdated, someone better write it. - Thats it for prizes!

    + That's it for prizes!

    - Now comes the part for the both operators, you got a very important job, it has a lot of responsibility, so it means that you gotta put that first before your own fun, cause unless you do it, a lot of folks are gonna be left sad and dissappointed they cant get any goodies! But the process is simple and can be quick, someone comes to you, they want some chips, or thalers back or a prize, you simply check this nice guide above to determine cost and ask for the amount of thalers or chips needed, if its a prize, then you follow this procedure: + Now comes the part for the both operators, you got a very important job, it has a lot of responsibility, so it means that you gotta put that first before your own fun, cause unless you do it, a lot of folks are gonna be left sad and disappointed they cant get any goodies! But the process is simple and can be quick, someone comes to you, they want some chips, or thalers back or a prize, you simply check this nice guide above to determine cost and ask for the amount of thalers or chips needed, if its a prize, then you follow this procedure:
    1. First get the thalers or chips for payment.
    2. Before giving the prize you take out your prize winner folder and a piece of paper, this paper will be named after the one getting the reward and will have further prizes noted down into it, so make sure its safe in that folder!
    3. @@ -137,18 +137,18 @@
    4. Once written down, you just put the paper back in the folder and hand over the prize!
    ((When shift is nearing its end you pray to staff or DM the one responsible for the event, they will get the folder and copy paste all the reward info before shift is over and ensure people get their rewards. This is a very important job and we understand it might not be so fun being restricted during an event, but just like the rest of volunteer staff, you get rewarded with guaranteed prizes to enjoy after the shift for being a big help!))
    - ((This gets to the sour part, cheating and giving others and yourself free prizes and/or chips is absolutely forbidden, this has OOC consequences and will likely blacklist you from being important roles in future events. Though dont fear getting punished even if you havent done anything wrong, we will rather let cheaters slip than let honest players get wrongfully punished!)) + ((This gets to the sour part, cheating and giving others and yourself free prizes and/or chips is absolutely forbidden, this has OOC consequences and will likely blacklist you from being important roles in future events. Though don't fear getting punished even if you haven't done anything wrong, we will rather let cheaters slip than let honest players get wrongfully punished!))

    Sentient prizes

    Goodness me this is quite the casino huh? Who would have thought one could win other people as a prize? Well you can do just about anything you want with them! Be it just company, some less children friendly company, heck you can even eat them or make them eat you! The options and possibilities are quite frankly limitless!
    Now you might ask, how does one get these fancy prizes? Well they can be obtained by checking in at the exchange both and see the list of prizes, there might be none, there might be many, it depends on volunteers and losers! This brings us first to volunteers and then to losers!
    Volunteering is simple! Anyone can walk up to the booth and ask to be a sentient prize, what this means is that you get a nice sum of 150 chips for you to do whatever you want, but someone might come at any point and claim you!
    - Losers are obtained differently, if youre completly busted and have nothing left, you become a prize that the one you lost to can do whatever they want with, this means both gamblers and dealers can end up as a prize, though if for whatever reason you dont become their prize, you get added to the list for someone else to enjoy. Becoming a prize means you also get 100 chips in compensation!
    + Losers are obtained differently, if you're completely busted and have nothing left, you become a prize that the one you lost to can do whatever they want with, this means both gamblers and dealers can end up as a prize, though if for whatever reason you don't become their prize, you get added to the list for someone else to enjoy. Becoming a prize means you also get 100 chips in compensation!
    - Now hear this! The casino has decided that to spice things up, folks can bet themselves at any time and arent already a prize on the list! Doesnt matter if youre rich or broke, playing blackjack or roulette, you can bet yourself in any game and youre worth 250 chips! But be careful, cause if you lose, youre the winners prize! They can keep you, give you to someone else. or to the prize booth and get the chips you would have gotten as volunteer! But if given to the booth, the winner cant buy their prize back for the lower cost!

    + Now hear this! The casino has decided that to spice things up, folks can bet themselves at any time and aren't already a prize on the list! Doesn't matter if you're rich or broke, playing blackjack or roulette, you can bet yourself in any game and you're worth 250 chips! But be careful, cause if you lose, you're the winners prize! They can keep you, give you to someone else. or to the prize booth and get the chips you would have gotten as volunteer! But if given to the booth, the winner cant buy their prize back for the lower cost!

    - ((Sour part again, but very important. These sentient prizes can be fun, but one thing always dictates how these things goes down, preferences and ooc wants. If preferences dont line up and people dont agree to do winner/loser scene it becomes sentient prize on list. And someone cant win a prize if the prize ooc doesnt want to do what the winner wants to do. We still wish people to try and reach out and try things with new people and/or new things they are comfortable doing, but never shall anyone be forced into a situation they dont want!)) + ((Sour part again, but very important. These sentient prizes can be fun, but one thing always dictates how these things goes down, preferences and ooc wants. If preferences don't line up and people don't agree to do winner/loser scene it becomes sentient prize on list. And someone cant win a prize if the prize ooc doesn't want to do what the winner wants to do. We still wish people to try and reach out and try things with new people and/or new things they are comfortable doing, but never shall anyone be forced into a situation they don't want!)) - "} \ No newline at end of file + "} diff --git a/code/modules/casino/casino_prize_vendor.dm b/code/modules/casino/casino_prize_vendor.dm new file mode 100644 index 0000000000..6bf70bb763 --- /dev/null +++ b/code/modules/casino/casino_prize_vendor.dm @@ -0,0 +1,351 @@ + +//Original Casino Code created by Shadowfire117#1269 - Ported from CHOMPstation +//Modified by GhostActual#2055 for use with VOREstation + +// Use this define to register a prize! +// * n - The proper name of the purchasable +// * o - The object type path of the purchasable to spawn +// * r - The amount to dispense +// * p - The price of the purchasable in chips +// * l - The restriction of the item +#define CASINO_PRIZE(n, o, r, p, l) n = new /datum/data/casino_prize(n, o, r, p, l) + +/datum/data/casino_prize + var/equipment_path = null + var/equipment_amt = 1 + var/cost = 0 + var/category = null + var/restriction = null + +/datum/data/casino_prize/New(name, path, amt, cost, restriction) + src.name = name + src.equipment_path = path + src.equipment_amt = amt + src.cost = cost + src.category = category + src.restriction = restriction + +/obj/machinery/casino_prize_dispenser + name = "Casino Prize Exchanger" + desc = "Exchange your chips to obtain wonderful prizes! Hoepfully you'll get to keep some of them for a while." + icon = 'icons/obj/casino.dmi' + icon_state ="casino_prize_dispenser" + var/icon_vend ="casino_prize_dispenser-vend" + anchored = 1 + density = 1 + opacity = 0 + var/list/item_list + + clicksound = "button" + var/vending_sound = "machines/vending/vending_drop.ogg" + + // Power + use_power = USE_POWER_IDLE + idle_power_usage = 10 + var/vend_power_usage = 150 //actuators and stuff + + // Vending-related + var/datum/data/casino_prize/currently_vending = null // What we're requesting payment for right now + var/list/log = list() //Log only SS13 staff is allowed to look at, CKEYS are listed here for record keeping of prizes and players for events! + + var/category_weapons = 2 //For listing categories, if false then prizes of this categories cant be obtained nor bought for post-shift enjoyment + var/category_gear = 2 //If 1 prizes will be only logged + var/category_clothing = 2 //If 2 prizes will both be logged and spawned + var/category_misc = 2 + var/category_drinks = 2 + var/category_implants = 1 + var/category_event = 1 //For special events, holidays, etc + +/obj/machinery/casino_prize_dispenser/Initialize() + . = ..() + power_change() + + item_list = list() + item_list["Weapons"] = list( + CASINO_PRIZE("Scepter", /obj/item/weapon/scepter, 1, 2500, "weapons"), + CASINO_PRIZE("Rapier", /obj/item/weapon/melee/rapier, 1, 3000, "weapons"), + CASINO_PRIZE("Chain of Command", /obj/item/weapon/melee/chainofcommand, 1, 1250, "weapons"), + CASINO_PRIZE("Golden Bat", /obj/item/weapon/material/twohanded/baseballbat/gold, 1, 1000, "weapons"), + CASINO_PRIZE("Size Gun", /obj/item/weapon/gun/energy/sizegun, 1, 1500, "weapons"), + CASINO_PRIZE("Gradual Size Gun", /obj/item/device/slow_sizegun, 1, 1500, "weapons"), + CASINO_PRIZE("Metamorphosis Ray", /obj/item/weapon/gun/energy/mouseray/metamorphosis, 1, 6000, "weapons"), + CASINO_PRIZE("Net Gun", /obj/item/weapon/gun/energy/netgun, 1, 3000, "weapons"), + ) + item_list["Gear"] = list( + CASINO_PRIZE("Experimental Welder", /obj/item/weapon/weldingtool/experimental, 1, 500, "gear"), + CASINO_PRIZE("Chemsprayer", /obj/item/weapon/reagent_containers/spray/chemsprayer, 1, 1250, "gear"), + CASINO_PRIZE("Bluespace Beaker", /obj/item/weapon/reagent_containers/glass/beaker/bluespace, 1, 1000, "gear"), + CASINO_PRIZE("Cryo Beaker", /obj/item/weapon/reagent_containers/glass/beaker/noreact, 1, 1000, "gear"), + CASINO_PRIZE("Golden Pickaxe", /obj/item/weapon/pickaxe/gold, 1, 1000, "gear"), + ) + item_list["Clothing"] = list( + CASINO_PRIZE("Shark mask", /obj/item/clothing/mask/shark, 1, 250, "clothing"), + CASINO_PRIZE("Pig mask", /obj/item/clothing/mask/pig, 1, 250, "clothing"), + CASINO_PRIZE("Luchador mask", /obj/item/clothing/mask/luchador, 1, 250, "clothing"), + CASINO_PRIZE("Horse mask", /obj/item/clothing/mask/horsehead, 1, 250, "clothing"), + CASINO_PRIZE("Goblin mask", /obj/item/clothing/mask/goblin, 1, 250, "clothing"), + CASINO_PRIZE("Fake moustache", /obj/item/clothing/mask/fakemoustache, 1, 250, "clothing"), + CASINO_PRIZE("Dolphin mask", /obj/item/clothing/mask/dolphin, 1, 250, "clothing"), + CASINO_PRIZE("Demon mask", /obj/item/clothing/mask/demon, 1, 250, "clothing"), + CASINO_PRIZE("Chameleon mask", /obj/item/clothing/under/chameleon, 1, 1000, "clothing"), + CASINO_PRIZE("Chameleon tie", /obj/item/clothing/accessory/chameleon, 1, 750, "clothing"), + CASINO_PRIZE("Ian costume", /obj/item/clothing/suit/storage/hooded/costume/ian, 1, 250, "clothing"), + CASINO_PRIZE("Carp costume", /obj/item/clothing/suit/storage/hooded/costume/carp, 1, 250, "clothing"), + CASINO_PRIZE("Plague doctor costume", /obj/item/weapon/storage/box/casino/costume_plaguedoctor, 1, 500, "clothing"), + CASINO_PRIZE("Wizard costume", /obj/item/weapon/storage/box/casino/costume_wizard, 1, 500, "clothing"), + CASINO_PRIZE("Pirate costume", /obj/item/weapon/storage/box/casino/costume_pirate, 1, 500, "clothing"), + CASINO_PRIZE("Commie costume", /obj/item/weapon/storage/box/casino/costume_commie, 1, 500, "clothing"), + CASINO_PRIZE("Marine costume", /obj/item/weapon/storage/box/casino/costume_marine, 1, 500, "clothing"), + CASINO_PRIZE("Cowboy costume", /obj/item/weapon/storage/box/casino/costume_cowboy, 1, 500, "clothing"), + CASINO_PRIZE("Golden Collar", /obj/item/clothing/accessory/collar/gold, 1, 250, "clothing"), + CASINO_PRIZE("Decorative Casino Sentient Prize Collar", /obj/item/clothing/accessory/collar/casinosentientprize_fake, 1, 100, "clothing"), + ) + item_list["Donk Soft"] = list( + CASINO_PRIZE("Donk-Soft shotgun", /obj/item/weapon/gun/projectile/shotgun/pump/toy, 1, 1000, "misc"), + CASINO_PRIZE("Donk-Soft mosin-nagant", /obj/item/weapon/gun/projectile/shotgun/pump/toy/moistnugget, 1, 1000, "misc"), + CASINO_PRIZE("Donk-Soft pistol", /obj/item/weapon/gun/projectile/pistol/toy, 1, 800, "misc"), + CASINO_PRIZE("Donk-Soft levergun", /obj/item/weapon/gun/projectile/shotgun/pump/toy/levergun, 1, 1000, "misc"), + CASINO_PRIZE("Donk-Soft commemorative pistol", /obj/item/weapon/gun/projectile/pistol/toy/n99, 1, 750, "misc"), + CASINO_PRIZE("Donk-Soft revolver", /obj/item/weapon/gun/projectile/revolver/toy, 1, 750, "misc"), + CASINO_PRIZE("Donk-Soft big-iron", /obj/item/weapon/gun/projectile/revolver/toy/big_iron, 1, 750, "misc"), + CASINO_PRIZE("Donk-Soft crossbow", /obj/item/weapon/gun/projectile/revolver/toy/crossbow, 1, 600, "misc"), + CASINO_PRIZE("Donk-Soft sawn off shotgun", /obj/item/weapon/gun/projectile/revolver/toy/sawnoff, 1, 800, "misc"), + CASINO_PRIZE("Donk-Soft SMG", /obj/item/weapon/gun/projectile/automatic/toy, 1, 1200, "misc"), + CASINO_PRIZE("Foam Darts", /obj/item/ammo_magazine/ammo_box/foam, 1, 100, "misc"), + CASINO_PRIZE("Riot Darts", /obj/item/ammo_magazine/ammo_box/foam/riot, 1, 200, "misc"), + ) + item_list["Miscellaneous"] = list( + CASINO_PRIZE("Winner's Medal", /obj/item/clothing/accessory/medal/gold/casino, 1, 30000, "misc"), + CASINO_PRIZE("Golden ID card", /obj/item/weapon/card/id/gold, 1, 1000, "misc"), + CASINO_PRIZE("Gold-trimmed pen", /obj/item/weapon/pen/fountain5, 1, 50, "misc"), + CASINO_PRIZE("Golden pen", /obj/item/weapon/pen/fountain7, 1, 350, "misc"), + CASINO_PRIZE("Toy sword", /obj/item/toy/sword, 1, 200, "misc"), + CASINO_PRIZE("Waterflower", /obj/item/weapon/reagent_containers/spray/waterflower, 1, 100, "misc"), + CASINO_PRIZE("Horse stick", /obj/item/toy/stickhorse, 1, 100, "misc"), + CASINO_PRIZE("Toy katana", /obj/item/toy/katana, 1, 200, "misc"), + CASINO_PRIZE("Magic conch", /obj/item/toy/eight_ball/conch, 1, 100, "misc"), + CASINO_PRIZE("Magic eight ball", /obj/item/toy/eight_ball, 1, 100, "misc"), + CASINO_PRIZE("Foam sword", /obj/item/weapon/material/sword/foam, 1, 200, "misc"), + CASINO_PRIZE("Whistle", /obj/item/toy/bosunwhistle, 1, 100, "misc"), + CASINO_PRIZE("Golden cup", /obj/item/weapon/reagent_containers/food/drinks/golden_cup, 1, 250, "misc"), + CASINO_PRIZE("Quality cigars", /obj/item/weapon/storage/fancy/cigar/havana, 1, 100, "misc"), + CASINO_PRIZE("Golden zippo lighter", /obj/item/weapon/flame/lighter/zippo/gold, 1, 100, "misc"), + CASINO_PRIZE("Candelabra", /obj/item/weapon/flame/candle/candelabra/everburn, 1, 400, "misc"), + CASINO_PRIZE("Casino wallet", /obj/item/weapon/storage/wallet/casino, 1, 200, "misc"), + CASINO_PRIZE("Casino cards", /obj/item/weapon/deck/cards/casino, 1, 200, "misc"), + CASINO_PRIZE("Instrument: Accordion", /obj/item/instrument/accordion, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Banjo", /obj/item/instrument/banjo, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Musical bikehorn", /obj/item/instrument/bikehorn, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Electric guitar", /obj/item/instrument/eguitar, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Glockenspiel", /obj/item/instrument/glockenspiel, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Guitar", /obj/item/instrument/guitar, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Harmonica", /obj/item/instrument/harmonica, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Synthethic Piano", /obj/item/instrument/piano_synth, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Recorder", /obj/item/instrument/recorder, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Saxophone", /obj/item/instrument/saxophone, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Trombone", /obj/item/instrument/trombone, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Trumpet", /obj/item/instrument/trumpet, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Violin", /obj/item/instrument/violin, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Xylophone", /obj/item/instrument/xylophone, 1, 500, "misc"), + CASINO_PRIZE("Instrument: Golden fiddle", /obj/item/instrument/violin/golden, 1, 1500, "misc"), + CASINO_PRIZE("Instrument: Trumpet (warning: spooky)", /obj/item/instrument/trumpet/spectral, 1, 1000, "misc"), + CASINO_PRIZE("Instrument: Trombone (warning: spooky)", /obj/item/instrument/trombone/spectral, 1, 1000, "misc"), + CASINO_PRIZE("Instrument: Saxophone (warning: spooky)", /obj/item/instrument/saxophone/spectral, 1, 1000, "misc"), + CASINO_PRIZE("Instrument: Musical Moth (you monster)", /obj/item/instrument/musicalmoth, 1, 500, "misc"), + ) + item_list["Drinks"] = list( + CASINO_PRIZE("Redeemer's brew", /obj/item/weapon/reagent_containers/food/drinks/bottle/redeemersbrew, 1, 150, "drinks"), + CASINO_PRIZE("Poison wine", /obj/item/weapon/reagent_containers/food/drinks/bottle/pwine, 1, 150, "drinks"), + CASINO_PRIZE("Patron", /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, 1, 150, "drinks"), + CASINO_PRIZE("Holy water", /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, 1, 150, "drinks"), + CASINO_PRIZE("Goldschlager", /obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager, 1, 150, "drinks"), + CASINO_PRIZE("Champagne", /obj/item/weapon/reagent_containers/food/drinks/bottle/champagne, 1, 150, "drinks"), + CASINO_PRIZE("Bottle of Nothing", /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing, 1, 150, "drinks"), + CASINO_PRIZE("Whiskey bliss", /obj/item/weapon/reagent_containers/food/drinks/bottle/specialwhiskey, 1, 150, "drinks"), + ) + item_list["Pets"] = list( + CASINO_PRIZE("Cat", /obj/item/weapon/grenade/spawnergrenade/casino, 1, 700, "pets"), + CASINO_PRIZE("Chicken", /obj/item/weapon/grenade/spawnergrenade/casino/chicken, 1, 700, "pets"), + CASINO_PRIZE("Cow", /obj/item/weapon/grenade/spawnergrenade/casino/cow, 1, 700, "pets"), + CASINO_PRIZE("Corgi", /obj/item/weapon/grenade/spawnergrenade/casino/corgi, 1, 900, "pets"), + CASINO_PRIZE("Fox", /obj/item/weapon/grenade/spawnergrenade/casino/fox, 1, 700, "pets"), + CASINO_PRIZE("Red panda", /obj/item/weapon/grenade/spawnergrenade/casino/redpanda, 1, 1200, "pets"), + CASINO_PRIZE("Otie", /obj/item/weapon/grenade/spawnergrenade/casino/otie, 1, 1500, "pets"), + CASINO_PRIZE("Snake", /obj/item/weapon/grenade/spawnergrenade/casino/snake, 1, 900, "pets"), + CASINO_PRIZE("Penguin", /obj/item/weapon/grenade/spawnergrenade/casino/penguin, 1, 900, "pets"), + CASINO_PRIZE("Fennec", /obj/item/weapon/grenade/spawnergrenade/casino/fennec, 1, 1200, "pets"), + CASINO_PRIZE("Bird", /obj/item/weapon/grenade/spawnergrenade/casino/goldcrest, 1, 1500, "pets"), + CASINO_PRIZE("Capture Crystal", /obj/item/capture_crystal, 1, 3000, "pets"), + ) + +/obj/machinery/casino_prize_dispenser/power_change() + ..() + if(stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + else + if(!(stat & NOPOWER)) + icon_state = initial(icon_state) + else + spawn(rand(0, 15)) + icon_state = "[initial(icon_state)]-off" + +/obj/machinery/casino_prize_dispenser/attack_hand(mob/user as mob) + if(stat & (BROKEN|NOPOWER)) + return + tgui_interact(user) + +/obj/machinery/casino_prize_dispenser/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(currently_vending) + if(istype(W, /obj/item/weapon/spacecasinocash)) + to_chat(usr, "Please select prize on display with sufficient amount of chips.") + else + SStgui.update_uis(src) + return // don't smack that machine with your 2 chips + + if(istype(W, /obj/item/weapon/spacecasinocash)) + attack_hand(user) + return + ..() + +/obj/machinery/casino_prize_dispenser/proc/pay_with_chips(var/obj/item/weapon/spacecasinocash/cashmoney, mob/user, var/price) + //"cashmoney_:[cashmoney] user:[user] currently_vending:[currently_vending]" + if(price > cashmoney.worth) + to_chat(usr, "\icon[cashmoney] That is not enough chips.") + return 0 + + if(istype(cashmoney, /obj/item/weapon/spacecasinocash)) + visible_message("\The [usr] inserts some chips into \the [src].") + cashmoney.worth -= price + + if(cashmoney.worth <= 0) + usr.drop_from_inventory(cashmoney) + qdel(cashmoney) + else + cashmoney.update_icon() + return 1 + +/obj/machinery/casino_prize_dispenser/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/vending), + ) + +/obj/machinery/casino_prize_dispenser/tgui_data(mob/user) + var/list/data[0] + + data["items"] = list() + for(var/cat in item_list) + var/list/cat_items = list() + for(var/prize_name in item_list[cat]) + var/datum/data/casino_prize/prize = item_list[cat][prize_name] + cat_items[prize_name] = list("name" = prize_name, "price" = prize.cost, "restriction" = prize.restriction) + data["items"][cat] = cat_items + return data + +/obj/machinery/casino_prize_dispenser/tgui_interact(mob/user, datum/tgui/ui = null) + // Open the window + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CasinoPrizeDispenser", name) + ui.open() + +/obj/machinery/casino_prize_dispenser/tgui_act(action, params) + if(stat & (BROKEN|NOPOWER)) + return + if(usr.stat || usr.restrained()) + return + if(..()) + return TRUE + . = TRUE + switch(action) + if("purchase") + var/paid = FALSE + var/category = params["cat"] + var/restriction_category = params["restriction"] + var/restriction_check = 0 + var/item_given = FALSE + var/name = params["name"] + var/price = params["price"] + var/datum/data/casino_prize/bi = item_list[category][name] + switch(restriction_category) + if("weapons") + restriction_check = category_weapons + if("gear") + restriction_check = category_gear + if("clothing") + restriction_check = category_clothing + if("misc") + restriction_check = category_misc + if("drinks") + restriction_check = category_drinks + if("implants") + restriction_check = category_implants + if("event") + restriction_check = category_event + else + to_chat(usr, "Prize checkout error has occurred, purchase cancelled.") + return FALSE + + if(restriction_check < 1) + to_chat(usr, "[name] is restricted, this prize can't be bought.") + return FALSE + if(restriction_check > 1) + item_given = TRUE + + if(price <= 0 && item_given == TRUE) + vend(bi, usr) + return TRUE + + currently_vending = bi + + if(istype(usr.get_active_hand(), /obj/item/weapon/spacecasinocash)) + var/obj/item/weapon/spacecasinocash/cash = usr.get_active_hand() + paid = pay_with_chips(cash, usr, price) + else + to_chat(usr, "Payment failure: Improper payment method, please provide chips.") + return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update. + if(paid) + if(item_given == TRUE) + vend(bi, usr) + + speak("Thank you for your purchase, your [bi] has been logged.") + do_logging(currently_vending, usr, bi) + . = TRUE + else + to_chat(usr, "Payment failure: unable to process payment.") + +/obj/machinery/casino_prize_dispenser/proc/vend(datum/data/casino_prize/bi, mob/user) + SStgui.update_uis(src) + + if(ispath(bi.equipment_path, /obj/item/stack)) + new bi.equipment_path(loc, bi.equipment_amt) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + return TRUE + + for(var/i in 1 to bi.equipment_amt) + new bi.equipment_path(loc) + playsound(src, 'sound/machines/vending/vending_drop.ogg', 100, 1) + + currently_vending = null + use_power(vend_power_usage) //actuators and stuff + flick("[icon_state]-vend",src) + + +/obj/machinery/casino_prize_dispenser/proc/do_logging(item, mob/user, datum/data/casino_prize/bi) + var/prize_log = "{ckey:[user.ckey]character_name:[user.name]item_path: [bi.equipment_path]}" + log[++log.len] = prize_log + //Currently doesnt have an ingame way to show. Can only be viewed through View-Variables, to ensure theres no chance of players ckeys exposed - Jack + +/obj/machinery/casino_prize_dispenser/proc/speak(var/message) + if(stat & NOPOWER) + return + + if(!message) + return + + for(var/mob/O in hearers(src, null)) + O.show_message("\The [src] beeps, \"[message]\"",2) + return + +/obj/machinery/casino_prize_dispenser/process() //Might not need this, but just to be safe for now + if(stat & (BROKEN|NOPOWER)) + return diff --git a/code/modules/catalogue/catalogue_data.dm b/code/modules/catalogue/catalogue_data.dm index 5293d678f5..06ec601b7f 100644 --- a/code/modules/catalogue/catalogue_data.dm +++ b/code/modules/catalogue/catalogue_data.dm @@ -139,7 +139,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)

    \ Humanity is the primary driving force for rapid space expansion, owing to their strong, expansionist central \ government and opportunistic Trans-Stellar Corporations. The prejudices of the 21st century have mostly \ - given way to bitter divides on the most important issue of the times� technological expansionism, \ + given way to bitter divides on the most important issue of the times- technological expansionism, \ with the major human factions squabbling over their approach to technology in the face of a \ looming singularity.\

    \ @@ -170,7 +170,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new) desc = "The Unathi are a species of large reptilian humanoids hailing from Moghes, in the \ Uueoa-Esa binary star system. Most Unathi live in a semi-rigid clan system, and clan \ enclaves dot the surface of their homeworld. Proud and long-lived, Unathi of all \ - walks of life display a tendency towards perfectionism, and mastery of one�s craft \ + walks of life display a tendency towards perfectionism, and mastery of one's craft \ is greatly respected among them. Despite the aggressive nature of their contact, \ Unathi seem willing, if not eager, to reconcile with humanity, though mutual \ distrust runs rampant among individuals of both groups." @@ -181,7 +181,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new) desc = "Tajaran are a race of humanoid mammalian aliens from Meralar, the fourth planet \ of the Rarkajar star system. Thickly furred and protected from cold, they thrive on \ their subartic planet, where the only terran temperate areas spread across the \ - equator and �tropical belt.�\ + equator and \"tropical belt.\"\

    \ With their own share of bloody wars and great technological advances, the Tajaran are a \ proud kind. They fiercely believe they belong among the stars and consider themselves \ @@ -273,11 +273,11 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new) desc = "A Positronic being, often an Android, Gynoid, or Robot, is an individual with a positronic brain, \ manufactured and fostered amongst organic life Positronic brains enjoy the same legal status as a humans, \ although discrimination is still common, are considered sapient on all accounts, and can be considered \ - the �synthetic species�. Half-developed and half-discovered in the 2280�s by a black lab studying alien \ + the \"synthetic species\". Half-developed and half-discovered in the 2280's by a black lab studying alien \ artifacts, the first positronic brain was an inch-wide cube of palladium-iridium alloy, nano-etched with \ billions upon billions of conduits and connections. Upon activation, hard-booted by way of an emitter \ laser, the brain issued a single sentence before the neural pathways collapsed and it became an inert \ - lump of platinum: �What is my purpose?�." + lump of platinum: \"What is my purpose?\"." value = CATALOGUER_REWARD_TRIVIAL /datum/category_item/catalogue/technology/cyborgs @@ -423,7 +423,7 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new)

    \ It should be noted that the findings in this group appear to conflict heavily with what is \ known about the Singularitarians, giving some credence towards these objects belonging to a \ - seperate precursor. As such, the findings have been partitioned inside this scanner to this \ + separate precursor. As such, the findings have been partitioned inside this scanner to this \ group, labeled Precursor Group Alpha." value = CATALOGUER_REWARD_TRIVIAL unlocked_by_any = list(/datum/category_item/catalogue/anomalous/precursor_a) @@ -435,5 +435,3 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new) /datum/category_item/catalogue/material - - diff --git a/code/modules/catalogue/cataloguer.dm b/code/modules/catalogue/cataloguer.dm index 31bd557e1e..36d78ff7cf 100644 --- a/code/modules/catalogue/cataloguer.dm +++ b/code/modules/catalogue/cataloguer.dm @@ -18,7 +18,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers) description_info = "This is a special device used to obtain information about objects and entities in the environment. \ To scan something, click on it with the scanner at a distance. \ Scanning something requires remaining within a certain radius of the object for a specific period of time, until the \ - scan is finished. If the scan is inturrupted, it can be resumed from where it was left off, if the same thing is \ + scan is finished. If the scan is interrupted, it can be resumed from where it was left off, if the same thing is \ scanned again." icon = 'icons/obj/device.dmi' icon_state = "cataloguer" diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index e30922dacf..e7532ac19a 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -186,8 +186,7 @@ GLOB.clients += src GLOB.directory[ckey] = src - GLOB.ahelp_tickets.ClientLogin(src) - GLOB.mhelp_tickets.ClientLogin(src) + GLOB.tickets.ClientLogin(src) // CHOMPedit - Tickets System //Admin Authorisation holder = admin_datums[ckey] @@ -231,7 +230,7 @@ if(holder) add_admin_verbs() admin_memo_show() - message_admins("Admin login: [key_name(src)]") // CHOMPEdit: Admin Login Notice + message_admins("Staff login: [key_name(src)]") // CHOMPEdit: Admin Login Notice //Edit2: This logs more than just admins so why not change it // Forcibly enable hardware-accelerated graphics, as we need them for the lighting overlays. // (but turn them off first, since sometimes BYOND doesn't turn them on properly otherwise) @@ -280,8 +279,7 @@ if (mentorholder) mentorholder.owner = null GLOB.mentors -= src - GLOB.ahelp_tickets.ClientLogout(src) - GLOB.mhelp_tickets.ClientLogout(src) + GLOB.tickets.ClientLogout(src) // CHOMPedit - Tickets System GLOB.directory -= ckey GLOB.clients -= src return ..() @@ -458,7 +456,7 @@ src << browse('code/modules/asset_cache/validate_assets.html', "window=asset_cache_browser") //Precache the client with all other assets slowly, so as to not block other browse() calls - addtimer(CALLBACK(GLOBAL_PROC, /proc/getFilesSlow, src, SSassets.preload, FALSE), 5 SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(getFilesSlow), src, SSassets.preload, FALSE), 5 SECONDS) /mob/proc/MayRespawn() return 0 diff --git a/code/modules/client/preference_setup/general/02_language.dm b/code/modules/client/preference_setup/general/02_language.dm index a85c62b232..395250c9f4 100644 --- a/code/modules/client/preference_setup/general/02_language.dm +++ b/code/modules/client/preference_setup/general/02_language.dm @@ -1,6 +1,6 @@ /datum/preferences var/extra_languages = 0 - var/preferred_language = "common" // CHOMPStation Edit: Allow selecting a preferred language + var/preferred_language = "common" // VOREStation Edit: Allow selecting a preferred language /datum/category_item/player_setup_item/general/language name = "Language" @@ -15,8 +15,10 @@ S["language_prefixes"] >> pref.language_prefixes //CHOMPEdit Begin S["species"] >> pref.species - S["preflang"] >> pref.preferred_language //CHOMPEdit End + //VORE Edit Begin + S["preflang"] >> pref.preferred_language + //VORE Edit End S["language_custom_keys"] >> pref.language_custom_keys /datum/category_item/player_setup_item/general/language/save_character(var/savefile/S) @@ -26,7 +28,7 @@ testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") S["language_prefixes"] << pref.language_prefixes S["language_custom_keys"] << pref.language_custom_keys - S["preflang"] << pref.preferred_language // CHOMPStation Edit + S["preflang"] << pref.preferred_language // VOREStation Edit /datum/category_item/player_setup_item/general/language/sanitize_character() if(!islist(pref.alternate_languages)) pref.alternate_languages = list() @@ -38,10 +40,10 @@ testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])") pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length - // CHOMPStation Edit Start + // VOREStation Edit Start if(!(pref.preferred_language in pref.alternate_languages) || !pref.preferred_language) // Safety handling for if our preferred language is ever somehow removed from the character's list of langauges, or they don't have one set pref.preferred_language = S.language // Reset to default, for safety - // CHOMPStation Edit end + // VOREStation Edit end // Sanitize illegal languages for(var/language in pref.alternate_languages) @@ -87,7 +89,7 @@ . += "Language Keys
    " . += " [jointext(pref.language_prefixes, " ")] Change Reset
    " - . += "Preferred Language [pref.preferred_language]
    " // CHOMPStation Add + . += "Preferred Language [pref.preferred_language]
    " // VOREStation Add /datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user) if(href_list["remove_language"]) @@ -175,11 +177,11 @@ return TOPIC_REFRESH - // CHOMPStation Add: Preferred Language + // VOREStation Add: Preferred Language else if(href_list["pref_lang"]) if(pref.species) // Safety to prevent a null runtime here var/datum/species/S = GLOB.all_species[pref.species] - var/list/lang_opts = list(S.language) + pref.alternate_languages + var/list/lang_opts = list(S.language) + pref.alternate_languages + LANGUAGE_GALCOM var/selection = tgui_input_list(user, "Choose your preferred spoken language:", "Preferred Spoken Language", lang_opts, pref.preferred_language) if(!selection) // Set our preferred to default, just in case. tgui_alert_async(user, "Preferred Language not modified.", "Selection Canceled") @@ -190,7 +192,7 @@ else // Did they set anything else? tgui_alert_async(user, "You will now speak [pref.preferred_language] if you do not specify a language when speaking.", "Preferred Language Set") return TOPIC_REFRESH - // CHOMPStation Add End + // VOREStation Add End return ..() diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm index dc4e0ebf1e..d229bf8afe 100644 --- a/code/modules/client/preference_setup/global/setting_datums.dm +++ b/code/modules/client/preference_setup/global/setting_datums.dm @@ -163,6 +163,12 @@ var/list/_client_preferences_by_type enabled_description = "Audible" disabled_description = "Silent" +/datum/client_preference/fridge_hum // CHOMPStation Add: Misc Sounds + description ="Fridge Humming" + key = "SOUND_FRIDGEHUM" + enabled_description = "Audible" + disabled_description = "Silent" + /datum/client_preference/old_door_sounds description ="Old Door Sounds" key = "SOUND_OLDDOORS" diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index fe56eea868..b3ea8d1b69 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -6,25 +6,27 @@ slot = slot_gloves sort_category = "Gloves and Handwear" -/datum/gear/gloves/blue - display_name = "gloves, blue" - path = /obj/item/clothing/gloves/blue +/datum/gear/gloves/selector + display_name = "coloured gloves selector" + description = "Pick from a range of plain coloured gloves." + path = /obj/item/clothing/gloves/black -/datum/gear/gloves/brown - display_name = "gloves, brown" - path = /obj/item/clothing/gloves/brown - -/datum/gear/gloves/light_brown - display_name = "gloves, light-brown" - path = /obj/item/clothing/gloves/light_brown - -/datum/gear/gloves/green - display_name = "gloves, green" - path = /obj/item/clothing/gloves/green - -/datum/gear/gloves/grey - display_name = "gloves, grey" - path = /obj/item/clothing/gloves/grey +/datum/gear/gloves/selector/New() + ..() + var/list/selector_uniforms = list( + "black"=/obj/item/clothing/gloves/black, + "blue"=/obj/item/clothing/gloves/blue, + "brown"=/obj/item/clothing/gloves/brown, + "light brown"=/obj/item/clothing/gloves/light_brown, + "green"=/obj/item/clothing/gloves/green, + "grey"=/obj/item/clothing/gloves/grey, + "orange"=/obj/item/clothing/gloves/orange, + "purple"=/obj/item/clothing/gloves/purple, + "rainbow"=/obj/item/clothing/gloves/rainbow, + "red"=/obj/item/clothing/gloves/red, + "white"=/obj/item/clothing/gloves/white + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/gloves/latex display_name = "gloves, latex" @@ -36,26 +38,6 @@ path = /obj/item/clothing/gloves/sterile/nitrile cost = 2 -/datum/gear/gloves/orange - display_name = "gloves, orange" - path = /obj/item/clothing/gloves/orange - -/datum/gear/gloves/purple - display_name = "gloves, purple" - path = /obj/item/clothing/gloves/purple - -/datum/gear/gloves/rainbow - display_name = "gloves, rainbow" - path = /obj/item/clothing/gloves/rainbow - -/datum/gear/gloves/red - display_name = "gloves, red" - path = /obj/item/clothing/gloves/red - -/datum/gear/gloves/white - display_name = "gloves, white" - path = /obj/item/clothing/gloves/white - /datum/gear/gloves/evening display_name = "evening gloves" path = /obj/item/clothing/gloves/evening diff --git a/code/modules/client/preference_setup/loadout/loadout_head.dm b/code/modules/client/preference_setup/loadout/loadout_head.dm index 4f1c06a71a..7d3de40ee7 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head.dm @@ -16,11 +16,6 @@ display_name = "beret, red" path = /obj/item/clothing/head/beret -/datum/gear/head/beret/bsec - display_name = "beret, navy (officer)" - path = /obj/item/clothing/head/beret/sec/navy/officer - allowed_roles = list("Security Officer","Head of Security","Warden","Blueshield Guard","Security Pilot") //YW ADDITIONS - /datum/gear/head/beret/bsec_warden display_name = "beret, navy (warden)" path = /obj/item/clothing/head/beret/sec/navy/warden @@ -31,11 +26,6 @@ path = /obj/item/clothing/head/beret/sec/navy/hos allowed_roles = list("Head of Security") -/datum/gear/head/beret/csec - display_name = "beret, corporate (officer)" - path = /obj/item/clothing/head/beret/sec/corporate/officer - allowed_roles = list("Security Officer","Head of Security","Warden", "Detective","Blueshield Guard","Security Pilot") //YW ADDITIONS - /datum/gear/head/beret/csec_warden display_name = "beret, corporate (warden)" path = /obj/item/clothing/head/beret/sec/corporate/warden @@ -54,70 +44,34 @@ display_name = "beret, purple" path = /obj/item/clothing/head/beret/purple -/datum/gear/head/beret/sec - display_name = "beret, red (security)" - path = /obj/item/clothing/head/beret/sec - allowed_roles = list("Security Officer","Head of Security","Warden", "Detective","Blueshield Guard","Security Pilot") //YW ADDITIONS - /datum/gear/head/cap - display_name = "cap, black" + display_name = "cap, brown-flat" + path = /obj/item/clothing/head/flatcap + +/datum/gear/head/cap/selector + display_name = "cap selector (plain)" + description = "Pick from a range of plain, coloured softcaps. Includes black, blue, green, and more!" path = /obj/item/clothing/head/soft/black -/datum/gear/head/cap/blue - display_name = "cap, blue" - path = /obj/item/clothing/head/soft/blue +/datum/gear/head/cap/selector/New() + ..() + var/list/selector_uniforms = list( + "black"=/obj/item/clothing/head/soft/black, + "blue"=/obj/item/clothing/head/soft/blue, + "green"=/obj/item/clothing/head/soft/green, + "grey"=/obj/item/clothing/head/soft/grey, + "orange"=/obj/item/clothing/head/soft/orange, + "purple"=/obj/item/clothing/head/soft/purple, + "rainbow"=/obj/item/clothing/head/soft/rainbow, + "red"=/obj/item/clothing/head/soft/red, + "yellow"=/obj/item/clothing/head/soft/yellow + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/head/cap/mailman display_name = "cap, blue station" path = /obj/item/clothing/head/mailman -/datum/gear/head/cap/flat - display_name = "cap, brown-flat" - path = /obj/item/clothing/head/flatcap - -/datum/gear/head/cap/corp - display_name = "cap, corporate (Security)" - path = /obj/item/clothing/head/soft/sec/corp - allowed_roles = list("Security Officer","Head of Security","Warden", "Detective","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/head/cap/green - display_name = "cap, green" - path = /obj/item/clothing/head/soft/green - -/datum/gear/head/cap/grey - display_name = "cap, grey" - path = /obj/item/clothing/head/soft/grey - -/datum/gear/head/cap/med - display_name = "cap, medical (Medical)" - path = /obj/item/clothing/head/soft/med - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Search and Rescue") - -/datum/gear/head/cap/orange - display_name = "cap, orange" - path = /obj/item/clothing/head/soft/orange - -/datum/gear/head/cap/purple - display_name = "cap, purple" - path = /obj/item/clothing/head/soft/purple - -/datum/gear/head/cap/rainbow - display_name = "cap, rainbow" - path = /obj/item/clothing/head/soft/rainbow - -/datum/gear/head/cap/red - display_name = "cap, red" - path = /obj/item/clothing/head/soft/red - -/datum/gear/head/cap/sec - display_name = "cap, security (Security)" - path = /obj/item/clothing/head/soft/sec - allowed_roles = list("Security Officer","Head of Security","Warden", "Detective","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/head/cap/yellow - display_name = "cap, yellow" - path = /obj/item/clothing/head/soft/yellow - /datum/gear/head/cap/white display_name = "cap (colorable)" path = /obj/item/clothing/head/soft/mime @@ -134,69 +88,45 @@ ..() gear_tweaks += gear_tweak_free_color_choice -/datum/gear/head/cap/mbill - display_name = "cap, major bill's" - path = /obj/item/clothing/head/soft/mbill - /datum/gear/head/cap/sol display_name = "cap, sol" path = /obj/item/clothing/head/soft/solgov /datum/gear/head/cowboy - display_name = "cowboy" + display_name = "cowboy hat selector" + description = "Pick from a range of styles of classic cowboy hat. Giddyup!" path = /obj/item/clothing/head/cowboy -/datum/gear/head/cowboy/rattan - display_name = "cowboy, rattan" - path = /obj/item/clothing/head/cowboy/rattan - -/datum/gear/head/cowboy/dark - display_name = "cowboy, dark" - path = /obj/item/clothing/head/cowboy/dark - -/datum/gear/head/cowboy/ranger - display_name = "cowboy, ranger" - path = /obj/item/clothing/head/cowboy/ranger - -/datum/gear/head/cowboy/black - display_name = "cowboy, black" - path = /obj/item/clothing/head/cowboy/black - -/datum/gear/head/cowboy/fancy - display_name = "cowboy, fancy" - path = /obj/item/clothing/head/cowboy/fancy - -/datum/gear/head/cowboy/rustler - display_name = "cowboy, rustler" - path = /obj/item/clothing/head/cowboy/rustler - -/datum/gear/head/cowboy/black - display_name = "cowboy, bandit" - path = /obj/item/clothing/head/cowboy/bandit - -/datum/gear/head/cowboy/wide - display_name = "cowboy, wide" - path = /obj/item/clothing/head/cowboy/wide +/datum/gear/head/cowboy/New() + ..() + var/list/selector_uniforms = list( + "Classic"=/obj/item/clothing/head/cowboy, + "Rattan"=/obj/item/clothing/head/cowboy/rattan, + "Dark"=/obj/item/clothing/head/cowboy/dark, + "Ranger"=/obj/item/clothing/head/cowboy/ranger, + "Black"=/obj/item/clothing/head/cowboy/black, + "Fancy"=/obj/item/clothing/head/cowboy/fancy, + "Rustler's"=/obj/item/clothing/head/cowboy/rustler, + "Bandit's"=/obj/item/clothing/head/cowboy/bandit, + "Wide"=/obj/item/clothing/head/cowboy/wide + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/head/fedora/grey - display_name = "fedora, grey" + display_name = "fedora selector" + description = "Pick from a range of fedoras. Available in grey, white, brown, beige, and panama style." path = /obj/item/clothing/head/fedora -/datum/gear/head/fedora/brown - display_name = "fedora, brown" - path = /obj/item/clothing/head/fedora/brown - -/datum/gear/head/fedora/white - display_name = "fedora, white" - path = /obj/item/clothing/head/fedora/white - -/datum/gear/head/fedora/beige - display_name = "fedora, beige" - path = /obj/item/clothing/head/fedora/beige - -/datum/gear/head/fedora/panama - display_name = "fedora, panama" - path = /obj/item/clothing/head/fedora/panama +/datum/gear/head/fedora/grey/New() + ..() + var/list/selector_uniforms = list( + "Brown"=/obj/item/clothing/head/fedora/brown, + "White"=/obj/item/clothing/head/fedora/white, + "Beige"=/obj/item/clothing/head/fedora/beige, + "Panama"=/obj/item/clothing/head/fedora/panama, + "Grey"=/obj/item/clothing/head/fedora + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/head/hairflower display_name = "hair flower pin (colorable)" @@ -353,27 +283,23 @@ ..() gear_tweaks += gear_tweak_free_color_choice -/datum/gear/head/welding/ - display_name = "welding, normal (engineering/robotics)" +/datum/gear/head/welding + display_name = "welding mask selection" + description = "Select from a range of welding masks (engineering crew/roboticists only)" path = /obj/item/clothing/head/welding cost = 2 allowed_roles = list("Chief Engineer","Engineer","Atmospheric Technician","Research Director","Roboticist") -/datum/gear/head/welding/demon - display_name = "welding, demon (engineering/robotics)" - path = /obj/item/clothing/head/welding/demon - -/datum/gear/head/welding/knight - display_name = "welding, knight (engineering/robotics)" - path = /obj/item/clothing/head/welding/knight - -/datum/gear/head/welding/fancy - display_name = "welding, fancy (engineering/robotics)" - path = /obj/item/clothing/head/welding/fancy - -/datum/gear/head/welding/engie - display_name = "welding, engie (engineering/robotics)" - path = /obj/item/clothing/head/welding/engie +/datum/gear/head/welding/New() + ..() + var/list/selector_uniforms = list( + "plain"=/obj/item/clothing/head/welding, + "engineering"=/obj/item/clothing/head/welding/engie, + "fancy"=/obj/item/clothing/head/welding/fancy, + "demonic"=/obj/item/clothing/head/welding/demon, + "knightly"=/obj/item/clothing/head/welding/knight + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/head/beret/solgov display_name = "beret government, selection" @@ -445,3 +371,38 @@ /datum/gear/head/wheat display_name = "straw hat" path = /obj/item/clothing/head/wheat + +/datum/gear/head/sec_hat_selector + display_name = "Security - Basic Headwear" + description = "Select from a range of hats available to all Security personnel." + allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") + path = /obj/item/clothing/head/soft/sec/corp + +/datum/gear/head/sec_hat_selector/New() + ..() + var/list/selector_uniforms = list( + "Navy Security Beret"=/obj/item/clothing/head/beret/sec/navy/officer, + "CorpSec Beret"=/obj/item/clothing/head/beret/sec/corporate/officer, + "Security Beret"=/obj/item/clothing/head/beret/sec, + "CorpSec Softcap"=/obj/item/clothing/head/soft/sec/corp, + "Security Softcap"=/obj/item/clothing/head/soft/sec, + "Proxima Centauri Contractor Beret"=/obj/item/clothing/head/beret/corp/pcrc + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) + +/datum/gear/head/med_hat_selector + display_name = "Medical - Basic Headwear" + description = "Select from a range of hats available to all Medical personnel." + allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") + path = /obj/item/clothing/head/soft/med + +/datum/gear/head/med_hat_selector/New() + ..() + var/list/selector_uniforms = list( + "medical softcap"=/obj/item/clothing/head/soft/med, + "paramedic softcap"=/obj/item/clothing/head/soft/paramed, + "medical beret"=/obj/item/clothing/head/beret/medical, + "chemist's beret"=/obj/item/clothing/head/beret/medical/chem, + "virologist's beret"=/obj/item/clothing/head/beret/medical/viro + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) diff --git a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm index 084a8e5576..52d81e806d 100644 --- a/code/modules/client/preference_setup/loadout/loadout_head_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_head_vr.dm @@ -1,8 +1,3 @@ -/datum/gear/head/cap/med - display_name = "cap, medical (Medical)" - path = /obj/item/clothing/head/soft/med - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Field Medic") //CHOMP keep explo - /*/datum/gear/head/cap/sol display_name = "cap, sol" path = /obj/item/clothing/head/soft/sol*/ @@ -33,28 +28,21 @@ allowed_roles = list("Head of Security", "Detective") /datum/gear/head/bearpelt - display_name = "brown bear pelt" + display_name = "animal pelt selection" + description = "Select from a range of (probably, hopefully) synthetic/artificial animal pelts." path = /obj/item/clothing/head/pelt -/datum/gear/head/wolfpelt - display_name = "brown wolf pelt" - path = /obj/item/clothing/head/pelt/wolfpelt - -/datum/gear/head/wolfpeltblack - display_name = "black wolf pelt" - path = /obj/item/clothing/head/pelt/wolfpeltblack - -/datum/gear/head/tigerpelt - display_name = "shiny tiger pelt" - path = /obj/item/clothing/head/pelt/tigerpelt - -/datum/gear/head/tigerpeltsnow - display_name = "snow tiger pelt" - path = /obj/item/clothing/head/pelt/tigerpeltsnow - -/datum/gear/head/tigerpeltpink - display_name = "pink tiger pelt" - path = /obj/item/clothing/head/pelt/tigerpeltpink +/datum/gear/head/bearpelt/New() + ..() + var/list/selector_uniforms = list( + "bear, brown"=/obj/item/clothing/head/pelt, + "wolf, brown"=/obj/item/clothing/head/pelt/wolfpelt, + "wolf, black"=/obj/item/clothing/head/pelt/wolfpeltblack, + "tiger, plain"=/obj/item/clothing/head/pelt/tigerpelt, + "tiger, white"=/obj/item/clothing/head/pelt/tigerpeltsnow, + "tiger, pink"=/obj/item/clothing/head/pelt/tigerpeltpink + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/head/magic_hat display_name = "wizard hat, colorable" diff --git a/code/modules/client/preference_setup/loadout/loadout_mask.dm b/code/modules/client/preference_setup/loadout/loadout_mask.dm index 0d82eb0efa..da0a710962 100644 --- a/code/modules/client/preference_setup/loadout/loadout_mask.dm +++ b/code/modules/client/preference_setup/loadout/loadout_mask.dm @@ -74,11 +74,11 @@ for(var/gaiter in typesof(/obj/item/clothing/accessory/gaiter)) var/obj/item/clothing/accessory/gaiter_type = gaiter gaiters[initial(gaiter_type.name)] = gaiter_type - gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, /proc/cmp_text_asc)) + gear_tweaks += new/datum/gear_tweak/path(sortTim(gaiters, GLOBAL_PROC_REF(cmp_text_asc))) /datum/gear/mask/lace display_name = "lace veil" path = /obj/item/clothing/mask/lacemask /datum/gear/mask/lace/New() - gear_tweaks += gear_tweak_free_color_choice \ No newline at end of file + gear_tweaks += gear_tweak_free_color_choice diff --git a/code/modules/client/preference_setup/loadout/loadout_smoking.dm b/code/modules/client/preference_setup/loadout/loadout_smoking.dm index f9442518b2..f855d31ca2 100644 --- a/code/modules/client/preference_setup/loadout/loadout_smoking.dm +++ b/code/modules/client/preference_setup/loadout/loadout_smoking.dm @@ -48,6 +48,6 @@ /datum/gear/cigarettes/New() ..() var/list/cigarettes = list() - for(var/obj/item/weapon/storage/fancy/cigarettes/cigarette_brand as anything in (typesof(/obj/item/weapon/storage/fancy/cigarettes) - typesof(/obj/item/weapon/storage/fancy/cigarettes/killthroat))) + for(var/obj/item/weapon/storage/fancy/cigarettes/cigarette_brand as anything in (typesof(/obj/item/weapon/storage/fancy/cigarettes))) cigarettes[initial(cigarette_brand.name)] = cigarette_brand gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cigarettes)) diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index d0ce7f34db..567fce1ec6 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -31,52 +31,38 @@ path = /obj/item/clothing/suit/jacket/puffer/vest /datum/gear/suit/bomber - display_name = "bomber jacket" + display_name = "bomber jacket selection" + description = "Pick from a small selection of bomber jackets." path = /obj/item/clothing/suit/storage/toggle/bomber -/datum/gear/suit/bomber_alt - display_name = "bomber jacket, alt" - path = /obj/item/clothing/suit/storage/bomber/alt - -/datum/gear/suit/bomber_retro - display_name = "bomber jacket, retro" - path = /obj/item/clothing/suit/storage/toggle/bomber/retro +/datum/gear/suit/bomber/New() + ..() + var/list/selector_uniforms = list( + "classic"=/obj/item/clothing/suit/storage/toggle/bomber, + "classic alternative"=/obj/item/clothing/suit/storage/bomber/alt, + "retro"=/obj/item/clothing/suit/storage/toggle/bomber/retro + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/suit/leather_jacket - display_name = "leather jacket, black" + display_name = "leather jacket and vest selection" + description = "Pick from a wide variety of leather vests and jackets." path = /obj/item/clothing/suit/storage/toggle/leather_jacket -/datum/gear/suit/leather_jacket_sleeveless - display_name = "leather vest, black" - path = /obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless - -/datum/gear/suit/leather_jacket_alt - display_name = "leather jacket 2, black" - path = /obj/item/clothing/suit/storage/leather_jacket_alt - -/datum/gear/suit/leather_jacket_nt - display_name = "leather jacket, corporate, black" - path = /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen - -/datum/gear/suit/leather_jacket_nt/sleeveless - display_name = "leather vest, corporate, black" - path = /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless - -/datum/gear/suit/brown_jacket - display_name = "leather jacket, brown" - path = /obj/item/clothing/suit/storage/toggle/brown_jacket - -/datum/gear/suit/brown_jacket_sleeveless - display_name = "leather vest, brown" - path = /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless - -/datum/gear/suit/brown_jacket_nt - display_name = "leather jacket, corporate, brown" - path = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen - -/datum/gear/suit/brown_jacket_nt/sleeveless - display_name = "leather vest, corporate, brown" - path = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless +/datum/gear/suit/leather_jacket/New() + ..() + var/list/selector_uniforms = list( + "black jacket"=/obj/item/clothing/suit/storage/toggle/leather_jacket, + "black vest"=/obj/item/clothing/suit/storage/toggle/leather_jacket/sleeveless, + "black jacket, alternative"=/obj/item/clothing/suit/storage/leather_jacket_alt, + "black jacket, corporate"=/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen, + "black vest, corporate"=/obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen/sleeveless, + "brown jacket"=/obj/item/clothing/suit/storage/toggle/brown_jacket, + "brown vest"=/obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless, + "brown jacket, corporate"=/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen, + "brown vest, corporate"=/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen/sleeveless + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) //YW EDIT BEGINS /datum/gear/suit/mil @@ -204,17 +190,19 @@ path = /obj/item/clothing/suit/cyberpunk cost = 2 -/datum/gear/suit/puffycoat/blue - display_name = "puffy coat, blue" +/datum/gear/suit/puffycoat + display_name = "puffy coat selection" + description = "Pick from a few different colours of puffy coat." path = /obj/item/clothing/suit/storage/puffyblue -/datum/gear/suit/puffycoat/red - display_name = "puffy coat, red" - path = /obj/item/clothing/suit/storage/puffyred - -/datum/gear/suit/puffycoat/purple - display_name = "puffy coat, purple" - path = /obj/item/clothing/suit/storage/puffypurple +/datum/gear/suit/puffycoat/New() + ..() + var/list/selector_uniforms = list( + "blue"=/obj/item/clothing/suit/storage/puffyblue, + "red"=/obj/item/clothing/suit/storage/puffyred, + "purple"=/obj/item/clothing/suit/storage/puffypurple + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/suit/poncho display_name = "poncho selection" @@ -558,20 +546,19 @@ gear_tweaks += new/datum/gear_tweak/path(flannel) /datum/gear/suit/denim_jacket - display_name = "denim jacket" + display_name = "denim jacket and vest selection" + description = "Select from a small range of denim jackets and vests." path = /obj/item/clothing/suit/storage/toggle/denim_jacket -/datum/gear/suit/denim_jacket/corporate - display_name = "denim jacket, corporate" - path = /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen - -/datum/gear/suit/denim_vest - display_name = "denim vest" - path = /obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless - -/datum/gear/suit/denim_vest/corporate - display_name = "denim vest, corporate" - path = /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless +/datum/gear/suit/denim_jacket/New() + ..() + var/list/selector_uniforms = list( + "denim jacket"=/obj/item/clothing/suit/storage/toggle/denim_jacket, + "denim jacket, corporate"=/obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen, + "denim vest"=/obj/item/clothing/suit/storage/toggle/denim_jacket/sleeveless, + "denim vest, corporate"=/obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless + ) + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) /datum/gear/suit/miscellaneous/dep_jacket display_name = "department jacket selection" diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index 5907146259..b55f67b301 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -23,7 +23,6 @@ path = /obj/item/clothing/suit/storage/toggle/labcoat/old/tox cost = 2 - /datum/gear/suit/roles/labcoat_old/New() ..() var/list/labcoats = list( @@ -51,7 +50,7 @@ /datum/gear/suit/old_poncho //This is made from an old sprite which has been here for quite some time. Called old poncho because duplicates display_name = "Colorful poncho" - description = "A mexican looking poncho. It look like it fits wolf taurs as well." + description = "A Mexican looking poncho. It look like it fits wolf taurs as well." path = /obj/item/clothing/suit/poncho //Detective alternative @@ -92,7 +91,6 @@ display_name = "chiton" path = /obj/item/clothing/suit/chiton - //oversized t-shirt /datum/gear/suit/oversize display_name = "oversized t-shirt (colorable)" @@ -109,7 +107,6 @@ Talon winter coat display_name = "winter coat, Talon" path = /obj/item/clothing/suit/storage/hooded/wintercoat/talon - /datum/gear/suit/armor/combat/crusader_explo display_name = "knight, explo" path = /obj/item/clothing/suit/armor/combat/crusader_explo @@ -118,20 +115,14 @@ Talon winter coat /datum/gear/suit/armor/combat/crusader_explo/FM display_name = "knight, Field Medic" path = /obj/item/clothing/suit/armor/combat/crusader_explo/FM - allowed_roles = list ("Field Medic") + allowed_roles = list ("Paramedic") //Atmos-coloured hazard vest display_name = "hazard vest, atmospherics" path = /obj/item/clothing/suit/storage/hazardvest/atmos allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer") -//Long fur coat -/datum/gear/suit/russofurcoat - display_name = "long fur coat" - path = /obj/item/clothing/suit/storage/vest/hoscoat/russofurcoat - //Colorable Hoodie - /datum/gear/suit/hoodie_vr display_name = "hoodie with hood (colorable)" path = /obj/item/clothing/suit/storage/hooded/hoodie @@ -336,4 +327,4 @@ Talon winter coat //ABOUT TIME SOMEONE ADDED THIS TO A LOADOUT /datum/gear/suit/bladerunnercoat display_name = "leather coat, massive" - path = /obj/item/clothing/suit/storage/bladerunner \ No newline at end of file + path = /obj/item/clothing/suit/storage/bladerunner diff --git a/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm b/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm index de8bdf6f97..1a9deee03f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uni_selector.dm @@ -7,7 +7,7 @@ allowed_roles = list("") path = slot = slot_w_uniform - sort_category = "Uniform Selectors" + sort_category = "Uniforms" cost = 2 /datum/gear/uniform/BLANK_selector/New() @@ -24,14 +24,14 @@ description = "Select from a range of outfits available to all Site Managers." allowed_roles = list("Site Manager") path = /obj/item/clothing/under/rank/neo_captain - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/site_manager_selector/New() ..() var/list/selector_uniforms = list( "uniform w/ dress"=/obj/item/clothing/under/dress/dress_cap, - "KHI uniform"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -53,15 +53,15 @@ description = "Select from a range of outfits available to all Heads of Personnel." allowed_roles = list("Head of Personnel") path = /obj/item/clothing/under/rank/neo_hop - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/head_of_personnel_selector/New() ..() var/list/selector_uniforms = list( "uniform w/ dress"=/obj/item/clothing/under/dress/dress_hop, "HR director"=/obj/item/clothing/under/dress/dress_hr, - "KHI uniform"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -84,7 +84,7 @@ description = "Select from a range of outfits available to all Pilots." allowed_roles = list("Pilot") path = /obj/item/clothing/under/rank/neo_pilot - sort_category = "Uniform Selectors" + sort_category = "Uniforms" cost = 1 /datum/gear/uniform/pilot_uniform_selector/New() @@ -102,7 +102,7 @@ description = "Select from a range of outfits available to all Janitorial personnel." allowed_roles = list("Janitor") path = /obj/item/clothing/under/rank/neo_janitor - sort_category = "Uniform Selectors" + sort_category = "Uniforms" cost = 1 /datum/gear/uniform/janitor_uniform_selector/New() @@ -117,13 +117,13 @@ display_name = "Civilian - Basic Uniforms" description = "Select from a range of uniforms available to all personnel. Includes miscellaneous corporate contractor uniforms." path = /obj/item/clothing/under/utility/grey - sort_category = "Uniform Selectors" + sort_category = "Uniforms" cost = 1 /datum/gear/uniform/civvie_uniform_selector/New() ..() var/list/selector_uniforms = list( - "KHI uniform"=/obj/item/clothing/under/rank/khi/civ, + "GE uniform"=/obj/item/clothing/under/rank/khi/civ, //CHOMPEdit, KHI becomes GE "TG&C plain turtleneck"=/obj/item/clothing/under/rank/neo_suspect_turtleneck, "TG&C plain turtleneck w/ skirt"=/obj/item/clothing/under/rank/neo_suspect_turtleskirt, "TG&C blue turtleneck"=/obj/item/clothing/under/rank/neo_suspect_turtleneck_blue, @@ -138,6 +138,7 @@ "Corporate, Focal Point Energistics uniform"=/obj/item/clothing/under/corp/focal, "Corporate, Grayson Manufactories uniform"=/obj/item/clothing/under/corp/grayson, "Corporate, Grayson Manufactories jumpsuit"=/obj/item/clothing/under/corp/grayson_jump, + "Corporate, Kaleidoscope"=/obj/item/clothing/under/corp/kaleidoscope, "Corporate, Ward-Takahashi uniform"=/obj/item/clothing/under/corp/wardt, "Corporate, Hephaestus Arms uniform"=/obj/item/clothing/under/corp/hephaestus, "Corporate, Centauri Provisions uniform"=/obj/item/clothing/under/corp/centauri, @@ -163,14 +164,14 @@ description = "Select from a range of outfits available to all Security personnel." allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") path = /obj/item/clothing/under/rank/security/corp - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/security_selector/New() ..() var/list/selector_uniforms = list( "undersuit, modernized"=/obj/item/clothing/under/rank/security/modern, - "KHI uniform"=/obj/item/clothing/under/rank/khi/sec, + "GE uniform"=/obj/item/clothing/under/rank/khi/sec, //CHOMPEdit, KHI becomes GE "voidsuit underlayer"=/obj/item/clothing/under/undersuit/sec, "skirt"=/obj/item/clothing/under/rank/security/skirt, "turtleneck"=/obj/item/clothing/under/rank/security/turtleneck, @@ -208,8 +209,8 @@ description = "Select from a range of outfits available to Wardens." allowed_roles = list("Head of Security","Warden") path = /obj/item/clothing/under/rank/warden/corp - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/security_warden_selector/New() ..() @@ -229,8 +230,8 @@ description = "Select from a range of outfits available to all Detectives." allowed_roles = list("Head of Security","Detective") path = /obj/item/clothing/under/det/corporate - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/security_detective_selector/New() ..() @@ -245,8 +246,8 @@ description = "Select from a range of outfits available to all Heads of Security." allowed_roles = list("Head of Security") path = /obj/item/clothing/under/rank/head_of_security/corp - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/security_head_selector/New() ..() @@ -267,7 +268,7 @@ "TG&C blue turtleneck & skirt"=/obj/item/clothing/under/rank/neo_hos_blackblue_skirt, "TG&C blue parade uniform"=/obj/item/clothing/under/rank/neo_hos_parade_blue, "TG&C blue parade uniform, feminine"=/obj/item/clothing/under/rank/neo_hos_parade_blue_fem, - "KHI uniform, command"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform, command"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -284,8 +285,8 @@ description = "Select from a range of outfits available to all Quartermasters." allowed_roles = list("Quartermaster") path = /obj/item/clothing/under/rank/cargo/jeans - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/quartermaster_selector/New() ..() @@ -293,7 +294,7 @@ "skirt"=/obj/item/clothing/under/rank/cargo/skirt, "jeans"=/obj/item/clothing/under/rank/cargo/jeans, "jeans, feminine cut"=/obj/item/clothing/under/rank/cargo/jeans/female, - "KHI uniform, command"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform, command"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "TG&C jumpsuit"=/obj/item/clothing/under/rank/neo_qm, "TG&C jumpskirt"=/obj/item/clothing/under/rank/neo_qm_skirt, "TG&C casualwear"=/obj/item/clothing/under/rank/neo_qm_jacket, @@ -315,8 +316,8 @@ description = "Select from a range of outfits available to all Cargo personnel." allowed_roles = list("Cargo Technician","Shaft Miner","Quartermaster") path = /obj/item/clothing/under/rank/cargotech/jeans - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/cargo_general_selector/New() ..() @@ -324,7 +325,7 @@ "skirt"=/obj/item/clothing/under/rank/cargotech/skirt, "jeans"=/obj/item/clothing/under/rank/cargotech/jeans, "jeans, feminine cut"=/obj/item/clothing/under/rank/cargotech/jeans/female, - "KHI uniform"=/obj/item/clothing/under/rank/khi/crg, + "GE uniform"=/obj/item/clothing/under/rank/khi/crg, //CHOMPEdit, KHI becomes GE "TG&C shorts"=/obj/item/clothing/under/rank/neo_cargo_shorts, "TG&C skirt"=/obj/item/clothing/under/rank/neo_cargo_skirt, "TG&C jumpsuit"=/obj/item/clothing/under/rank/neo_cargo, @@ -343,8 +344,8 @@ description = "Select from a range of outfits available to all Mining personnel." allowed_roles = list("Shaft Miner","Quartermaster") path = /obj/item/clothing/under/rank/neo_miner - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/cargo_miner_selector/New() ..() @@ -361,14 +362,14 @@ description = "Select from a range of outfits available to all Chief Engineers." allowed_roles = list("Chief Engineer") path = /obj/item/clothing/under/rank/neo_chiefengi - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/engineering_chief_selector/New() ..() var/list/selector_uniforms = list( "skirt"=/obj/item/clothing/under/rank/chief_engineer/skirt, - "KHI uniform, command"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform, command"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -385,15 +386,15 @@ description = "Select from a range of outfits available to all Engineering personnel." allowed_roles = list("Chief Engineer","Engineer","Atmospheric Technician") path = /obj/item/clothing/under/rank/neo_engi - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/engineer_selector/New() ..() var/list/selector_uniforms = list( "skirt"=/obj/item/clothing/under/rank/engineer/skirt, "turtleneck"=/obj/item/clothing/under/rank/engineer/turtleneck, - "KHI uniform"=/obj/item/clothing/under/rank/khi/eng, + "GE uniform"=/obj/item/clothing/under/rank/khi/eng, //CHOMPEdit, KHI becomes GE "ST: Original Series Ops"=/obj/item/clothing/under/rank/trek/eng, //CHOMPedit start: we split trek engsec into eng and sec "ST: Next Generation Ops"=/obj/item/clothing/under/rank/trek/eng/next, "ST: Voyager Ops"=/obj/item/clothing/under/rank/trek/eng/voy, @@ -402,7 +403,8 @@ "voidsuit underlayer"=/obj/item/clothing/under/undersuit/hazard, "TG&C jumpsuit"=/obj/item/clothing/under/rank/neo_engi, "TG&C jumpskirt"=/obj/item/clothing/under/rank/neo_engi_skirt, - "TG&C gorka suit"=/obj/item/clothing/under/rank/neo_engi_gorka + "TG&C gorka suit"=/obj/item/clothing/under/rank/neo_engi_gorka, + "hazard jumpsuit"=/obj/item/clothing/under/hazard ) gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) @@ -411,8 +413,8 @@ description = "Select from a range of outfits available to all Atmospherics Technicians." allowed_roles = list("Chief Engineer","Atmospheric Technician") path = /obj/item/clothing/under/rank/atmospheric_technician/skirt - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/engi_atmos_selector/New() ..() @@ -430,8 +432,8 @@ description = "Select from a range of outfits available to all Medical personnel." allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") path = /obj/item/clothing/under/rank/neo_med - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/medical_selector/New() ..() @@ -440,7 +442,7 @@ "virologist skirt"=/obj/item/clothing/under/rank/virologist/skirt, "turtleneck"=/obj/item/clothing/under/rank/medical/turtleneck, "vey-medical jumpsuit"=/obj/item/clothing/under/corp/veymed, - "KHI uniform"=/obj/item/clothing/under/rank/khi/med, + "GE uniform"=/obj/item/clothing/under/rank/khi/med, //CHOMPEdit, KHI becomes GE "ST: Original Series Med-Sci"=/obj/item/clothing/under/rank/trek/medsci, "ST: Next Generation Med-Sci"=/obj/item/clothing/under/rank/trek/medsci/next, "ST: Voyager Med-Sci"=/obj/item/clothing/under/rank/trek/medsci/voy, @@ -452,7 +454,8 @@ "TG&C virology jumpskirt"=/obj/item/clothing/under/rank/neo_viro_skirt, "TG&C dark jumpsuit"=/obj/item/clothing/under/rank/neo_med_dark, "TG&C dark jumpskirt"=/obj/item/clothing/under/rank/neo_med_dark_skirt, - "TG&C gorka suit"=/obj/item/clothing/under/rank/neo_med_gorka + "TG&C gorka suit"=/obj/item/clothing/under/rank/neo_med_gorka, + "sterile jumpsuit"=/obj/item/clothing/under/sterile ) gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) @@ -461,8 +464,8 @@ description = "Select from a range of outfits available to all Chemists." allowed_roles = list("Chief Medical Officer","Chemist") path = /obj/item/clothing/under/rank/neo_chem - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/chemist_selector/New() ..() @@ -480,8 +483,8 @@ description = "Select from a range of outfits available to all Paramedics." allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") path = /obj/item/clothing/under/rank/paramedunidark - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/paramedic_selector/New() ..() @@ -502,14 +505,14 @@ description = "Select from a range of outfits available to all Chief Medical Officers." allowed_roles = list("Chief Medical Officer") path = /obj/item/clothing/under/rank/neo_cmo - sort_category = "Uniform Selectors" + sort_category = "Uniforms" cost = 2 /datum/gear/uniform/chief_medical_selector/New() ..() var/list/selector_uniforms = list( "skirt"=/obj/item/clothing/under/rank/chief_medical_officer/skirt, - "KHI uniform, command"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform, command"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -530,13 +533,13 @@ description = "Select from a range of outfits available to all Research Directors." allowed_roles = list("Research Director") path = /obj/item/clothing/under/rank/neo_rd_suit - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/research_director_selector/New() ..() var/list/selector_uniforms = list( - "KHI uniform, command"=/obj/item/clothing/under/rank/khi/cmd, + "GE uniform, command"=/obj/item/clothing/under/rank/khi/cmd, //CHOMPEdit, KHI becomes GE "ST: Original Series Command"=/obj/item/clothing/under/rank/trek/command, "ST: Next Generation Command"=/obj/item/clothing/under/rank/trek/command/next, "ST: Voyager Command"=/obj/item/clothing/under/rank/trek/command/voy, @@ -555,8 +558,8 @@ description = "Select from a range of outfits available to all Science personnel." allowed_roles = list("Scientist","Research Director","Roboticist","Xenobiologist","Xenobotanist") path = /obj/item/clothing/under/rank/neo_science - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/science_dept_selector/New() ..() @@ -564,7 +567,7 @@ "TG&C jumpsuit"=/obj/item/clothing/under/rank/neo_science, "TG&C jumpskirt"=/obj/item/clothing/under/rank/neo_science_skirt, "TG&C utility"=/obj/item/clothing/under/rank/neo_util_sci, - "KHI uniform"=/obj/item/clothing/under/rank/khi/sci, + "GE uniform"=/obj/item/clothing/under/rank/khi/sci, //CHOMPEdit, KHI becomes GE "ST: Original Series Med-Sci"=/obj/item/clothing/under/rank/trek/medsci, "ST: Next Generation Med-Sci"=/obj/item/clothing/under/rank/trek/medsci/next, "ST: Voyager Med-Sci"=/obj/item/clothing/under/rank/trek/medsci/voy, @@ -579,8 +582,8 @@ description = "Select from a range of outfits available to all Roboticists." allowed_roles = list("Research Director","Roboticist") path = /obj/item/clothing/under/rank/neo_robo - sort_category = "Uniform Selectors" - cost = 2 + sort_category = "Uniforms" + cost = 1 /datum/gear/uniform/science_robotics_selector/New() ..() diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 4b5e532a51..cb307392c9 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -3,7 +3,7 @@ display_name = "blazer, blue" path = /obj/item/clothing/under/blazer slot = slot_w_uniform - sort_category = "Uniforms and Casual Dress" + sort_category = "Casual Dress" /datum/gear/uniform/blazerskirt display_name = "blazer, blue with skirt" @@ -106,116 +106,6 @@ shorts[initial(short_type.name)] = short_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(shorts)) -/datum/gear/uniform/job_skirt/ce - display_name = "skirt, ce" - path = /obj/item/clothing/under/rank/chief_engineer/skirt - allowed_roles = list("Chief Engineer") - -/datum/gear/uniform/job_skirt/atmos - display_name = "skirt, atmos" - path = /obj/item/clothing/under/rank/atmospheric_technician/skirt - allowed_roles = list("Chief Engineer","Atmospheric Technician") - -/datum/gear/uniform/job_skirt/eng - display_name = "skirt, engineer" - path = /obj/item/clothing/under/rank/engineer/skirt - allowed_roles = list("Chief Engineer","Engineer") - -/datum/gear/uniform/job_skirt/roboticist - display_name = "skirt, roboticist" - path = /obj/item/clothing/under/rank/roboticist/skirt - allowed_roles = list("Research Director","Roboticist") - -/datum/gear/uniform/job_skirt/cmo - display_name = "skirt, cmo" - path = /obj/item/clothing/under/rank/chief_medical_officer/skirt - allowed_roles = list("Chief Medical Officer") - -/datum/gear/uniform/job_skirt/chem - display_name = "skirt, chemist" - path = /obj/item/clothing/under/rank/chemist/skirt - allowed_roles = list("Chief Medical Officer","Chemist") - -/datum/gear/uniform/job_skirt/viro - display_name = "skirt, virologist" - path = /obj/item/clothing/under/rank/virologist/skirt - allowed_roles = list("Chief Medical Officer","Medical Doctor") - -/datum/gear/uniform/job_skirt/med - display_name = "skirt, medical" - path = /obj/item/clothing/under/rank/medical/skirt - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") - -/datum/gear/uniform/job_skirt/sci - display_name = "skirt, scientist" - path = /obj/item/clothing/under/rank/scientist/skirt - allowed_roles = list("Research Director","Scientist", "Xenobiologist") - -/datum/gear/uniform/job_skirt/cargo - display_name = "skirt, cargo" - path = /obj/item/clothing/under/rank/cargotech/skirt - allowed_roles = list("Quartermaster","Cargo Technician") - -/datum/gear/uniform/job_skirt/qm - display_name = "skirt, QM" - path = /obj/item/clothing/under/rank/cargo/skirt - allowed_roles = list("Quartermaster") - -/datum/gear/uniform/job_skirt/warden - display_name = "skirt, warden" - path = /obj/item/clothing/under/rank/warden/skirt - allowed_roles = list("Head of Security", "Warden") - -/datum/gear/uniform/job_skirt/security - display_name = "skirt, security" - path = /obj/item/clothing/under/rank/security/skirt - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/uniform/job_skirt/head_of_security - display_name = "skirt, hos" - path = /obj/item/clothing/under/rank/head_of_security/skirt - allowed_roles = list("Head of Security") - -/datum/gear/uniform/job_turtle/science - display_name = "turtleneck, science" - path = /obj/item/clothing/under/rank/scientist/turtleneck - allowed_roles = list("Research Director", "Scientist", "Roboticist", "Xenobiologist") - -/datum/gear/uniform/job_turtle/security - display_name = "turtleneck, security" - path = /obj/item/clothing/under/rank/security/turtleneck - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer", "Security Pilot") //YW ADDITIONS - -/datum/gear/uniform/job_turtle/engineering - display_name = "turtleneck, engineering" - path = /obj/item/clothing/under/rank/engineer/turtleneck - allowed_roles = list("Chief Engineer", "Atmospheric Technician", "Engineer") - -/datum/gear/uniform/job_turtle/medical - display_name = "turtleneck, medical" - path = /obj/item/clothing/under/rank/medical/turtleneck - allowed_roles = list("Chief Medical Officer", "Paramedic", "Medical Doctor", "Psychiatrist", "Search and Rescue", "Chemist") - -/datum/gear/uniform/jeans_qm - display_name = "jeans, QM" - path = /obj/item/clothing/under/rank/cargo/jeans - allowed_roles = list("Quartermaster") - -/datum/gear/uniform/jeans_qmf - display_name = "female jeans, QM" - path = /obj/item/clothing/under/rank/cargo/jeans/female - allowed_roles = list("Quartermaster") - -/datum/gear/uniform/jeans_cargo - display_name = "jeans, cargo" - path = /obj/item/clothing/under/rank/cargotech/jeans - allowed_roles = list("Quartermaster","Cargo Technician") - -/datum/gear/uniform/jeans_cargof - display_name = "female jeans, cargo" - path = /obj/item/clothing/under/rank/cargotech/jeans/female - allowed_roles = list("Quartermaster","Cargo Technician") - /datum/gear/uniform/suit/lawyer display_name = "suit, one-piece selection" path = /obj/item/clothing/under/lawyer @@ -302,57 +192,6 @@ display_name = "flame dress" path = /obj/item/clothing/under/dress/dress_fire -/datum/gear/uniform/uniform_captain - display_name = "uniform, site manager's dress" - path = /obj/item/clothing/under/dress/dress_cap - allowed_roles = list("Site Manager") - -/datum/gear/uniform/corpdetsuit - display_name = "uniform, corporate (Detective)" - path = /obj/item/clothing/under/det/corporate - allowed_roles = list("Detective","Head of Security") - -/datum/gear/uniform/corpsecsuit - display_name = "uniform, corporate (Security)" - path = /obj/item/clothing/under/rank/security/corp - allowed_roles = list("Security Officer","Head of Security","Warden","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/uniform/corpwarsuit - display_name = "uniform, corporate (Warden)" - path = /obj/item/clothing/under/rank/warden/corp - allowed_roles = list("Head of Security","Warden") - -/datum/gear/uniform/corphossuit - display_name = "uniform, corporate (Head of Security)" - path = /obj/item/clothing/under/rank/head_of_security/corp - allowed_roles = list("Head of Security") - -/datum/gear/uniform/uniform_hop - display_name = "uniform, HoP's dress" - path = /obj/item/clothing/under/dress/dress_hop - allowed_roles = list("Head of Personnel") - -/datum/gear/uniform/uniform_hr - display_name = "uniform, HR director (HoP)" - path = /obj/item/clothing/under/dress/dress_hr - - allowed_roles = list("Head of Personnel") - -/datum/gear/uniform/navysecsuit - display_name = "uniform, navy blue (Security)" - path = /obj/item/clothing/under/rank/security/navyblue - allowed_roles = list("Security Officer","Head of Security","Warden","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/uniform/navywarsuit - display_name = "uniform, navy blue (Warden)" - path = /obj/item/clothing/under/rank/warden/navyblue - allowed_roles = list("Head of Security","Warden") - -/datum/gear/uniform/navyhossuit - display_name = "uniform, navy blue (Head of Security)" - path = /obj/item/clothing/under/rank/head_of_security/navyblue - allowed_roles = list("Head of Security") - /datum/gear/uniform/shortplaindress display_name = "plain dress" path = /obj/item/clothing/under/dress/white3 @@ -408,18 +247,6 @@ maids[initial(maid_type.name)] = maid_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(maids)) -/datum/gear/uniform/utility - display_name = "utility, black" - path = /obj/item/clothing/under/utility - -/datum/gear/uniform/utility/blue - display_name = "utility, blue" - path = /obj/item/clothing/under/utility/blue - -/datum/gear/uniform/utility/grey - display_name = "utility, grey" - path = /obj/item/clothing/under/utility/grey - /datum/gear/uniform/sweater display_name = "sweater, grey" path = /obj/item/clothing/under/rank/psych/turtleneck/sweater @@ -648,26 +475,6 @@ ..() gear_tweaks += gear_tweak_free_color_choice -/datum/gear/uniform/paramedunidark - display_name = "paramedic uniform, dark" - path = /obj/item/clothing/under/rank/paramedunidark - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") - -/datum/gear/uniform/parameduniskirtdark - display_name = "paramedic skirt, dark" - path = /obj/item/clothing/under/rank/parameduniskirtdark - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") - -/datum/gear/uniform/paramedunilight - display_name = "paramedic uniform, light" - path = /obj/item/clothing/under/rank/paramedunilight - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") - -/datum/gear/uniform/parameduniskirtlight - display_name = "paramedic skirt, light" - path = /obj/item/clothing/under/rank/parameduniskirtlight - allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic") - /datum/gear/uniform/tourist_1 display_name = "tourist outfit, white" path = /obj/item/clothing/under/tourist_1 @@ -690,14 +497,6 @@ ) gear_tweaks += new/datum/gear_tweak/path(cowboy_outfits) -/datum/gear/uniform/utility/gsa - display_name = "utility, galactic survey" - path = /obj/item/clothing/under/gsa - -/datum/gear/uniform/utility/gsa_work - display_name = "heavy utility, galactic survey" - path = /obj/item/clothing/under/gsa_work - /* * 80s */ @@ -717,75 +516,3 @@ /datum/gear/uniform/tropical_outfit/blue display_name = "tropical outfit, miami vice" path = /obj/item/clothing/under/tropical/blue - -/* - * Branded Uniforms - */ - -/datum/gear/uniform/brandsuit/mbill - display_name = "uniform, major bill's" - path = /obj/item/clothing/under/mbill - -/datum/gear/uniform/brandsuit/mbill_flight - display_name = "uniform, major bill's flightsuit (Pilot)" - path = /obj/item/clothing/under/mbill_flight - allowed_roles = list("Pilot") - -/datum/gear/uniform/brandsuit/aether - display_name = "jumpsuit, aether" - path = /obj/item/clothing/under/corp/aether - -/datum/gear/uniform/brandsuit/focal - display_name = "jumpsuit, focal" - path = /obj/item/clothing/under/corp/focal - -/datum/gear/uniform/brandsuit/pcrc - display_name = "uniform, PCRC (Security)" - path = /obj/item/clothing/under/corp/pcrc - allowed_roles = list("Security Officer","Head of Security","Warden") - -/datum/gear/uniform/brandsuit/grayson - display_name = "outfit, grayson" - path = /obj/item/clothing/under/corp/grayson - -/datum/gear/uniform/brandsuit/grayson_jump - display_name = "jumpsuit, grayson" - path = /obj/item/clothing/under/corp/grayson_jump - -/datum/gear/uniform/brandsuit/wardt - display_name = "jumpsuit, ward-takahashi" - path = /obj/item/clothing/under/corp/wardt - -/datum/gear/uniform/brandsuit/hephaestus - display_name = "jumpsuit, hephaestus" - path = /obj/item/clothing/under/corp/hephaestus - -/datum/gear/uniform/brandsuit/centauri - display_name = "jumpsuit, centauri provisions" - path = /obj/item/clothing/under/corp/centauri - -/datum/gear/uniform/brandsuit/morpheus - display_name = "jumpsuit, morpheus" - path = /obj/item/clothing/under/corp/morpheus - -/datum/gear/uniform/brandsuit/wulf - display_name = "jumpsuit, wulf" - path = /obj/item/clothing/under/corp/wulf - -/datum/gear/uniform/brandsuit/zenghu - display_name = "jumpsuit, zeng-hu" - path = /obj/item/clothing/under/corp/zenghu - -/datum/gear/uniform/brandsuit/xion - display_name = "jumpsuit, xion" - path = /obj/item/clothing/under/corp/xion - -/datum/gear/uniform/brandsuit/vedmed - display_name = "jumpsuit, vey-med (Medical)" - path = /obj/item/clothing/under/corp/veymed - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic") - -/datum/gear/uniform/brandsuit/kaleidoscope - display_name = "outfit, kaleidoscope (Science)" - path = /obj/item/clothing/under/corp/kaleidoscope - allowed_roles = list("Research Director","Scientist","Xenobiologist") diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index 85e90416e9..f69f6e931f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -11,52 +11,6 @@ display_name = "pt uniform, planetside sec" path = /obj/item/clothing/under/solgov/pt/sifguard -/datum/gear/uniform/job_skirt/sci - allowed_roles = list("Research Director","Scientist", "Xenobiologist", "Xenobotanist") - -/datum/gear/uniform/job_turtle/science - allowed_roles = list("Research Director", "Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") - -/datum/gear/uniform/job_turtle/medical - display_name = "turtleneck, medical" - path = /obj/item/clothing/under/rank/medical/turtleneck - allowed_roles = list("Chief Medical Officer", "Paramedic", "Medical Doctor", "Psychiatrist", "Field Medic", "Chemist") //CHOMP keep explo - -//KHI Uniforms -/datum/gear/uniform/job_khi/cmd - display_name = "ge uniform, cmd" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/cmd - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_khi/sec - display_name = "geuniform, sec" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/sec - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer","Blueshield Guard","Security Pilot") //YW ADDITIONS - -/datum/gear/uniform/job_khi/med - display_name = "ge uniform, med" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/med - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Field Medic","Psychiatrist") //CHOMP keep explo - -/datum/gear/uniform/job_khi/eng - display_name = "ge uniform, eng" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/eng - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") - -/datum/gear/uniform/job_khi/sci - display_name = "ge uniform, sci" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/sci - allowed_roles = list("Research Director", "Scientist", "Roboticist", "Xenobiologist", "Xenobotanist") - -/datum/gear/uniform/job_khi/crg - display_name = "ge uniform, cargo" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/crg - allowed_roles = list("Quartermaster", "Cargo Technician", "Shaft Miner") - -/datum/gear/uniform/job_khi/civ - display_name = "ge uniform, civ" //CHOMPedit: changed to GE suit - path = /obj/item/clothing/under/rank/khi/civ - //Federation jackets /datum/gear/suit/job_fed/sec display_name = "fed uniform, sec" @@ -73,61 +27,6 @@ path = /obj/item/clothing/suit/storage/fluff/fedcoat/fedeng allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") -// Trekie things -//TOS -/datum/gear/uniform/job_trek/cmd/tos - display_name = "TOS uniform, cmd" - path = /obj/item/clothing/under/rank/trek/command - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_trek/medsci/tos - display_name = "TOS uniform, med/sci" - path = /obj/item/clothing/under/rank/trek/medsci - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist", "Field Medic") //CHOMP keep explo - -/datum/gear/uniform/job_trek/eng/tos - display_name = "TOS uniform, eng" //CHOMPEdit: Removed sec from the name. Gonna separate sec into its own so that I can apply armor value. - path = /obj/item/clothing/under/rank/trek/eng //CHOMPEdit: Engineering only - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") //CHOMPEdit: Removed sec from the allowed list. Gonna separate sec into its own so that I can apply armor value. - -//CHOMPEdit: See loadout_uniform_vr_ch.dm for a security-specific variant that has standard armor values. - -//TNG -/datum/gear/uniform/job_trek/cmd/tng - display_name = "TNG uniform, cmd" - path = /obj/item/clothing/under/rank/trek/command/next - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_trek/medsci/tng - display_name = "TNG uniform, med/sci" - path = /obj/item/clothing/under/rank/trek/medsci/next - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist", "Field Medic") //CHOMP keep explo - -/datum/gear/uniform/job_trek/eng/tng - display_name = "TNG uniform, eng" //CHOMPEdit: Removed sec from the name. Gonna separate sec into its own so that I can apply armor value. - path = /obj/item/clothing/under/rank/trek/eng/next //CHOMPEdit: Engineering only - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") //CHOMPEdit: Removed sec from the allowed list. Gonna separate sec into its own so that I can apply armor value. - -//CHOMPEdit: See loadout_uniform_vr_ch.dm for a security-specific variant that has standard armor values. - -//VOY -/datum/gear/uniform/job_trek/cmd/voy - display_name = "VOY uniform, cmd" - path = /obj/item/clothing/under/rank/trek/command/voy - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_trek/medsci/voy - display_name = "VOY uniform, med/sci" - path = /obj/item/clothing/under/rank/trek/medsci/voy - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist", "Field Medic") //CHOMP keep explo - -/datum/gear/uniform/job_trek/eng/voy - display_name = "VOY uniform, eng" //CHOMPEdit: Removed sec from the name. Gonna separate sec into its own so that I can apply armor value. - path = /obj/item/clothing/under/rank/trek/eng/voy //CHOMPEdit: Engineering only - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") //CHOMPEdit: Removed sec from the allowed list. Gonna separate sec into its own so that I can apply armor value. - -//CHOMPEdit: See loadout_uniform_vr_ch.dm for a security-specific variant that has standard armor values. - //DS9 /datum/gear/suit/job_trek/ds9_coat @@ -138,42 +37,6 @@ "Scientist","Roboticist","Xenobiologist","Xenobotanist","Atmospheric Technician", "Engineer","Warden","Detective","Security Officer", "Pathfinder", "Explorer", "Field Medic", "Blueshield Guard","Security Pilot") //YW ADDITIONS //CHOMP keep explo - -/datum/gear/uniform/job_trek/cmd/ds9 - display_name = "DS9 uniform, cmd" - path = /obj/item/clothing/under/rank/trek/command/ds9 - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_trek/medsci/ds9 - display_name = "DS9 uniform, med/sci" - path = /obj/item/clothing/under/rank/trek/medsci/ds9 - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist", "Field Medic") //CHOMP keep explo - -/datum/gear/uniform/job_trek/eng/ds9 - display_name = "DS9 uniform, eng" //CHOMPEdit: Removed sec from the name. Gonna separate sec into its own so that I can apply armor value. - path = /obj/item/clothing/under/rank/trek/eng/ds9 //CHOMPEdit: Engineering only - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") //CHOMPEdit: Removed sec from the allowed list. Gonna separate sec into its own so that I can apply armor value. - -//CHOMPEdit: See loadout_uniform_vr_ch.dm for a security-specific variant that has standard armor values. - -//ENT -/datum/gear/uniform/job_trek/cmd/ent - display_name = "ENT uniform, cmd" - path = /obj/item/clothing/under/rank/trek/command/ent - allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Blueshield Guard") //YW ADDITIONS - -/datum/gear/uniform/job_trek/medsci/ent - display_name = "ENT uniform, med/sci" - path = /obj/item/clothing/under/rank/trek/medsci/ent - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist", "Xenobiologist", "Xenobotanist", "Field Medic") //CHOMP keep explo - -/datum/gear/uniform/job_trek/eng/ent - display_name = "ENT uniform, eng" //CHOMPEdit: Removed sec from the name. Gonna separate sec into its own so that I can apply armor value. - path = /obj/item/clothing/under/rank/trek/eng/ent //CHOMPEdit: Engineering only - allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer") //CHOMPEdit: Removed sec from the allowed list. Gonna separate sec into its own so that I can apply armor value. - -//CHOMPEdit: See loadout_uniform_vr_ch.dm for a security-specific variant that has standard armor values. - /* Swimsuits */ @@ -279,26 +142,6 @@ Talon jumpsuit suits[initial(undersuit_type.name)] = undersuit_type gear_tweaks += new/datum/gear_tweak/path(sortAssoc(suits)) -/datum/gear/uniform/undersuit_haz - display_name = "undersuit, hazard (Engineering)" - allowed_roles = list("Chief Engineer", "Atmospheric Technician", "Engineer") - path = /obj/item/clothing/under/undersuit/hazard - -/datum/gear/uniform/undersuit_sec - display_name = "undersuit, security (Security)" - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") - path = /obj/item/clothing/under/undersuit/sec - -/datum/gear/uniform/undersuit_hos - display_name = "undersuit, security command (HoS)" - allowed_roles = list("Head of Security") - path = /obj/item/clothing/under/undersuit/sec/hos - -/datum/gear/uniform/undersuit_com - display_name = "undersuit, command (SM/HoP)" - allowed_roles = list("Site Manager", "Head of Personnel") - path = /obj/item/clothing/under/undersuit/command - //Altevian Uniforms /datum/gear/uniform/altevian description = "An extremely comfortable set of clothing that's made to help people handle their day to day work around the fleets with little to no discomfort." @@ -325,12 +168,6 @@ Talon jumpsuit jumpsuits[initial(jumpsuit.name)] = jumpsuit gear_tweaks += new/datum/gear_tweak/path(sortAssoc(jumpsuits)) -//Modernized Sec Jumpsuit -/datum/gear/uniform/modernsec - display_name = "undersuit, security, modernized (Security)" - allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") - path = /obj/item/clothing/under/rank/security/modern - /datum/gear/uniform/singer_blue display_name = "blue singer dress" path = /obj/item/clothing/under/dress/singer diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 94238a1c1a..a25d5c64fc 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -11,7 +11,7 @@ /datum/gear/utility/tts_device display_name = "text to speech device" path = /obj/item/device/text_to_speech - cost = 3 //Not extremely expensive, but it's useful for mute chracters. + cost = 0 //Not extremely expensive, but it's useful for mute chracters. //CHOMPEDIT: 3 points is pretty high for a pure fluff piece, make it 0 /datum/gear/utility/communicator display_name = "communicator selection" diff --git a/code/modules/client/preference_setup/traits/trait_defines.dm b/code/modules/client/preference_setup/traits/trait_defines.dm index 225e690e71..720ce52f84 100644 --- a/code/modules/client/preference_setup/traits/trait_defines.dm +++ b/code/modules/client/preference_setup/traits/trait_defines.dm @@ -177,7 +177,7 @@ /datum/trait/modifier/physical/no_clone - name = "Cloning Incompatability" + name = "Cloning Incompatibility" modifier_type = /datum/modifier/no_clone /datum/trait/modifier/physical/no_clone/test_for_invalidity(var/datum/category_item/player_setup_item/traits/setup) @@ -187,7 +187,7 @@ /datum/trait/modifier/physical/no_borg - name = "Cybernetic Incompatability" + name = "Cybernetic Incompatibility" modifier_type = /datum/modifier/no_borg /datum/trait/modifier/physical/no_borg/test_for_invalidity(var/datum/category_item/player_setup_item/traits/setup) diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm index 7c7c91e148..5ad651fbf9 100644 --- a/code/modules/client/preference_setup/vore/03_egg.dm +++ b/code/modules/client/preference_setup/vore/03_egg.dm @@ -1,13 +1,13 @@ // Define a place to save appearance in character setup -// CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than # +// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than # #define AUTOHISS_OFF 0 #define AUTOHISS_BASIC 1 #define AUTOHISS_FULL 2 -// CHOMPStation Add End +// VOREStation Add End /datum/preferences var/vore_egg_type = "Egg" //The egg type they have. - var/autohiss = "Full" // CHOMPStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space. + var/autohiss = "Full" // VOREStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space. // Definition of the stuff for the egg type. /datum/category_item/player_setup_item/vore/egg @@ -16,18 +16,18 @@ /datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S) S["vore_egg_type"] >> pref.vore_egg_type - S["autohiss"] >> pref.autohiss // CHOMPStation Add + S["autohiss"] >> pref.autohiss // VOREStation Add /datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S) S["vore_egg_type"] << pref.vore_egg_type - S["autohiss"] << pref.autohiss // CHOMPStation Add + S["autohiss"] << pref.autohiss // VOREStation Add /datum/category_item/player_setup_item/vore/egg/sanitize_character() pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type)) /datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character) character.vore_egg_type = pref.vore_egg_type - // CHOMPStation Add + // VOREStation Add if(pref.client) // Safety, just in case so we don't runtime. if(!pref.autohiss) pref.client.autohiss_mode = AUTOHISS_FULL @@ -39,12 +39,12 @@ pref.client.autohiss_mode = AUTOHISS_BASIC if("Off") pref.client.autohiss_mode = AUTOHISS_OFF - // CHOMPStation Add + // VOREStation Add /datum/category_item/player_setup_item/vore/egg/content(var/mob/user) . += "
    " . += " Egg Type: [pref.vore_egg_type]
    " - . += "Autohiss Default Setting: [pref.autohiss]
    " // CHOMPStation Add + . += "Autohiss Default Setting: [pref.autohiss]
    " // VOREStation Add /datum/category_item/player_setup_item/vore/egg/OnTopic(var/href, var/list/href_list, var/mob/user) if(!CanUseTopic(user)) @@ -56,7 +56,7 @@ if(selection) pref.vore_egg_type = selection return TOPIC_REFRESH - // CHOMPStation Add Start + // VOREStation Add Start else if(href_list["autohiss"]) var/list/autohiss_selection = list("Full", "Basic", "Off") var/selection = tgui_input_list(user, "Choose your default autohiss setting:", "Character Preference", autohiss_selection, pref.autohiss) @@ -65,12 +65,12 @@ else if(!selection) pref.autohiss = "Full" return TOPIC_REFRESH - // CHOMPStation Add End + // VOREStation Add End else return -// CHOMPStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than # +// VOREStation Add Start: Doing this here bc AUTOHISS_FULL is more readable than # #undef AUTOHISS_OFF #undef AUTOHISS_BASIC #undef AUTOHISS_FULL -// CHOMPStation Add End +// VOREStation Add End diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index da3706dcfb..b150240da2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1,1068 +1,1071 @@ -/obj/item/clothing - name = "clothing" - siemens_coefficient = 0.9 - drop_sound = 'sound/items/drop/clothing.ogg' - pickup_sound = 'sound/items/pickup/clothing.ogg' - var/list/species_restricted = null //Only these species can wear this kit. - var/gunshot_residue //Used by forensics. - - var/list/accessories - var/list/valid_accessory_slots - var/list/restricted_accessory_slots - var/list/starting_accessories - - var/flash_protection = FLASH_PROTECTION_NONE - var/tint = TINT_NONE - var/list/enables_planes //Enables these planes in the wearing mob's plane_holder - var/list/plane_slots //But only if it's equipped into this specific slot - - var/ear_protection = 0 - var/blood_sprite_state - - var/update_icon_define = null // Only needed if you've got multiple files for the same type of clothing - - var/polychromic = FALSE //VOREStation edit - -//Updates the icons of the mob wearing the clothing item, if any. -/obj/item/clothing/proc/update_clothing_icon() - return - -// Aurora forensics port. -/obj/item/clothing/clean_blood() - . = ..() - gunshot_residue = null - - -/obj/item/clothing/New() - ..() - if(starting_accessories) - for(var/T in starting_accessories) - var/obj/item/clothing/accessory/tie = new T(src) - src.attach_accessory(null, tie) - set_clothing_index() - - //VOREStation edit start - if(polychromic) - verbs |= /obj/item/clothing/proc/change_color - //VOREStation edit start - -/obj/item/clothing/update_icon() - cut_overlays() //This removes all the overlays on the sprite and then goes down a checklist adding them as required. - if(blood_DNA) - add_blood() - . = ..() - -/obj/item/clothing/equipped(var/mob/user,var/slot) - ..() - if(enables_planes) - user.recalculate_vis() - -/obj/item/clothing/dropped(var/mob/user) - ..() - if(enables_planes) - user.recalculate_vis() - -//BS12: Species-restricted clothing check. -/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = FALSE) - - //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) - if (!..()) - return 0 - - if(LAZYLEN(species_restricted) && istype(M,/mob/living/carbon/human)) - var/exclusive = null - var/wearable = null - var/mob/living/carbon/human/H = M - - if("exclude" in species_restricted) - exclusive = 1 - - if(H.species) - if(exclusive) - if(!(H.species.get_bodytype(H) in species_restricted)) - wearable = 1 - else - if(H.species.get_bodytype(H) in species_restricted) - wearable = 1 - - if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store))) - to_chat(H, "Your species cannot wear [src].") - return 0 - return 1 - -/obj/item/clothing/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") - . = ..() - if((. == 0) && LAZYLEN(accessories)) - for(var/obj/item/I in accessories) - var/check = I.handle_shield(user, damage, damage_source, attacker, def_zone, attack_text) - - if(check != 0) // Projectiles sometimes use negatives IIRC, 0 is only returned if something is not blocked. - . = check - break - -// For now, these two temp procs only return TRUE or FALSE if they can provide resistance to a given temperature. -/obj/item/clothing/proc/handle_low_temperature(var/tempcheck = T20C) - . = FALSE - if(LAZYLEN(accessories)) - for(var/obj/item/clothing/C in accessories) - if(C.handle_low_temperature(tempcheck)) - . = TRUE - - if(min_cold_protection_temperature && min_cold_protection_temperature <= tempcheck) - . = TRUE - -/obj/item/clothing/proc/handle_high_temperature(var/tempcheck = T20C) - . = FALSE - if(LAZYLEN(accessories)) - for(var/obj/item/clothing/C in accessories) - if(C.handle_high_temperature(tempcheck)) - . = TRUE - - if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck) - . = TRUE - -// Returns the relative flag-vars for covered protection. -/obj/item/clothing/proc/get_cold_protection_flags() - . = cold_protection - - if(LAZYLEN(accessories)) - for(var/obj/item/clothing/C in accessories) - . |= C.get_cold_protection_flags() - -/obj/item/clothing/proc/get_heat_protection_flags() - . = heat_protection - - if(LAZYLEN(accessories)) - for(var/obj/item/clothing/C in accessories) - . |= C.get_heat_protection_flags() - -/obj/item/clothing/proc/refit_for_species(var/target_species) - if(!species_restricted) - return //this item doesn't use the species_restricted system - - //Set species_restricted list - switch(target_species) - //VOREStation Edit Start - if(SPECIES_HUMAN, SPECIES_SKRELL) //humanoid bodytypes - species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) - if(SPECIES_UNATHI) - species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) - if(SPECIES_VULPKANIN) - species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) - if(SPECIES_SERGAL) - species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) - //VOREStation Edit End - else - species_restricted = list(target_species) - - //Set icon - if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) - icon = sprite_sheets_obj[target_species] - else - icon = initial(icon) - -//VOREStation edit start -/obj/item/clothing/proc/change_color() - set name = "Change Color" - set category = "Object" - set desc = "Change the color of the clothing." - set src in usr - - if(usr.stat || usr.restrained() || usr.incapacitated()) - return - - var/new_color = input(usr, "Pick a new color", "Color", color) as color|null - - if(new_color && (new_color != color)) - color = new_color - update_icon() - update_clothing_icon() -//VOREStation edit end - -/obj/item/clothing/head/helmet/refit_for_species(var/target_species) - if(!species_restricted) - return //this item doesn't use the species_restricted system - - //Set species_restricted list - switch(target_species) - //VOREStation Edit Start - if(SPECIES_HUMAN) - species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) - if(SPECIES_SKRELL) - species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) - if(SPECIES_UNATHI) - species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) - if(SPECIES_VULPKANIN) - species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) - if(SPECIES_SERGAL) - species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) - //VOREStation Edit End - else - species_restricted = list(target_species) - - //Set icon - if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) - icon = sprite_sheets_obj[target_species] - else - icon = initial(icon) - -/////////////////////////////////////////////////////////////////////// -// Ears: headsets, earmuffs and tiny objects -/obj/item/clothing/ears - name = "ears" - w_class = ITEMSIZE_TINY - throwforce = 2 - slot_flags = SLOT_EARS - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi') - -/obj/item/clothing/ears/attack_hand(mob/user as mob) - if (!user) return - - if (src.loc != user || !istype(user,/mob/living/carbon/human)) - ..() - return - - var/mob/living/carbon/human/H = user - if(H.l_ear != src && H.r_ear != src) - ..() - return - - if(!canremove) - return - - var/obj/item/clothing/ears/O - if(slot_flags & SLOT_TWOEARS ) - O = (H.l_ear == src ? H.r_ear : H.l_ear) - user.u_equip(O) - if(!istype(src,/obj/item/clothing/ears/offear)) - qdel(O) - O = src - else - O = src - - user.unEquip(src) - - if (O) - user.put_in_hands(O) - O.add_fingerprint(user) - - if(istype(src,/obj/item/clothing/ears/offear)) - qdel(src) - -/obj/item/clothing/ears/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_ears() - -/obj/item/clothing/ears/MouseDrop(var/obj/over_object) - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - // If this covers both ears, we want to return the result of unequipping the primary object, and kill the off-ear one - if(slot_flags & SLOT_TWOEARS) - var/obj/item/clothing/ears/O = (H.l_ear == src ? H.r_ear : H.l_ear) - if(istype(src, /obj/item/clothing/ears/offear)) - . = O.MouseDrop(over_object) - H.drop_from_inventory(src) - qdel(src) - else - . = ..() - H.drop_from_inventory(O) - qdel(O) - else - . = ..() - - -/obj/item/clothing/ears/offear - name = "Other ear" - w_class = ITEMSIZE_HUGE - icon = 'icons/mob/screen1_Midnight.dmi' - icon_state = "block" - slot_flags = SLOT_EARS | SLOT_TWOEARS - -/obj/item/clothing/ears/offear/New(var/obj/O) - name = O.name - desc = O.desc - icon = O.icon - icon_state = O.icon_state - set_dir(O.dir) - -//////////////////////////////////////////////////////////////////////////////////////// -//Gloves -/obj/item/clothing/gloves - name = "gloves" - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', - ) - gender = PLURAL //Carn: for grammarically correct text-parsing - w_class = ITEMSIZE_SMALL - icon = 'icons/inventory/hands/item.dmi' - siemens_coefficient = 0.9 - blood_sprite_state = "bloodyhands" - var/wired = 0 - var/obj/item/weapon/cell/cell = 0 - var/fingerprint_chance = 0 //How likely the glove is to let fingerprints through - var/obj/item/clothing/gloves/ring = null //Covered ring - var/mob/living/carbon/human/wearer = null //Used for covered rings when dropping - var/glove_level = 2 //What "layer" the glove is on - var/overgloves = 0 //Used by gauntlets and arm_guards - var/punch_force = 0 //How much damage do these gloves add to a punch? - var/punch_damtype = BRUTE //What type of damage does this make fists be? - body_parts_covered = HANDS - slot_flags = SLOT_GLOVES - attack_verb = list("challenged") - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' - ) - drop_sound = 'sound/items/drop/gloves.ogg' - pickup_sound = 'sound/items/pickup/gloves.ogg' - -/obj/item/clothing/proc/set_clothing_index() - return - -/obj/item/clothing/gloves/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_gloves() - -/obj/item/clothing/gloves/emp_act(severity) - if(cell) - cell.emp_act(severity) - if(ring) - ring.emp_act(severity) - ..() - -// Called just before an attack_hand(), in mob/UnarmedAttack() -/obj/item/clothing/gloves/proc/Touch(var/atom/A, var/proximity) - return 0 // return 1 to cancel attack_hand() - -/*/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user) - if(W.is_wirecutter() || istype(W, /obj/item/weapon/scalpel)) - if (clipped) - to_chat(user, "The [src] have already been clipped!") - update_icon() - return - - playsound(src, W.usesound, 50, 1) - user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].") - - clipped = 1 - name = "modified [name]" - desc = "[desc]
    They have had the fingertips cut off of them." - if("exclude" in species_restricted) - species_restricted -= SPECIES_UNATHI - species_restricted -= SPECIES_TAJ - return -*/ - -/obj/item/clothing/gloves/clean_blood() - . = ..() - transfer_blood = 0 - update_icon() - -/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) - var/mob/living/carbon/human/H = user - - if(slot && slot == slot_gloves) - var/obj/item/clothing/gloves/G = H.gloves - if(istype(G)) - ring = H.gloves - if(ring.glove_level >= src.glove_level) - to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.") - ring = null - return 0 - else - H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves. - ring.forceMove(src) - to_chat(user, "You slip \the [src] on over \the [src.ring].") - if(!(flags & THICKMATERIAL)) - punch_force += ring.punch_force - else - ring = null - - if(!..()) - if(ring) //Put the ring back on if the check fails. - if(H.equip_to_slot_if_possible(ring, slot_gloves)) - src.ring = null - punch_force = initial(punch_force) - return 0 - - wearer = H //TODO clean this when magboots are cleaned - return 1 - -/obj/item/clothing/gloves/dropped() - ..() - - if(!wearer) - return - - var/mob/living/carbon/human/H = wearer - if(ring && istype(H)) - if(!H.equip_to_slot_if_possible(ring, slot_gloves)) - ring.forceMove(get_turf(src)) - src.ring = null - punch_force = initial(punch_force) - wearer = null - -/obj/item/clothing/gloves - var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack? - var/special_attack_type = null - -/obj/item/clothing/gloves/New() - ..() - if(special_attack_type && ispath(special_attack_type)) - special_attack = new special_attack_type - - - -///////////////////////////////////////////////////////////////////// -//Rings - -/obj/item/clothing/gloves/ring - name = "ring" - w_class = ITEMSIZE_TINY - icon = 'icons/inventory/hands/item.dmi' - gender = NEUTER - species_restricted = list("exclude", SPECIES_DIONA) - siemens_coefficient = 1 - glove_level = 1 - fingerprint_chance = 100 - punch_force = 2 - body_parts_covered = 0 - drop_sound = 'sound/items/drop/ring.ogg' - pickup_sound = 'sound/items/pickup/ring.ogg' - -/////////////////////////////////////////////////////////////////////// -//Head -/obj/item/clothing/head - name = "head" - icon = 'icons/inventory/head/item.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_hats.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_hats.dmi', - ) - body_parts_covered = HEAD - slot_flags = SLOT_HEAD - w_class = ITEMSIZE_SMALL - blood_sprite_state = "helmetblood" - - light_system = MOVABLE_LIGHT_DIRECTIONAL - light_cone_y_offset = 11 - - var/light_overlay = "helmet_light" - var/image/helmet_light - - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi' - ) - drop_sound = 'sound/items/drop/hat.ogg' - pickup_sound = 'sound/items/pickup/hat.ogg' - -/obj/item/clothing/head/attack_self(mob/user) - if(light_range) - if(!isturf(user.loc)) - to_chat(user, "You cannot toggle the light while in this [user.loc]") - return - update_flashlight(user) - to_chat(user, "You [light_on ? "enable" : "disable"] the helmet light.") - else - return ..(user) - -/obj/item/clothing/head/proc/update_flashlight(var/mob/user = null) - set_light_on(!light_on) - - if(light_system == STATIC_LIGHT) - update_light() - - update_icon(user) - user.update_action_buttons() - -/obj/item/clothing/head/attack_ai(var/mob/user) - if(!mob_wear_hat(user)) - return ..() - -/obj/item/clothing/head/attack_generic(var/mob/user) - if(!mob_wear_hat(user)) - return ..() - -/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) - if(!Adjacent(user)) - return 0 - var/success - if(istype(user, /mob/living/silicon/robot/drone)) - var/mob/living/silicon/robot/drone/D = user - if(D.hat) - success = 2 - else - D.wear_hat(src) - success = 1 - else if(istype(user, /mob/living/carbon/alien/diona)) - var/mob/living/carbon/alien/diona/D = user - if(D.hat) - success = 2 - else - D.wear_hat(src) - success = 1 - - if(!success) - return 0 - else if(success == 2) - to_chat(user, "You are already wearing a hat.") - else if(success == 1) - to_chat(user, "You crawl under \the [src].") - return 1 - -/obj/item/clothing/head/update_icon(var/mob/user) - var/mob/living/carbon/human/H - if(ishuman(user)) - H = user - - if(light_on) - // Generate object icon. - if(!light_overlay_cache["[light_overlay]_icon"]) - light_overlay_cache["[light_overlay]_icon"] = image(icon = 'icons/obj/light_overlays.dmi', icon_state = "[light_overlay]") - helmet_light = light_overlay_cache["[light_overlay]_icon"] - add_overlay(helmet_light) - - // Generate and cache the on-mob icon, which is used in update_inv_head(). - var/body_type = (H && H.species.get_bodytype(H)) - var/cache_key = "[light_overlay][body_type && LAZYACCESS(sprite_sheets, body_type) ? body_type : ""]" - if(!light_overlay_cache[cache_key]) - var/use_icon = LAZYACCESS(sprite_sheets, body_type) || 'icons/mob/light_overlays.dmi' - light_overlay_cache[cache_key] = image(icon = use_icon, icon_state = "[light_overlay]") - - else if(helmet_light) - cut_overlay(helmet_light) - helmet_light = null - - user.update_inv_head() //Will redraw the helmet with the light on the mob - -/obj/item/clothing/head/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_head() - -/////////////////////////////////////////////////////////////////////// -//Mask -/obj/item/clothing/mask - name = "mask" - icon = 'icons/inventory/face/item.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', - ) - body_parts_covered = HEAD - slot_flags = SLOT_MASK - body_parts_covered = FACE|EYES - blood_sprite_state = "maskblood" - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi', - SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi', - SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi' - ) - - var/voicechange = 0 - var/list/say_messages - var/list/say_verbs - - drop_sound = "generic_drop" - pickup_sound = "generic_pickup" - -/obj/item/clothing/mask/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_wear_mask() - -/obj/item/clothing/mask/proc/filter_air(datum/gas_mixture/air) - return - -/////////////////////////////////////////////////////////////////////// -//Shoes -/obj/item/clothing/shoes - name = "shoes" - icon = 'icons/inventory/feet/item.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_shoes.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_shoes.dmi', - ) - desc = "Comfortable-looking shoes." - gender = PLURAL //Carn: for grammarically correct text-parsing - siemens_coefficient = 0.9 - body_parts_covered = FEET - slot_flags = SLOT_FEET - blood_sprite_state = "shoeblood" - - var/can_hold_knife = 0 - var/obj/item/holding - - var/shoes_under_pants = 0 - - var/water_speed = 0 //Speed boost/decrease in water, lower/negative values mean more speed - var/snow_speed = 0 //Speed boost/decrease on snow, lower/negative values mean more speed - var/rock_climbing = FALSE // If true, allows climbing cliffs with clickdrag. - - var/step_volume_mod = 1 //How quiet or loud footsteps in this shoe are - - permeability_coefficient = 0.50 - slowdown = SHOES_SLOWDOWN - force = 2 - var/overshoes = 0 - species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX) - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi' - ) - drop_sound = 'sound/items/drop/shoes.ogg' - pickup_sound = 'sound/items/pickup/shoes.ogg' - -/obj/item/clothing/shoes/proc/draw_knife() - set name = "Draw Boot Knife" - set desc = "Pull out your boot knife." - set category = "IC" - set src in usr - - if(usr.stat || usr.restrained() || usr.incapacitated()) - return - - //CHOMPEdit begin - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(H.ability_flags & 0x1) - to_chat(usr, "You cannot do that while phase shifted.") - return - //CHOMPEdit end - - holding.forceMove(get_turf(usr)) - - if(usr.put_in_hands(holding)) - usr.visible_message("\The [usr] pulls a knife out of their boot!") - playsound(src, 'sound/weapons/holster/sheathout.ogg', 25) - holding = null - cut_overlay("[icon_state]_knife") - else - to_chat(usr, "Your need an empty, unbroken hand to do that.") - holding.forceMove(src) - - if(!holding) - verbs -= /obj/item/clothing/shoes/proc/draw_knife - - update_icon() - return - -/obj/item/clothing/shoes/attack_hand(var/mob/living/M) - if(can_hold_knife == 1 && holding && src.loc == M) - draw_knife() - return - ..() - -/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user) - if((can_hold_knife == 1) && (istype(I, /obj/item/weapon/material/shard) || \ - istype(I, /obj/item/weapon/material/butterfly) || \ - istype(I, /obj/item/weapon/material/kitchen/utensil) || \ - istype(I, /obj/item/weapon/material/knife/tacknife))) - if(holding) - to_chat(user, "\The [src] is already holding \a [holding].") - return - user.unEquip(I) - I.forceMove(src) - holding = I - user.visible_message("\The [user] shoves \the [I] into \the [src].") - verbs |= /obj/item/clothing/shoes/proc/draw_knife - update_icon() - else - return ..() - -/obj/item/clothing/shoes/verb/toggle_layer() - set name = "Switch Shoe Layer" - set category = "Object" - - if(shoes_under_pants == -1) - to_chat(usr, "\The [src] cannot be worn above your suit!") - return - shoes_under_pants = !shoes_under_pants - update_icon() - -/obj/item/clothing/shoes/update_icon() - . = ..() - if(holding) - add_overlay("[icon_state]_knife") - if(contaminated) - add_overlay(contamination_overlay) - if(gurgled) //VOREStation Edit Start - decontaminate() - gurgle_contaminate() //VOREStation Edit End - if(ismob(usr)) - var/mob/M = usr - M.update_inv_shoes() - -/obj/item/clothing/shoes/clean_blood() - update_icon() - return ..() - -/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running) - if(prob(1) && !recent_squish) //VOREStation edit begin - recent_squish = 1 - spawn(100) - recent_squish = 0 - for(var/mob/living/M in contents) - var/emote = pick(inside_emotes) - to_chat(M,emote) //VOREStation edit end - return - -/obj/item/clothing/shoes/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_shoes() - - -/////////////////////////////////////////////////////////////////////// -//Suit -/obj/item/clothing/suit - icon = 'icons/inventory/suit/item.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_suits.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_suits.dmi', - ) - name = "suit" - var/fire_resist = T0C+100 - body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS - allowed = list(/obj/item/weapon/tank/emergency/oxygen) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) - slot_flags = SLOT_OCLOTHING - var/blood_overlay_type = "suit" - blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. - - var/taurized = FALSE - siemens_coefficient = 0.9 - w_class = ITEMSIZE_NORMAL - preserve_item = 1 - equip_sound = 'sound/items/jumpsuit_equip.ogg' - - - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi' - ) - - valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND) - restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND) - -/obj/item/clothing/suit/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_wear_suit() - -/obj/item/clothing/suit/equipped(var/mob/user, var/slot) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - var/taurtail = istaurtail(H.tail_style) - if((taurized && !taurtail) || (!taurized && taurtail)) - taurize(user, taurtail) - - return ..() - -/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur, has_taur_tail = FALSE) - if(has_taur_tail) - var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style - if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites))) - icon_override = taurtail.suit_sprites - taurized = TRUE - // means that if a taur puts on an already taurized suit without a taur sprite - // for their taur type, but the previous taur type had a sprite, it stays - // taurized and they end up with that taur style which is funny - else - taurized = FALSE - - if(!taurized) - icon_override = initial(icon_override) - taurized = FALSE - -// Taur suits need to be shifted so its centered on their taur half. -/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask) - var/image/standing = ..() - if(taurized) //Special snowflake var on suits - standing.pixel_x = -16 - standing.layer = BODY_LAYER + 18 // 17 is above tail layer, so will not be covered by taurbody. TAIL_UPPER_LAYER +1 - return standing - -/obj/item/clothing/suit/apply_accessories(var/image/standing) - if(LAZYLEN(accessories) && taurized) - for(var/obj/item/clothing/accessory/A in accessories) - var/image/I = new(A.get_mob_overlay()) - I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body. - standing.add_overlay(I) - else - return ..() - - -/////////////////////////////////////////////////////////////////////// -//Under clothing -/obj/item/clothing/under - icon = 'icons/inventory/uniform/item.dmi' - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi', - ) - name = "under" - body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - permeability_coefficient = 0.90 - slot_flags = SLOT_ICLOTHING - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - equip_sound = 'sound/items/jumpsuit_equip.ogg' - w_class = ITEMSIZE_NORMAL - show_messages = 1 - blood_sprite_state = "uniformblood" - - var/has_sensor = 1 //For the crew computer 2 = unable to change mode - var/sensor_mode = 0 - /* - 1 = Report living/dead - 2 = Report detailed damages - 3 = Report location - */ - var/displays_id = 1 - var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled - var/rolled_down_icon_override = TRUE - var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled - var/rolled_sleeves_icon_override = TRUE - sprite_sheets = list( - SPECIES_TESHARI = 'icons/inventory/uniform/mob_teshari.dmi', - SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi' - ) - - //convenience var for defining the icon state for the overlay used when the clothing is worn. - //Also used by rolling/unrolling. - var/worn_state = null - valid_accessory_slots = (\ - ACCESSORY_SLOT_UTILITY\ - |ACCESSORY_SLOT_WEAPON\ - |ACCESSORY_SLOT_ARMBAND\ - |ACCESSORY_SLOT_DECOR\ - |ACCESSORY_SLOT_MEDAL\ - |ACCESSORY_SLOT_INSIGNIA\ - |ACCESSORY_SLOT_TIE\ - |ACCESSORY_SLOT_RANK\ - |ACCESSORY_SLOT_DEPT\ - |ACCESSORY_SLOT_OVER) - restricted_accessory_slots = (\ - ACCESSORY_SLOT_UTILITY\ - |ACCESSORY_SLOT_WEAPON\ - |ACCESSORY_SLOT_ARMBAND\ - |ACCESSORY_SLOT_TIE\ - |ACCESSORY_SLOT_RANK\ - |ACCESSORY_SLOT_DEPT\ - |ACCESSORY_SLOT_OVER) - - var/icon/rolled_down_icon = 'icons/inventory/uniform/mob_rolled_down.dmi' - var/icon/rolled_down_sleeves_icon = 'icons/inventory/uniform/mob_sleeves_rolled.dmi' - -/obj/item/clothing/under/attack_hand(var/mob/user) - if(LAZYLEN(accessories)) - ..() - if ((ishuman(usr) || issmall(usr)) && src.loc == user) - return - ..() - -/obj/item/clothing/under/New() - ..() - if(worn_state) - LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) - else - worn_state = icon_state - - //autodetect rollability - if(rolled_down < 0) - if(("[worn_state]_d" in cached_icon_states(icon)) || (worn_state in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d" in cached_icon_states(icon_override))) - rolled_down = 0 - - if(rolled_down == -1) - verbs -= /obj/item/clothing/under/verb/rollsuit - if(rolled_sleeves == -1) - verbs -= /obj/item/clothing/under/verb/rollsleeves - -/obj/item/clothing/under/proc/update_rolldown_status() - var/mob/living/carbon/human/H - if(istype(src.loc, /mob/living/carbon/human)) - H = src.loc - - var/icon/under_icon - if(icon_override && rolled_down_icon_override) - under_icon = icon_override - else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H))) - under_icon = sprite_sheets[H.species.get_bodytype(H)] - else if(LAZYACCESS(item_icons, slot_w_uniform_str)) - under_icon = item_icons[slot_w_uniform_str] - else if (worn_state in cached_icon_states(rolled_down_icon)) - under_icon = rolled_down_icon - - // The _s is because the icon update procs append it. - if((under_icon == rolled_down_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_d" in cached_icon_states(under_icon))) - if(rolled_down != 1) - rolled_down = 0 - else - rolled_down = -1 - if(H) update_clothing_icon() - -/obj/item/clothing/under/proc/update_rollsleeves_status() - var/mob/living/carbon/human/H - if(istype(src.loc, /mob/living/carbon/human)) - H = src.loc - - var/icon/under_icon - if(icon_override && rolled_sleeves_icon_override) - under_icon = icon_override - else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H))) - under_icon = sprite_sheets[H.species.get_bodytype(H)] - else if(LAZYACCESS(item_icons, slot_w_uniform_str)) - under_icon = item_icons[slot_w_uniform_str] - else if (worn_state in cached_icon_states(rolled_down_sleeves_icon)) - under_icon = rolled_down_sleeves_icon - else - under_icon = new /icon(INV_W_UNIFORM_DEF_ICON) - - // The _s is because the icon update procs append it. - if((under_icon == rolled_down_sleeves_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_r" in cached_icon_states(under_icon))) - if(rolled_sleeves != 1) - rolled_sleeves = 0 - else - rolled_sleeves = -1 - if(H) update_clothing_icon() - -/obj/item/clothing/under/update_clothing_icon() - if (ismob(src.loc)) - var/mob/M = src.loc - M.update_inv_w_uniform() - - set_clothing_index() - - -/obj/item/clothing/under/examine(mob/user) - . = ..() - switch(src.sensor_mode) - if(0) - . += "Its sensors appear to be disabled." - if(1) - . += "Its binary life sensors appear to be enabled." - if(2) - . += "Its vital tracker appears to be enabled." - if(3) - . += "Its vital tracker and tracking beacon appear to be enabled." - -/obj/item/clothing/under/proc/set_sensors(mob/usr as mob) - var/mob/M = usr - if (istype(M, /mob/observer)) return - if (usr.stat || usr.restrained()) return - if(has_sensor >= 2) - to_chat(usr, "The controls are locked.") - return 0 - if(has_sensor <= 0) - to_chat(usr, "This suit does not have any sensors.") - return 0 - - var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") - var/switchMode = tgui_input_list(usr, "Select a sensor mode:", "Suit Sensor Mode", modes) - if(get_dist(usr, src) > 1) - to_chat(usr, "You have moved too far away.") - return - sensor_mode = modes.Find(switchMode) - 1 - - if (src.loc == usr) - switch(sensor_mode) - if(0) - usr.visible_message("[usr] adjusts their sensors.", "You disable your suit's remote sensing equipment.") - if(1) - usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report whether you are live or dead.") - if(2) - usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns.") - if(3) - usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns as well as your coordinate position.") - - else if (istype(src.loc, /mob)) - usr.visible_message("[usr] adjusts [src.loc]'s sensors.", "You adjust [src.loc]'s sensors.") - -/obj/item/clothing/under/verb/toggle() - set name = "Toggle Suit Sensors" - set category = "Object" - set src in usr - set_sensors(usr) - -/obj/item/clothing/under/verb/rollsuit() - set name = "Roll Down Jumpsuit" - set category = "Object" - set src in usr - if(!istype(usr, /mob/living)) return - if(usr.stat) return - - update_rolldown_status() - if(rolled_down == -1) - to_chat(usr, "You cannot roll down [src]!") - return - if((rolled_sleeves == 1) && !(rolled_down)) - rolled_sleeves = 0 - - rolled_down = !rolled_down - if(rolled_down) - body_parts_covered = initial(body_parts_covered) - body_parts_covered &= ~(UPPER_TORSO|ARMS) - if(worn_state in cached_icon_states(rolled_down_icon)) - icon_override = rolled_down_icon - LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) - else - LAZYSET(item_state_slots, slot_w_uniform_str, "[worn_state]_d") - - to_chat(usr, "You roll down your [src].") - else - body_parts_covered = initial(body_parts_covered) - if(icon_override == rolled_down_icon) - icon_override = initial(icon_override) - LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) - to_chat(usr, "You roll up your [src].") - update_clothing_icon() - -/obj/item/clothing/under/verb/rollsleeves() - set name = "Roll Up Sleeves" - set category = "Object" - set src in usr - if(!istype(usr, /mob/living)) return - if(usr.stat) return - - update_rollsleeves_status() - if(rolled_sleeves == -1) - to_chat(usr, "You cannot roll up your [src]'s sleeves!") - return - if(rolled_down == 1) - to_chat(usr, "You must roll up your [src] first!") - return - - rolled_sleeves = !rolled_sleeves - if(rolled_sleeves) - body_parts_covered &= ~(ARMS) - if(worn_state in cached_icon_states(rolled_down_sleeves_icon)) - icon_override = rolled_down_sleeves_icon - LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) - else - LAZYSET(item_state_slots, slot_w_uniform_str, "[worn_state]_r") - to_chat(usr, "You roll up your [src]'s sleeves.") - else - body_parts_covered = initial(body_parts_covered) - if(icon_override == rolled_down_sleeves_icon) - icon_override = initial(icon_override) - LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) - to_chat(usr, "You roll down your [src]'s sleeves.") - update_clothing_icon() - -/obj/item/clothing/under/rank/New() - sensor_mode = pick(0,1,2,3) - ..() - -//Vorestation edit - eject mobs from clothing before deletion -/obj/item/clothing/Destroy() - for(var/mob/living/M in contents) - M.forceMove(get_turf(src)) - return ..() -//Vorestation edit end +/obj/item/clothing + name = "clothing" + siemens_coefficient = 0.9 + drop_sound = 'sound/items/drop/clothing.ogg' + pickup_sound = 'sound/items/pickup/clothing.ogg' + var/list/species_restricted = null //Only these species can wear this kit. + var/gunshot_residue //Used by forensics. + + var/list/accessories + var/list/valid_accessory_slots + var/list/restricted_accessory_slots + var/list/starting_accessories + + var/flash_protection = FLASH_PROTECTION_NONE + var/tint = TINT_NONE + var/list/enables_planes //Enables these planes in the wearing mob's plane_holder + var/list/plane_slots //But only if it's equipped into this specific slot + + var/ear_protection = 0 + var/blood_sprite_state + + var/update_icon_define = null // Only needed if you've got multiple files for the same type of clothing + + var/polychromic = FALSE //VOREStation edit + +//Updates the icons of the mob wearing the clothing item, if any. +/obj/item/clothing/proc/update_clothing_icon() + return + +// Aurora forensics port. +/obj/item/clothing/clean_blood() + . = ..() + gunshot_residue = null + + +/obj/item/clothing/New() + ..() + if(starting_accessories) + for(var/T in starting_accessories) + var/obj/item/clothing/accessory/tie = new T(src) + src.attach_accessory(null, tie) + set_clothing_index() + + //VOREStation edit start + if(polychromic) + verbs |= /obj/item/clothing/proc/change_color + //VOREStation edit start + +/obj/item/clothing/update_icon() + cut_overlays() //This removes all the overlays on the sprite and then goes down a checklist adding them as required. + if(blood_DNA) + add_blood() + . = ..() + +/obj/item/clothing/equipped(var/mob/user,var/slot) + ..() + if(enables_planes) + user.recalculate_vis() + +/obj/item/clothing/dropped(var/mob/user) + ..() + if(enables_planes) + user.recalculate_vis() + +//BS12: Species-restricted clothing check. +/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = FALSE) + + //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) + if (!..()) + return 0 + + if(LAZYLEN(species_restricted) && istype(M,/mob/living/carbon/human)) + var/exclusive = null + var/wearable = null + var/mob/living/carbon/human/H = M + + if("exclude" in species_restricted) + exclusive = 1 + + if(H.species) + if(exclusive) + if(!(H.species.get_bodytype(H) in species_restricted)) + wearable = 1 + else + if(H.species.get_bodytype(H) in species_restricted) + wearable = 1 + + if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store))) + to_chat(H, "Your species cannot wear [src].") + return 0 + return 1 + +/obj/item/clothing/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") + . = ..() + if((. == 0) && LAZYLEN(accessories)) + for(var/obj/item/I in accessories) + var/check = I.handle_shield(user, damage, damage_source, attacker, def_zone, attack_text) + + if(check != 0) // Projectiles sometimes use negatives IIRC, 0 is only returned if something is not blocked. + . = check + break + +// For now, these two temp procs only return TRUE or FALSE if they can provide resistance to a given temperature. +/obj/item/clothing/proc/handle_low_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_low_temperature(tempcheck)) + . = TRUE + + if(min_cold_protection_temperature && min_cold_protection_temperature <= tempcheck) + . = TRUE + +/obj/item/clothing/proc/handle_high_temperature(var/tempcheck = T20C) + . = FALSE + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + if(C.handle_high_temperature(tempcheck)) + . = TRUE + + if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck) + . = TRUE + +// Returns the relative flag-vars for covered protection. +/obj/item/clothing/proc/get_cold_protection_flags() + . = cold_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_cold_protection_flags() + +/obj/item/clothing/proc/get_heat_protection_flags() + . = heat_protection + + if(LAZYLEN(accessories)) + for(var/obj/item/clothing/C in accessories) + . |= C.get_heat_protection_flags() + +/obj/item/clothing/proc/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN, SPECIES_SKRELL) //humanoid bodytypes + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +//VOREStation edit start +/obj/item/clothing/proc/change_color() + set name = "Change Color" + set category = "Object" + set desc = "Change the color of the clothing." + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + var/new_color = input(usr, "Pick a new color", "Color", color) as color|null + + if(new_color && (new_color != color)) + color = new_color + update_icon() + update_clothing_icon() +//VOREStation edit end + +/obj/item/clothing/head/helmet/refit_for_species(var/target_species) + if(!species_restricted) + return //this item doesn't use the species_restricted system + + //Set species_restricted list + switch(target_species) + //VOREStation Edit Start + if(SPECIES_HUMAN) + species_restricted = list(SPECIES_HUMAN, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_SKRELL) + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_RAPALA, SPECIES_VASILISSAN, SPECIES_ALRAUNE, SPECIES_PROMETHEAN, SPECIES_XENOCHIMERA) + if(SPECIES_UNATHI) + species_restricted = list(SPECIES_UNATHI, SPECIES_XENOHYBRID) + if(SPECIES_VULPKANIN) + species_restricted = list(SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_FENNEC) + if(SPECIES_SERGAL) + species_restricted = list(SPECIES_SERGAL, SPECIES_NEVREAN) + //VOREStation Edit End + else + species_restricted = list(target_species) + + //Set icon + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +/////////////////////////////////////////////////////////////////////// +// Ears: headsets, earmuffs and tiny objects +/obj/item/clothing/ears + name = "ears" + w_class = ITEMSIZE_TINY + throwforce = 2 + slot_flags = SLOT_EARS + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi') + +/obj/item/clothing/ears/attack_hand(mob/user as mob) + if (!user) return + + if (src.loc != user || !istype(user,/mob/living/carbon/human)) + ..() + return + + var/mob/living/carbon/human/H = user + if(H.l_ear != src && H.r_ear != src) + ..() + return + + if(!canremove) + return + + var/obj/item/clothing/ears/O + if(slot_flags & SLOT_TWOEARS ) + O = (H.l_ear == src ? H.r_ear : H.l_ear) + user.u_equip(O) + if(!istype(src,/obj/item/clothing/ears/offear)) + qdel(O) + O = src + else + O = src + + user.unEquip(src) + + if (O) + user.put_in_hands(O) + O.add_fingerprint(user) + + if(istype(src,/obj/item/clothing/ears/offear)) + qdel(src) + +/obj/item/clothing/ears/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_ears() + +/obj/item/clothing/ears/MouseDrop(var/obj/over_object) + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + // If this covers both ears, we want to return the result of unequipping the primary object, and kill the off-ear one + if(slot_flags & SLOT_TWOEARS) + var/obj/item/clothing/ears/O = (H.l_ear == src ? H.r_ear : H.l_ear) + if(istype(src, /obj/item/clothing/ears/offear)) + . = O.MouseDrop(over_object) + H.drop_from_inventory(src) + qdel(src) + else + . = ..() + H.drop_from_inventory(O) + qdel(O) + else + . = ..() + + +/obj/item/clothing/ears/offear + name = "Other ear" + w_class = ITEMSIZE_HUGE + icon = 'icons/mob/screen1_Midnight.dmi' + icon_state = "block" + slot_flags = SLOT_EARS | SLOT_TWOEARS + +/obj/item/clothing/ears/offear/New(var/obj/O) + name = O.name + desc = O.desc + icon = O.icon + icon_state = O.icon_state + set_dir(O.dir) + +//////////////////////////////////////////////////////////////////////////////////////// +//Gloves +/obj/item/clothing/gloves + name = "gloves" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + gender = PLURAL //Carn: for grammarically correct text-parsing + w_class = ITEMSIZE_SMALL + icon = 'icons/inventory/hands/item.dmi' + siemens_coefficient = 0.9 + blood_sprite_state = "bloodyhands" + var/wired = 0 + var/obj/item/weapon/cell/cell = 0 + var/fingerprint_chance = 0 //How likely the glove is to let fingerprints through + var/obj/item/clothing/gloves/ring = null //Covered ring + var/mob/living/carbon/human/wearer = null //Used for covered rings when dropping + var/glove_level = 2 //What "layer" the glove is on + var/overgloves = 0 //Used by gauntlets and arm_guards + var/punch_force = 0 //How much damage do these gloves add to a punch? + var/punch_damtype = BRUTE //What type of damage does this make fists be? + body_parts_covered = HANDS + slot_flags = SLOT_GLOVES + attack_verb = list("challenged") + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' + ) + drop_sound = 'sound/items/drop/gloves.ogg' + pickup_sound = 'sound/items/pickup/gloves.ogg' + +/obj/item/clothing/proc/set_clothing_index() + return + +/obj/item/clothing/gloves/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_gloves() + +/obj/item/clothing/gloves/emp_act(severity) + if(cell) + cell.emp_act(severity) + if(ring) + ring.emp_act(severity) + ..() + +// Called just before an attack_hand(), in mob/UnarmedAttack() +/obj/item/clothing/gloves/proc/Touch(var/atom/A, var/proximity) + return 0 // return 1 to cancel attack_hand() + +/*/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user) + if(W.is_wirecutter() || istype(W, /obj/item/weapon/scalpel)) + if (clipped) + to_chat(user, "The [src] have already been clipped!") + update_icon() + return + + playsound(src, W.usesound, 50, 1) + user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].") + + clipped = 1 + name = "modified [name]" + desc = "[desc]
    They have had the fingertips cut off of them." + if("exclude" in species_restricted) + species_restricted -= SPECIES_UNATHI + species_restricted -= SPECIES_TAJ + return +*/ + +/obj/item/clothing/gloves/clean_blood() + . = ..() + transfer_blood = 0 + update_icon() + +/obj/item/clothing/gloves/mob_can_equip(mob/user, slot, disable_warning = FALSE) + var/mob/living/carbon/human/H = user + + if(slot && slot == slot_gloves) + var/obj/item/clothing/gloves/G = H.gloves + if(istype(G)) + ring = H.gloves + if(ring.glove_level >= src.glove_level) + to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.") + ring = null + return 0 + else + H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves. + ring.forceMove(src) + to_chat(user, "You slip \the [src] on over \the [src.ring].") + if(!(flags & THICKMATERIAL)) + punch_force += ring.punch_force + else + ring = null + + if(!..()) + if(ring) //Put the ring back on if the check fails. + if(H.equip_to_slot_if_possible(ring, slot_gloves)) + src.ring = null + punch_force = initial(punch_force) + return 0 + + wearer = H //TODO clean this when magboots are cleaned + return 1 + +/obj/item/clothing/gloves/dropped() + ..() + + if(!wearer) + return + + var/mob/living/carbon/human/H = wearer + if(ring && istype(H)) + if(!H.equip_to_slot_if_possible(ring, slot_gloves)) + ring.forceMove(get_turf(src)) + src.ring = null + punch_force = initial(punch_force) + wearer = null + +/obj/item/clothing/gloves + var/datum/unarmed_attack/special_attack = null //do the gloves have a special unarmed attack? + var/special_attack_type = null + +/obj/item/clothing/gloves/New() + ..() + if(special_attack_type && ispath(special_attack_type)) + special_attack = new special_attack_type + + + +///////////////////////////////////////////////////////////////////// +//Rings + +/obj/item/clothing/gloves/ring + name = "ring" + w_class = ITEMSIZE_TINY + icon = 'icons/inventory/hands/item.dmi' + gender = NEUTER + species_restricted = list("exclude", SPECIES_DIONA) + siemens_coefficient = 1 + glove_level = 1 + fingerprint_chance = 100 + punch_force = 2 + body_parts_covered = 0 + drop_sound = 'sound/items/drop/ring.ogg' + pickup_sound = 'sound/items/pickup/ring.ogg' + +/////////////////////////////////////////////////////////////////////// +//Head +/obj/item/clothing/head + name = "head" + icon = 'icons/inventory/head/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_hats.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_hats.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_HEAD + w_class = ITEMSIZE_SMALL + blood_sprite_state = "helmetblood" + + light_system = MOVABLE_LIGHT_DIRECTIONAL + light_cone_y_offset = 11 + + var/light_overlay = "helmet_light" + var/image/helmet_light + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi' + ) + drop_sound = 'sound/items/drop/hat.ogg' + pickup_sound = 'sound/items/pickup/hat.ogg' + +/obj/item/clothing/head/attack_self(mob/user) + if(light_range) + if(!isturf(user.loc)) + to_chat(user, "You cannot toggle the light while in this [user.loc]") + return + update_flashlight(user) + to_chat(user, "You [light_on ? "enable" : "disable"] the helmet light.") + else + return ..(user) + +/obj/item/clothing/head/proc/update_flashlight(var/mob/user = null) + set_light_on(!light_on) + + if(light_system == STATIC_LIGHT) + update_light() + + update_icon(user) + user.update_action_buttons() + +/obj/item/clothing/head/attack_ai(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/attack_generic(var/mob/user) + if(!mob_wear_hat(user)) + return ..() + +/obj/item/clothing/head/proc/mob_wear_hat(var/mob/user) + if(!Adjacent(user)) + return 0 + var/success + if(istype(user, /mob/living/silicon/robot/drone)) + var/mob/living/silicon/robot/drone/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + else if(istype(user, /mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/D = user + if(D.hat) + success = 2 + else + D.wear_hat(src) + success = 1 + + if(!success) + return 0 + else if(success == 2) + to_chat(user, "You are already wearing a hat.") + else if(success == 1) + to_chat(user, "You crawl under \the [src].") + return 1 + +/obj/item/clothing/head/update_icon(var/mob/user) + var/mob/living/carbon/human/H + if(ishuman(user)) + H = user + + if(light_on) + // Generate object icon. + if(!light_overlay_cache["[light_overlay]_icon"]) + light_overlay_cache["[light_overlay]_icon"] = image(icon = 'icons/obj/light_overlays.dmi', icon_state = "[light_overlay]") + helmet_light = light_overlay_cache["[light_overlay]_icon"] + add_overlay(helmet_light) + + // Generate and cache the on-mob icon, which is used in update_inv_head(). + var/body_type = (H && H.species.get_bodytype(H)) + var/cache_key = "[light_overlay][body_type && LAZYACCESS(sprite_sheets, body_type) ? body_type : ""]" + if(!light_overlay_cache[cache_key]) + var/use_icon = LAZYACCESS(sprite_sheets, body_type) || 'icons/mob/light_overlays.dmi' + light_overlay_cache[cache_key] = image(icon = use_icon, icon_state = "[light_overlay]") + + else if(helmet_light) + cut_overlay(helmet_light) + helmet_light = null + + user.update_inv_head() //Will redraw the helmet with the light on the mob + +/obj/item/clothing/head/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_head() + +/////////////////////////////////////////////////////////////////////// +//Mask +/obj/item/clothing/mask + name = "mask" + icon = 'icons/inventory/face/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_masks.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_masks.dmi', + ) + body_parts_covered = HEAD + slot_flags = SLOT_MASK + body_parts_covered = FACE|EYES + blood_sprite_state = "maskblood" + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi', + SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi', + SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi' + ) + + var/voicechange = 0 + var/list/say_messages + var/list/say_verbs + + drop_sound = "generic_drop" + pickup_sound = "generic_pickup" + +/obj/item/clothing/mask/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_mask() + +/obj/item/clothing/mask/proc/filter_air(datum/gas_mixture/air) + return + +/////////////////////////////////////////////////////////////////////// +//Shoes +/obj/item/clothing/shoes + name = "shoes" + icon = 'icons/inventory/feet/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_shoes.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_shoes.dmi', + ) + desc = "Comfortable-looking shoes." + gender = PLURAL //Carn: for grammarically correct text-parsing + siemens_coefficient = 0.9 + body_parts_covered = FEET + slot_flags = SLOT_FEET + blood_sprite_state = "shoeblood" + + var/can_hold_knife = 0 + var/obj/item/holding + + var/shoes_under_pants = 0 + + var/water_speed = 0 //Speed boost/decrease in water, lower/negative values mean more speed + var/snow_speed = 0 //Speed boost/decrease on snow, lower/negative values mean more speed + + var/step_volume_mod = 1 //How quiet or loud footsteps in this shoe are + + permeability_coefficient = 0.50 + slowdown = SHOES_SLOWDOWN + force = 2 + var/overshoes = 0 + species_restricted = list("exclude",SPECIES_TESHARI, SPECIES_VOX) + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/feet/mob_vox.dmi' + ) + drop_sound = 'sound/items/drop/shoes.ogg' + pickup_sound = 'sound/items/pickup/shoes.ogg' + +/obj/item/clothing/shoes/proc/draw_knife() + set name = "Draw Boot Knife" + set desc = "Pull out your boot knife." + set category = "IC" + set src in usr + + if(usr.stat || usr.restrained() || usr.incapacitated()) + return + + //CHOMPEdit begin + if(istype(usr, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = usr + if(H.ability_flags & 0x1) + to_chat(usr, "You cannot do that while phase shifted.") + return + //CHOMPEdit end + + holding.forceMove(get_turf(usr)) + + if(usr.put_in_hands(holding)) + usr.visible_message("\The [usr] pulls a knife out of their boot!") + playsound(src, 'sound/weapons/holster/sheathout.ogg', 25) + holding = null + cut_overlay("[icon_state]_knife") + else + to_chat(usr, "Your need an empty, unbroken hand to do that.") + holding.forceMove(src) + + if(!holding) + verbs -= /obj/item/clothing/shoes/proc/draw_knife + + update_icon() + return + +/obj/item/clothing/shoes/attack_hand(var/mob/living/M) + if(can_hold_knife == 1 && holding && src.loc == M) + draw_knife() + return + ..() + +/obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user) + if((can_hold_knife == 1) && (istype(I, /obj/item/weapon/material/shard) || \ + istype(I, /obj/item/weapon/material/butterfly) || \ + istype(I, /obj/item/weapon/material/kitchen/utensil) || \ + istype(I, /obj/item/weapon/material/knife/tacknife))) + if(holding) + to_chat(user, "\The [src] is already holding \a [holding].") + return + user.unEquip(I) + I.forceMove(src) + holding = I + user.visible_message("\The [user] shoves \the [I] into \the [src].") + verbs |= /obj/item/clothing/shoes/proc/draw_knife + update_icon() + else + return ..() + +/obj/item/clothing/shoes/verb/toggle_layer() + set name = "Switch Shoe Layer" + set category = "Object" + + if(shoes_under_pants == -1) + to_chat(usr, "\The [src] cannot be worn above your suit!") + return + shoes_under_pants = !shoes_under_pants + update_icon() + +/obj/item/clothing/shoes/update_icon() + . = ..() + if(holding) + add_overlay("[icon_state]_knife") + if(contaminated) + add_overlay(contamination_overlay) + if(gurgled) //VOREStation Edit Start + decontaminate() + gurgle_contaminate() //VOREStation Edit End + if(ismob(usr)) + var/mob/M = usr + M.update_inv_shoes() + +/obj/item/clothing/shoes/clean_blood() + update_icon() + return ..() + +// CHOMPEdit Begin - tweaking handle_movement for inshoes steppies +/obj/item/clothing/shoes/proc/handle_movement(var/turf/walking, var/running, var/mob/living/carbon/human/pred) + if(!recent_squish && istype(pred)) + recent_squish = 1 + spawn(40) // Cooldown reduced from 100 to 40. Faster, but not that spammy + recent_squish = 0 + for(var/mob/living/M in contents) + if(pred.step_mechanics_pref && M.step_mechanics_pref) + src.handle_inshoe_stepping(pred, M) + else if (prob(1)) // Same old inshoe mechanics + var/emote = pick(inside_emotes) + to_chat(M,emote) + return //CHOMPEDIT End + +/obj/item/clothing/shoes/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_shoes() + + +/////////////////////////////////////////////////////////////////////// +//Suit +/obj/item/clothing/suit + icon = 'icons/inventory/suit/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_suits.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_suits.dmi', + ) + name = "suit" + var/fire_resist = T0C+100 + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + allowed = list(/obj/item/weapon/tank/emergency/oxygen) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0) + slot_flags = SLOT_OCLOTHING + var/blood_overlay_type = "suit" + blood_sprite_state = "suitblood" //Defaults to the suit's blood overlay, so that some blood renders instead of no blood. + + var/taurized = FALSE + siemens_coefficient = 0.9 + w_class = ITEMSIZE_NORMAL + preserve_item = 1 + equip_sound = 'sound/items/jumpsuit_equip.ogg' + + + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi' + ) + + valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND) + restricted_accessory_slots = (ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_wear_suit() + +/obj/item/clothing/suit/equipped(var/mob/user, var/slot) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/taurtail = istaurtail(H.tail_style) + if((taurized && !taurtail) || (!taurized && taurtail)) + taurize(user, taurtail) + + return ..() + +/obj/item/clothing/suit/proc/taurize(var/mob/living/carbon/human/Taur, has_taur_tail = FALSE) + if(has_taur_tail) + var/datum/sprite_accessory/tail/taur/taurtail = Taur.tail_style + if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites))) + icon_override = taurtail.suit_sprites + taurized = TRUE + // means that if a taur puts on an already taurized suit without a taur sprite + // for their taur type, but the previous taur type had a sprite, it stays + // taurized and they end up with that taur style which is funny + else + taurized = FALSE + + if(!taurized) + icon_override = initial(icon_override) + taurized = FALSE + +// Taur suits need to be shifted so its centered on their taur half. +/obj/item/clothing/suit/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer = 0,var/icon/clip_mask) + var/image/standing = ..() + if(taurized) //Special snowflake var on suits + standing.pixel_x = -16 + standing.layer = BODY_LAYER + 17 // 17 is above tail layer, so will not be covered by taurbody. TAIL_UPPER_LAYER +1 + return standing + +/obj/item/clothing/suit/apply_accessories(var/image/standing) + if(LAZYLEN(accessories) && taurized) + for(var/obj/item/clothing/accessory/A in accessories) + var/image/I = new(A.get_mob_overlay()) + I.pixel_x = 16 //Opposite of the pixel_x on the suit (-16) from taurization to cancel it out and puts the accessory in the correct place on the body. + standing.add_overlay(I) + else + return ..() + + +/////////////////////////////////////////////////////////////////////// +//Under clothing +/obj/item/clothing/under + icon = 'icons/inventory/uniform/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_uniforms.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_uniforms.dmi', + ) + name = "under" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + permeability_coefficient = 0.90 + slot_flags = SLOT_ICLOTHING + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + equip_sound = 'sound/items/jumpsuit_equip.ogg' + w_class = ITEMSIZE_NORMAL + show_messages = 1 + blood_sprite_state = "uniformblood" + + var/has_sensor = 1 //For the crew computer 2 = unable to change mode + var/sensor_mode = 0 + /* + 1 = Report living/dead + 2 = Report detailed damages + 3 = Report location + */ + var/displays_id = 1 + var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + var/rolled_down_icon_override = TRUE + var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled + var/rolled_sleeves_icon_override = TRUE + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/uniform/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/uniform/mob_vox.dmi' + ) + + //convenience var for defining the icon state for the overlay used when the clothing is worn. + //Also used by rolling/unrolling. + var/worn_state = null + valid_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_DECOR\ + |ACCESSORY_SLOT_MEDAL\ + |ACCESSORY_SLOT_INSIGNIA\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + restricted_accessory_slots = (\ + ACCESSORY_SLOT_UTILITY\ + |ACCESSORY_SLOT_WEAPON\ + |ACCESSORY_SLOT_ARMBAND\ + |ACCESSORY_SLOT_TIE\ + |ACCESSORY_SLOT_RANK\ + |ACCESSORY_SLOT_DEPT\ + |ACCESSORY_SLOT_OVER) + + var/icon/rolled_down_icon = 'icons/inventory/uniform/mob_rolled_down.dmi' + var/icon/rolled_down_sleeves_icon = 'icons/inventory/uniform/mob_sleeves_rolled.dmi' + +/obj/item/clothing/under/attack_hand(var/mob/user) + if(LAZYLEN(accessories)) + ..() + if ((ishuman(usr) || issmall(usr)) && src.loc == user) + return + ..() + +/obj/item/clothing/under/New() + ..() + if(worn_state) + LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) + else + worn_state = icon_state + + //autodetect rollability + if(rolled_down < 0) + if(("[worn_state]_d" in cached_icon_states(icon)) || (worn_state in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d" in cached_icon_states(icon_override))) + rolled_down = 0 + + if(rolled_down == -1) + verbs -= /obj/item/clothing/under/verb/rollsuit + if(rolled_sleeves == -1) + verbs -= /obj/item/clothing/under/verb/rollsleeves + +/obj/item/clothing/under/proc/update_rolldown_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override && rolled_down_icon_override) + under_icon = icon_override + else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H))) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(LAZYACCESS(item_icons, slot_w_uniform_str)) + under_icon = item_icons[slot_w_uniform_str] + else if (worn_state in cached_icon_states(rolled_down_icon)) + under_icon = rolled_down_icon + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_d" in cached_icon_states(under_icon))) + if(rolled_down != 1) + rolled_down = 0 + else + rolled_down = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/proc/update_rollsleeves_status() + var/mob/living/carbon/human/H + if(istype(src.loc, /mob/living/carbon/human)) + H = src.loc + + var/icon/under_icon + if(icon_override && rolled_sleeves_icon_override) + under_icon = icon_override + else if(H && LAZYACCESS(sprite_sheets, H.species.get_bodytype(H))) + under_icon = sprite_sheets[H.species.get_bodytype(H)] + else if(LAZYACCESS(item_icons, slot_w_uniform_str)) + under_icon = item_icons[slot_w_uniform_str] + else if (worn_state in cached_icon_states(rolled_down_sleeves_icon)) + under_icon = rolled_down_sleeves_icon + else + under_icon = new /icon(INV_W_UNIFORM_DEF_ICON) + + // The _s is because the icon update procs append it. + if((under_icon == rolled_down_sleeves_icon && ("[worn_state]" in cached_icon_states(under_icon))) || ("[worn_state]_r" in cached_icon_states(under_icon))) + if(rolled_sleeves != 1) + rolled_sleeves = 0 + else + rolled_sleeves = -1 + if(H) update_clothing_icon() + +/obj/item/clothing/under/update_clothing_icon() + if (ismob(src.loc)) + var/mob/M = src.loc + M.update_inv_w_uniform() + + set_clothing_index() + + +/obj/item/clothing/under/examine(mob/user) + . = ..() + switch(src.sensor_mode) + if(0) + . += "Its sensors appear to be disabled." + if(1) + . += "Its binary life sensors appear to be enabled." + if(2) + . += "Its vital tracker appears to be enabled." + if(3) + . += "Its vital tracker and tracking beacon appear to be enabled." + +/obj/item/clothing/under/proc/set_sensors(mob/usr as mob) + var/mob/M = usr + if (istype(M, /mob/observer)) return + if (usr.stat || usr.restrained()) return + if(has_sensor >= 2) + to_chat(usr, "The controls are locked.") + return 0 + if(has_sensor <= 0) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + var/list/modes = list("Off", "Binary sensors", "Vitals tracker", "Tracking beacon") + var/switchMode = tgui_input_list(usr, "Select a sensor mode:", "Suit Sensor Mode", modes) + if(get_dist(usr, src) > 1) + to_chat(usr, "You have moved too far away.") + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + usr.visible_message("[usr] adjusts their sensors.", "You disable your suit's remote sensing equipment.") + if(1) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report whether you are live or dead.") + if(2) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns.") + if(3) + usr.visible_message("[usr] adjusts their sensors.", "Your suit will now report your vital lifesigns as well as your coordinate position.") + + else if (istype(src.loc, /mob)) + usr.visible_message("[usr] adjusts [src.loc]'s sensors.", "You adjust [src.loc]'s sensors.") + +/obj/item/clothing/under/verb/toggle() + set name = "Toggle Suit Sensors" + set category = "Object" + set src in usr + set_sensors(usr) + +/obj/item/clothing/under/verb/rollsuit() + set name = "Roll Down Jumpsuit" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rolldown_status() + if(rolled_down == -1) + to_chat(usr, "You cannot roll down [src]!") + return + if((rolled_sleeves == 1) && !(rolled_down)) + rolled_sleeves = 0 + + rolled_down = !rolled_down + if(rolled_down) + body_parts_covered = initial(body_parts_covered) + body_parts_covered &= ~(UPPER_TORSO|ARMS) + if(worn_state in cached_icon_states(rolled_down_icon)) + icon_override = rolled_down_icon + LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) + else + LAZYSET(item_state_slots, slot_w_uniform_str, "[worn_state]_d") + + to_chat(usr, "You roll down your [src].") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_icon) + icon_override = initial(icon_override) + LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) + to_chat(usr, "You roll up your [src].") + update_clothing_icon() + +/obj/item/clothing/under/verb/rollsleeves() + set name = "Roll Up Sleeves" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + update_rollsleeves_status() + if(rolled_sleeves == -1) + to_chat(usr, "You cannot roll up your [src]'s sleeves!") + return + if(rolled_down == 1) + to_chat(usr, "You must roll up your [src] first!") + return + + rolled_sleeves = !rolled_sleeves + if(rolled_sleeves) + body_parts_covered &= ~(ARMS) + if(worn_state in cached_icon_states(rolled_down_sleeves_icon)) + icon_override = rolled_down_sleeves_icon + LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) + else + LAZYSET(item_state_slots, slot_w_uniform_str, "[worn_state]_r") + to_chat(usr, "You roll up your [src]'s sleeves.") + else + body_parts_covered = initial(body_parts_covered) + if(icon_override == rolled_down_sleeves_icon) + icon_override = initial(icon_override) + LAZYSET(item_state_slots, slot_w_uniform_str, worn_state) + to_chat(usr, "You roll down your [src]'s sleeves.") + update_clothing_icon() + +/obj/item/clothing/under/rank/New() + sensor_mode = pick(0,1,2,3) + ..() + +//Vorestation edit - eject mobs from clothing before deletion +/obj/item/clothing/Destroy() + for(var/mob/living/M in contents) + M.forceMove(get_turf(src)) + return ..() +//Vorestation edit end diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index bbf0809bc4..c2c597ad7b 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -106,3 +106,9 @@ desc = "It's a field cap in white, with a blue cross on the front." icon_state = "medsoft" item_state_slots = list(slot_r_hand_str = "mimesoft", slot_l_hand_str = "mimesoft") + +/obj/item/clothing/head/soft/paramed + name = "paramedic's cap" + desc = "It's a field cap in dark blue, with a white cross on the front." + icon_state = "emtsoft" + item_state_slots = list(slot_r_hand_str = "bluesoft", slot_l_hand_str = "bluesoft") diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index f3f8ea160c..249184aef5 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -190,6 +190,7 @@ desc = "A pair of winter boots, with metal bracing attached to assist in climbing rocky terrain." icon_state = "climbing_boots" rock_climbing = TRUE + //Climbing delay with boots is 1 /obj/item/clothing/shoes/boots/tactical name = "tactical boots" diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index d10be1aa91..6c91755c69 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -172,7 +172,7 @@ /obj/item/clothing/head/helmet/space/void/medical/bio name = "biohazard voidsuit helmet" - desc = "A special suit designed to protect the user in hazardous enviornments on the field. It feels heavier than the standard suit with extra protection around the joints." + desc = "A special suit designed to protect the user in hazardous environments on the field. It feels heavier than the standard suit with extra protection around the joints." icon_state = "rig0-medical_bio" item_state_slots = list(slot_r_hand_str = "medical_helm_bio", slot_l_hand_str = "medical_helm_bio") armor = list(melee = 55, bullet = 15, laser = 20, energy = 15, bomb = 15, bio = 100, rad = 75) @@ -182,7 +182,7 @@ /obj/item/clothing/suit/space/void/medical/bio name = "biohazard voidsuit" - desc = "A special suit designed to protect the user in hazardous enviornments on the field. It feels heavier than the standard suit with extra protection around the joints." + desc = "A special suit designed to protect the user in hazardous environments on the field. It feels heavier than the standard suit with extra protection around the joints." icon_state = "rig-medical_bio" item_state_slots = list(slot_r_hand_str = "medical_voidsuit_bio", slot_l_hand_str = "medical_voidsuit_bio") armor = list(melee = 55, bullet = 15, laser = 20, energy = 15, bomb = 15, bio = 100, rad = 75) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 3d3bafeab9..1a2983efe6 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -316,7 +316,7 @@ /obj/item/clothing/accessory/medal/gold/heroism name = "medal of exceptional heroism" - desc = "An extremely rare golden medal awarded only by high ranking officials. To recieve such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but distinguished veteran staff." + desc = "An extremely rare golden medal awarded only by high ranking officials. To receive such a medal is the highest honor and as such, very few exist. This medal is almost never awarded to anybody but distinguished veteran staff." /obj/item/clothing/accessory/medal/gold/casino name = "medal of true lucky winner" @@ -669,4 +669,4 @@ /obj/item/clothing/accessory/poncho/roles/ranger/snow name = "white ranger poncho" icon_state = "rangerponcho_snow" - item_state = "rangerponcho_snow" \ No newline at end of file + item_state = "rangerponcho_snow" diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm index cce7aabaa1..a99c9f6bcb 100644 --- a/code/modules/clothing/under/accessories/accessory_vr.dm +++ b/code/modules/clothing/under/accessories/accessory_vr.dm @@ -147,7 +147,7 @@ usr.audible_message("[usr] jingles the [src]'s bell.", runemessage = "jingle") playsound(src, 'sound/items/pickup/ring.ogg', 50, 1) jingled = 1 - addtimer(CALLBACK(src, .proc/jingledreset), 50) + addtimer(CALLBACK(src, PROC_REF(jingledreset)), 50) return /obj/item/clothing/accessory/collar/bell/proc/jingledreset() diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index a9839f0249..42ee5a7d6a 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -80,6 +80,7 @@ desc = "This glowing blue badge marks the holder as THE LAW." icon_state = "holobadge" var/emagged //Emagging removes Sec check. + var/valid_access = list(access_security) //Default access is security, to be overriden or expanded as desired /obj/item/clothing/accessory/badge/holo/cord icon_state = "holobadge-cord" @@ -111,10 +112,14 @@ var/obj/item/device/pda/pda = O id_card = pda.id - if(access_security in id_card.access || emagged) - to_chat(user, "You imprint your ID details onto the badge.") - set_name(user.real_name) - else + var/found = FALSE + for(var/access in valid_access) + if(access in id_card.access || emagged) + to_chat(user, "You imprint your ID details onto the badge.") + set_name(user.real_name) + found = TRUE + break + if(!found) to_chat(user, "[src] rejects your insufficient access rights.") return ..() @@ -157,6 +162,7 @@ desc = "This badge marks the holder as an investigative agent." icon_state = "invbadge" badge_string = "Corporate Investigator" + valid_access = list(access_security, access_lawyer) //Permitting both sec and IAA! slot_flags = SLOT_TIE | SLOT_BELT /obj/item/clothing/accessory/badge/holo/sheriff diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index b4502ed6fa..d980959035 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -508,7 +508,7 @@ /obj/item/clothing/accessory/asymmetric name = "blue asymmetrical jacket" - desc = "Insultingly avant-garde in prussian blue." + desc = "Insultingly avant-garde in Prussian blue." icon_state = "asym_blue" /obj/item/clothing/accessory/asymmetric/purple diff --git a/code/modules/economy/vending.dm b/code/modules/economy/vending.dm index 929023ce86..e17d5c951f 100644 --- a/code/modules/economy/vending.dm +++ b/code/modules/economy/vending.dm @@ -619,7 +619,7 @@ GLOBAL_LIST_EMPTY(vending_products) use_power(vend_power_usage) //actuators and stuff flick("[icon_state]-vend",src) - addtimer(CALLBACK(src, .proc/delayed_vend, R, user), vend_delay) + addtimer(CALLBACK(src, PROC_REF(delayed_vend), R, user), vend_delay) /obj/machinery/vending/proc/delayed_vend(datum/stored_item/vending_product/R, mob/user) R.get_product(get_turf(src)) @@ -777,7 +777,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(!throw_item) return FALSE throw_item.vendor_action(src) - INVOKE_ASYNC(throw_item, /atom/movable.proc/throw_at, target, rand(3, 10), rand(1, 3), src) + INVOKE_ASYNC(throw_item, TYPE_PROC_REF(/atom/movable, throw_at), target, rand(3, 10), rand(1, 3), src) visible_message("\The [src] launches \a [throw_item] at \the [target]!") return 1 diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 603f205055..7f2a69c579 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -329,12 +329,14 @@ /obj/item/weapon/storage/fancy/cigarettes/luckystars = 10, /obj/item/weapon/storage/fancy/cigarettes/jerichos = 10, /obj/item/weapon/storage/fancy/cigarettes/menthols = 10, + /obj/item/weapon/storage/fancy/cigarettes/carcinomas = 10, + /obj/item/weapon/storage/fancy/cigarettes/professionals = 10, /obj/item/weapon/storage/rollingpapers = 10, /obj/item/weapon/storage/rollingpapers/blunt = 10, /obj/item/weapon/storage/chewables/tobacco = 5, /obj/item/weapon/storage/chewables/tobacco/fine = 5, /obj/item/weapon/storage/box/matches = 10, - /obj/item/weapon/flame/lighter/random = 4, + /obj/item/weapon/flame/lighter = 4, /obj/item/clothing/mask/smokable/ecig/util = 2, ///obj/item/clothing/mask/smokable/ecig/deluxe = 2, /obj/item/clothing/mask/smokable/ecig/simple = 2, @@ -349,21 +351,21 @@ /obj/item/weapon/reagent_containers/ecig_cartridge/blanknico = 2, /obj/item/weapon/storage/box/fancy/chewables/tobacco/nico = 5) contraband = list(/obj/item/weapon/flame/lighter/zippo = 4) - premium = list(/obj/item/weapon/storage/fancy/cigar = 5, - /obj/item/weapon/storage/fancy/cigarettes/carcinomas = 5, - /obj/item/weapon/storage/fancy/cigarettes/professionals = 5) + premium = list(/obj/item/weapon/storage/fancy/cigar = 5) prices = list(/obj/item/weapon/storage/fancy/cigarettes = 12, /obj/item/weapon/storage/fancy/cigarettes/dromedaryco = 20, /obj/item/weapon/storage/fancy/cigarettes/killthroat = 14, /obj/item/weapon/storage/fancy/cigarettes/luckystars = 17, /obj/item/weapon/storage/fancy/cigarettes/jerichos = 22, /obj/item/weapon/storage/fancy/cigarettes/menthols = 18, + /obj/item/weapon/storage/fancy/cigarettes/carcinomas = 24, + /obj/item/weapon/storage/fancy/cigarettes/professionals = 27, /obj/item/weapon/storage/rollingpapers = 10, /obj/item/weapon/storage/rollingpapers/blunt = 20, /obj/item/weapon/storage/chewables/tobacco = 10, /obj/item/weapon/storage/chewables/tobacco/fine = 20, /obj/item/weapon/storage/box/matches = 1, - /obj/item/weapon/flame/lighter/random = 2, + /obj/item/weapon/flame/lighter/ = 2, /obj/item/clothing/mask/smokable/ecig/util = 100, ///obj/item/clothing/mask/smokable/ecig/deluxe = 300, /obj/item/clothing/mask/smokable/ecig/simple = 150, diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 7448fc528e..c3e587f51d 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -92,7 +92,7 @@ /obj/machinery/vending/fooditalian name = "Italian Imports" - desc = "You wanted some italian food? Well here's some imported from the local pizza place!" + desc = "You wanted some Italian food? Well here's some imported from the local pizza place!" icon_state = "hotfood" products = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza = 15, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza = 15, @@ -3617,6 +3617,8 @@ /obj/item/weapon/reagent_containers/food/snacks/ratfruitcake = 15, /obj/item/weapon/reagent_containers/food/snacks/ratpackburger = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackcheese = 8, + /obj/item/weapon/reagent_containers/food/snacks/ratpackramen = 8, + /obj/item/weapon/reagent_containers/food/snacks/ratpacktaco = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackturkey = 2) prices = list(/obj/item/weapon/reagent_containers/food/snacks/ratprotein = 8, @@ -3625,4 +3627,6 @@ /obj/item/weapon/reagent_containers/food/snacks/ratfruitcake = 8, /obj/item/weapon/reagent_containers/food/snacks/ratpackburger = 10, /obj/item/weapon/reagent_containers/food/snacks/ratpackcheese = 10, + /obj/item/weapon/reagent_containers/food/snacks/ratpackramen = 10, + /obj/item/weapon/reagent_containers/food/snacks/ratpacktaco = 10, /obj/item/weapon/reagent_containers/food/snacks/ratpackturkey = 200) diff --git a/code/modules/eventkit/event_machinery.dm b/code/modules/eventkit/event_machinery.dm new file mode 100644 index 0000000000..be65102625 --- /dev/null +++ b/code/modules/eventkit/event_machinery.dm @@ -0,0 +1,3 @@ +/obj/machinery/eventkit/custom + name = "Custom Machine" + desc = "A custom machine created by a GM." diff --git a/code/modules/eventkit/gm_interfaces/mob_spawner.dm b/code/modules/eventkit/gm_interfaces/mob_spawner.dm new file mode 100644 index 0000000000..a182dad666 --- /dev/null +++ b/code/modules/eventkit/gm_interfaces/mob_spawner.dm @@ -0,0 +1,139 @@ +/datum/eventkit/mob_spawner + // The path of the mob to be spawned + var/path + + // Defines if the location of the spawned mob should be bound of the users position + var/loc_lock = FALSE + +/datum/eventkit/mob_spawner/New() + . = ..() + +/datum/eventkit/mob_spawner/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MobSpawner", "EventKit - Mob Spawner") + ui.set_autoupdate(FALSE) + ui.open() + +/datum/eventkit/mob_spawner/Destroy() + . = ..() + +/datum/eventkit/mob_spawner/tgui_state(mob/user) + return GLOB.tgui_admin_state + +/datum/eventkit/mob_spawner/tgui_static_data(mob/user) + var/list/data = list() + + data["initial_x"] = usr.x; + data["initial_y"] = usr.y; + data["initial_z"] = usr.z; + + return data + +/datum/eventkit/mob_spawner/tgui_data(mob/user) + var/list/data = list() + + data["loc_lock"] = loc_lock; + if(loc_lock) + data["loc_x"] = usr.x; + data["loc_y"] = usr.y; + data["loc_z"] = usr.z; + + data["path"] = path; + + if(path) + var/mob/M = new path(); + if(M) + data["default_path_name"] = M.name; + data["default_desc"] = M.desc; + data["default_flavor_text"] = M.flavor_text; + qdel(M); + + return data + +/datum/eventkit/mob_spawner/tgui_act(action, list/params) + . = ..() + if(.) + return + if(!check_rights_for(usr.client, R_SPAWN)) + return + switch(action) + if("select_path") + var/list/choices = typesof(/mob) + var/newPath = tgui_input_list(usr, "Please select the new path of the mob you want to spawn.", items = choices) + + path = newPath + + return TRUE + if("loc_lock") + loc_lock = !loc_lock + return TRUE + if("start_spawn") + var/confirm = tgui_alert(usr, "Are you sure that you want to start spawning your custom mobs?", "Confirmation", list("Yes", "Cancel")) + + if(confirm != "Yes") + return FALSE + + var/amount = params["amount"] + var/name = params["name"] + var/x = params["x"] + var/y = params["y"] + var/z = params["z"] + + if(!name) + to_chat(usr, "Name cannot be empty.") + return FALSE + + var/turf/T = locate(x, y, z) + if(!T) + to_chat(usr, "Those coordinates are outside the boundaries of the map.") + return FALSE + + for(var/i = 0, i < amount, i++) + if(ispath(path,/turf)) + var/turf/TU = get_turf(locate(x, y, z)) + TU.ChangeTurf(path) + else + var/mob/M = new path(usr.loc) + + M.name = sanitize(name) + M.desc = sanitize(params["desc"]) + M.flavor_text = sanitize(params["flavor_text"]) + + /* + WIP: Radius around selected coords + + var/list/turf/destTurfs + for(var/turf/RT in orange(T, params["r"])) + destTurfs += RT + + var/turf/targetTurf = rand(0,length(destTurfs)) + */ + + var/size_mul = params["size_multiplier"] + if(isnum(size_mul)) + M.size_multiplier = size_mul + M.update_icon() + else + to_chat(usr, "Size Multiplier not applied: ([size_mul]) is not a valid input.") + + M.forceMove(T) + + log_and_message_admins("spawned [path] ([name]) at ([x],[y],[z]) [amount] times.") + + return TRUE + +/datum/eventkit/mob_spawner/tgui_close(mob/user) + . = ..() + qdel(src) + +/client/proc/eventkit_open_mob_spawner() + set category = "EventKit" + set name = "Open Mob Spawner" + set desc = "Opens an advanced version of the mob spawner." + + if(!check_rights(R_SPAWN)) + return + + var/datum/eventkit/mob_spawner/spawner = new() + spawner.tgui_interact(usr) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index c4161150e3..180380bc44 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -73,7 +73,7 @@ // Spawn a single carp at given location. /datum/event/carp_migration/proc/spawn_one_carp(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/carp/event(loc) - GLOB.destroyed_event.register(M, src, .proc/on_carp_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_carp_destruction)) spawned_carp.Add(M) return M @@ -87,7 +87,7 @@ // If carp is bomphed, remove it from the list. /datum/event/carp_migration/proc/on_carp_destruction(var/mob/M) spawned_carp -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_carp_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_carp_destruction)) /datum/event/carp_migration/end() . = ..() diff --git a/code/modules/events/gnat_migration.dm b/code/modules/events/gnat_migration.dm index e807f85b3c..8d0428eab8 100644 --- a/code/modules/events/gnat_migration.dm +++ b/code/modules/events/gnat_migration.dm @@ -69,7 +69,7 @@ // Spawn a single gnat at given location. /datum/event/gnat_migration/proc/spawn_one_gnat(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/gnat(loc) - GLOB.destroyed_event.register(M, src, .proc/on_gnat_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_gnat_destruction)) spawned_gnat.Add(M) return M @@ -83,7 +83,7 @@ // If gnat is bomphed, remove it from the list. /datum/event/gnat_migration/proc/on_gnat_destruction(var/mob/M) spawned_gnat -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_gnat_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_gnat_destruction)) /datum/event/gnat_migration/end() . = ..() diff --git a/code/modules/events/ian_storm_vr.dm b/code/modules/events/ian_storm_vr.dm index 486c2a547d..08a3ea3036 100644 --- a/code/modules/events/ian_storm_vr.dm +++ b/code/modules/events/ian_storm_vr.dm @@ -6,7 +6,7 @@ /datum/event/ianstorm/announce() command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert") //CHOMPedit: removes announcement .ogg spawn(7 SECONDS) - command_announcement.Announce("Wait. No, thats wrong. The station passed through an IAN storm!.", "Ian Alert") + command_announcement.Announce("Wait. No, that's wrong. The station passed through an IAN storm!.", "Ian Alert") /datum/event/ianstorm/start() spawn() diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index eff20ca2a3..53e232f2a1 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -87,26 +87,71 @@ min_number = 2 //CHOMP Add max_number = 6 vermstring = "lizards" + + // ChompEDIT Begin if(VERM_SPIDERS) spawn_types = list(/obj/effect/spider/spiderling) min_number = 4 //CHOMP Add max_number = 8 //CHOMP edit vermstring = "spiders" - + + /* //Chomp REMOVE - in upstream file, not used here + // Check if any landmarks exist! + for(var/obj/effect/landmark/C in landmarks_list) + if(C.name == "verminstart") + spawn_locations.Add(C.loc) + */ //Chomp REMOVE END + spawn(0) var/num = rand(min_number,max_number) while(turfs.len > 0 && num > 0) var/turf/simulated/floor/T = pick(turfs) turfs.Remove(T) num-- - + if(vermin == VERM_SPIDERS) var/obj/effect/spider/spiderling/S = new(T) S.amount_grown = -1 else var/spawn_type = pick(spawn_types) new spawn_type(T) + // ChompEDIT End +/* CHOMPedit - Upstream Code, not implmeneted here +/datum/event/infestation/tick() + if(activeFor % 5 != 0) + return // Only process every 10 seconds. + if(count_spawned_vermin() < vermin_cap) + spawn_vermin(rand(4,10), prep_size_min, prep_size_max) +/datum/event/infestation/proc/spawn_vermin(var/num_groups, var/group_size_min, var/group_size_max) + if(spawn_locations.len) // Okay we've got landmarks, lets use those! + shuffle_inplace(spawn_locations) + num_groups = min(num_groups, spawn_locations.len) + for (var/i = 1, i <= num_groups, i++) + var/group_size = rand(group_size_min, group_size_max) + for (var/j = 0, j < group_size, j++) + spawn_one_vermin(spawn_locations[i]) + return + +// Spawn a single vermin at given location. +/datum/event/infestation/proc/spawn_one_vermin(var/loc) + var/mob/living/simple_mob/animal/M = new spawn_types(loc) + GLOB.destroyed_event.register(M, src, PROC_REF(on_vermin_destruction)) + spawned_vermin.Add(M) + return M + +// Counts living vermin spawned by this event. +/datum/event/infestation/proc/count_spawned_vermin() + . = 0 + for(var/mob/living/simple_mob/animal/M as anything in spawned_vermin) + if(!QDELETED(M) && M.stat != DEAD) + . += 1 + +// If vermin is kill, remove it from the list. +/datum/event/infestation/proc/on_vermin_destruction(var/mob/M) + spawned_vermin -= M + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_vermin_destruction)) +*/ // CHOMPedit End /datum/event/infestation/announce() command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation") @@ -124,4 +169,4 @@ #undef VERM_MICE #undef VERM_LIZARDS -#undef VERM_SPIDERS +#undef VERM_SPIDERS // Chomp EDIT diff --git a/code/modules/events/jellyfish_migration.dm b/code/modules/events/jellyfish_migration.dm index 7498539ae1..0a0f639451 100644 --- a/code/modules/events/jellyfish_migration.dm +++ b/code/modules/events/jellyfish_migration.dm @@ -69,7 +69,7 @@ // Spawn a single jellyfish at given location. /datum/event/jellyfish_migration/proc/spawn_one_jellyfish(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc) - GLOB.destroyed_event.register(M, src, .proc/on_jellyfish_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_jellyfish_destruction)) spawned_jellyfish.Add(M) return M @@ -83,7 +83,7 @@ // If jellyfish is bomphed, remove it from the list. /datum/event/jellyfish_migration/proc/on_jellyfish_destruction(var/mob/M) spawned_jellyfish -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_jellyfish_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_jellyfish_destruction)) /datum/event/jellyfish_migration/end() . = ..() diff --git a/code/modules/events/money_lotto.dm b/code/modules/events/money_lotto.dm index 5d12c8dfc3..a4df20cd08 100644 --- a/code/modules/events/money_lotto.dm +++ b/code/modules/events/money_lotto.dm @@ -26,7 +26,7 @@ var/author = "[using_map.company_name] Editor" var/channel = "The [using_map.starsys_name] Times" - var/body = "The [using_map.starsys_name] Times wishes to congratulate [winner_name] for recieving the [using_map.starsys_name] Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!" + var/body = "The [using_map.starsys_name] Times wishes to congratulate [winner_name] for receiving the [using_map.starsys_name] Stellar Slam Lottery, and receiving the out of this world sum of [winner_sum] credits!" if(!deposit_success) body += "
    Unfortunately, we were unable to verify the account details provided, so we were unable to transfer the money. Send a cheque containing the sum of 5000 Thalers to ND 'Stellar Slam' office on the The [using_map.starsys_name] Times gateway containing updated details, and your winnings'll be re-sent within the month." diff --git a/code/modules/events/ray_migration.dm b/code/modules/events/ray_migration.dm index 3df3971a81..559f77169b 100644 --- a/code/modules/events/ray_migration.dm +++ b/code/modules/events/ray_migration.dm @@ -69,7 +69,7 @@ // Spawn a single ray at given location. /datum/event/ray_migration/proc/spawn_one_ray(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/ray(loc) - GLOB.destroyed_event.register(M, src, .proc/on_ray_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_ray_destruction)) spawned_ray.Add(M) return M @@ -83,7 +83,7 @@ // If ray is bomphed, remove it from the list. /datum/event/ray_migration/proc/on_ray_destruction(var/mob/M) spawned_ray -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_ray_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_ray_destruction)) /datum/event/ray_migration/end() . = ..() diff --git a/code/modules/events/shark_migration.dm b/code/modules/events/shark_migration.dm index 7baed0af9c..dc3d0d9438 100644 --- a/code/modules/events/shark_migration.dm +++ b/code/modules/events/shark_migration.dm @@ -69,7 +69,7 @@ // Spawn a single shark at given location. /datum/event/shark_migration/proc/spawn_one_shark(var/loc) var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/animal/space/shark/event(loc) - GLOB.destroyed_event.register(M, src, .proc/on_shark_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_shark_destruction)) spawned_shark.Add(M) return M @@ -83,7 +83,7 @@ // If shark is bomphed, remove it from the list. /datum/event/shark_migration/proc/on_shark_destruction(var/mob/M) spawned_shark -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_shark_destruction) + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_shark_destruction)) /datum/event/shark_migration/end() . = ..() diff --git a/code/modules/examine/descriptions/medical.dm b/code/modules/examine/descriptions/medical.dm index 931b262a66..7bab2f8ef5 100644 --- a/code/modules/examine/descriptions/medical.dm +++ b/code/modules/examine/descriptions/medical.dm @@ -42,23 +42,23 @@ Note that you cannot control the sleeper while inside of it." /obj/item/bodybag/cryobag - description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occuring, such as from oxygen \ + description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occurring, such as from oxygen \ deprivation, irradiation, shock, and chemicals inside the occupant, at least until the bag is opened again.
    \
    \ Stasis bags can only be used once, and are rather costly, so use them well. They are ideal for situations where someone may die \ - before being able to bring them back to safety, or if they are in a hostile enviroment, such as in vacuum or in a phoron leak, as \ - the bag will protect the occupant from most outside enviromental hazards. If you open a bag by mistake, closing the bag with no \ + before being able to bring them back to safety, or if they are in a hostile environment, such as in vacuum or in a phoron leak, as \ + the bag will protect the occupant from most outside environmental hazards. If you open a bag by mistake, closing the bag with no \ occupant will not use up the bag, and you can pick it back up.
    \
    \ You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer." /obj/structure/closet/body_bag/cryobag - description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occuring, such as from oxygen \ + description_info = "This stasis bag will preserve the occupant, stopping most forms of harm from occurring, such as from oxygen \ deprivation, irradiation, shock, and chemicals inside the occupant, at least until the bag is opened again.
    \
    \ Stasis bags can only be used once, and are rather costly, so use them well. They are ideal for situations where someone may die \ - before being able to bring them back to safety, or if they are in a hostile enviroment, such as in vacuum or in a phoron leak, as \ - the bag will protect the occupant from most outside enviromental hazards. If you open a bag by mistake, closing the bag with no \ + before being able to bring them back to safety, or if they are in a hostile environment, such as in vacuum or in a phoron leak, as \ + the bag will protect the occupant from most outside environmental hazards. If you open a bag by mistake, closing the bag with no \ occupant will not use up the bag, and you can pick it back up.
    \
    \ - You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer." \ No newline at end of file + You can use a health analyzer to scan the occupant's vitals without opening the bag by clicking the occupied bag with the analyzer." diff --git a/code/modules/ext_scripts/irc.dm b/code/modules/ext_scripts/irc.dm index a554cdd20a..5cfeae553c 100644 --- a/code/modules/ext_scripts/irc.dm +++ b/code/modules/ext_scripts/irc.dm @@ -18,7 +18,7 @@ nudge_lib = "lib/nudge.so" spawn(0) - call(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[escape_shell_arg(msg)]") + LIBCALL(nudge_lib, "nudge")("[config.comms_password]","[config.irc_bot_host]","[channel]","[escape_shell_arg(msg)]") else spawn(0) ext_python("ircbot_message.py", "[config.comms_password] [config.irc_bot_host] [channel] [escape_shell_arg(msg)]") @@ -39,4 +39,3 @@ /hook/startup/proc/ircNotify() send2mainirc("Server starting up on byond://[config.serverurl ? config.serverurl : (config.server ? config.server : "[world.address]:[world.port]")]") return 1 - diff --git a/code/modules/food/food/cans.dm b/code/modules/food/food/cans.dm index 4f2cac048d..75b7ac0dd3 100644 --- a/code/modules/food/food/cans.dm +++ b/code/modules/food/food/cans.dm @@ -200,7 +200,7 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/kvass name = "\improper Kvass" desc = "A true Slavic soda." - description_fluff = "A classic slavic beverage which many space-faring slavs still enjoy to this day. Fun fact, it is actually considered a weak beer by non-russians." + description_fluff = "A classic Slavic beverage which many space-faring Slavs still enjoy to this day. Fun fact, it is actually considered a weak beer by non-Russians." icon_state = "kvass" center_of_mass = list("x"=16, "y"=10) @@ -210,8 +210,8 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/kompot name = "\improper Kompot" - desc = "A taste of russia in the summertime - canned for you consumption." - description_fluff = "A sweet and fruity beverage that was traditionally used to preserve frutis in harsh Russian winters that is now available for widespread comsumption." + desc = "A taste of Russia in the summertime - canned for you consumption." + description_fluff = "A sweet and fruity beverage that was traditionally used to preserve fruits in harsh Russian winters that is now available for widespread consumption." icon_state = "kompot" center_of_mass = list("x"=16, "y"=10) @@ -305,7 +305,7 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/lemon_cola name = "\improper Lunar Lemon" - desc = "Feel back at home on the Lunar Colonies with this classic berverage straight from the source!" + desc = "Feel back at home on the Lunar Colonies with this classic beverage straight from the source!" icon_state = "lemoncoke" center_of_mass = list("x"=16, "y"=8) @@ -325,7 +325,7 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/grape_cola name = "\improper Gravity Grape" - desc = "Get down with Newton's favorite corbonated science experiment!" + desc = "Get down with Newton's favorite carbonated science experiment!" icon_state = "grapesoda" center_of_mass = list("x"=16, "y"=8) @@ -382,10 +382,10 @@ name = "\improper Café Del Consumir" desc = "A can of deliciously sweet iced coffee that originates from Earth." description_fluff = "Café Del Consumir originates from a small coffee brewery in México \ - that still opperates to this day. Café Del Consumir prides itself on being true to form \ - and retaining its original recipe. They've been producing and selling thier product across \ + that still operates to this day. Café Del Consumir prides itself on being true to form \ + and retaining its original recipe. They've been producing and selling their product across \ the galaxy for decades without fail. NanoTrasen has attempted to by out the small company for \ - years now, howerver all attempts they've made have failed." + years now, however all attempts they've made have failed." icon = 'icons/obj/drinks_vr.dmi' icon_state = "coffeecan" center_of_mass = list("x"=16, "y"=10) diff --git a/code/modules/food/food/drinks/bottle.dm b/code/modules/food/food/drinks/bottle.dm index 9dcd17c256..2b25369016 100644 --- a/code/modules/food/food/drinks/bottle.dm +++ b/code/modules/food/food/drinks/bottle.dm @@ -323,7 +323,7 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/cognac name = "Chateau De Baton Premium Cognac" - desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing." + desc = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing." icon_state = "cognacbottle" center_of_mass = list("x"=16, "y"=6) @@ -741,4 +741,4 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/small/dr_gibb/Initialize() . = ..() - reagents.add_reagent("dr_gibb", 50) \ No newline at end of file + reagents.add_reagent("dr_gibb", 50) diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 43227b4f99..7dd6269339 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -1104,7 +1104,7 @@ /obj/item/weapon/reagent_containers/food/snacks/donkpocket/teriyaki name = "\improper Teriyaki-pocket" - desc = "An east-asian take on the classic stationside snack." + desc = "An east-Asian take on the classic stationside snack." icon_state = "donkpocketteriyaki" nutriment_amt = 2 nutriment_desc = list("meat" = 1, "dough" = 2, "soy sauce" = 2) @@ -2088,7 +2088,7 @@ /obj/item/weapon/reagent_containers/food/snacks/meatballspagetti name = "Spaghetti & Meatballs" - desc = "Now thats a nic'e meatball!" + desc = "Now that's a nic'e meatball!" icon_state = "meatballspagetti" trash = /obj/item/trash/plate filling_color = "#DE4545" @@ -2103,7 +2103,7 @@ /obj/item/weapon/reagent_containers/food/snacks/spesslaw name = "Spesslaw" - desc = "A lawyers favourite" + desc = "A lawyer's favourite" icon_state = "spesslaw" filling_color = "#DE4545" center_of_mass = list("x"=16, "y"=10) @@ -3585,7 +3585,7 @@ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza slices_num = 6 center_of_mass = list("x"=16, "y"=11) - nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15) + nutriment_desc = list("pizza crust" = 10, "tomato" = 10, "cheese" = 15, "meat" = 10) nutriment_amt = 10 bitesize = 2 @@ -6998,7 +6998,7 @@ desc = "A can of grey matter marketed for xenochimeras." description_fluff = "As the cartoon brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Rich in limbic system\" and \ under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \ - GrubCo LTD is not liable for any brain damage occuring after consumption of product.\"" + GrubCo LTD is not liable for any brain damage occurring after consumption of product.\"" trash = /obj/item/trash/brainzsnax canned_open_state = "brainzsnax-open" filling_color = "#caa3c9" @@ -7016,7 +7016,7 @@ desc = "A can of grey matter marketed for xenochimeras. This one has added tomato sauce." description_fluff = "As the cartoonish brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Yummy red stuff!\" and \ under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \ - GrubCo LTD is not liable for any brain damage occuring after consumption of product.\"" + GrubCo LTD is not liable for any brain damage occurring after consumption of product.\"" trash = /obj/item/trash/brainzsnaxred canned_open_state = "brainzsnaxred-open" filling_color = "#a6898d" diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index 732567356c..7be201b6d0 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -136,7 +136,7 @@ /obj/item/weapon/reagent_containers/food/snacks/kitsuneudon name = "kitsune udon" - desc = "A purported favorite of kitsunes in ancient japanese myth: udon noodles, fried egg, and tofu." + desc = "A purported favorite of kitsunes in ancient Japanese myth: udon noodles, fried egg, and tofu." icon = 'icons/obj/food_vr.dmi' icon_state = "kitsuneudon" trash = /obj/item/trash/asian_bowl @@ -209,7 +209,7 @@ /obj/item/weapon/reagent_containers/food/snacks/mammi name = "mämmi" - desc = "Traditional finnish desert, some like it, others don't. It's drifting in some milk, add sugar!" + desc = "Traditional Finnish desert, some like it, others don't. It's drifting in some milk, add sugar!" icon = 'icons/obj/food_vr.dmi' icon_state = "mammi" trash = /obj/item/trash/plate diff --git a/code/modules/food/food/thecake.dm b/code/modules/food/food/thecake.dm index 598040aaf1..413aa611c9 100644 --- a/code/modules/food/food/thecake.dm +++ b/code/modules/food/food/thecake.dm @@ -173,7 +173,7 @@ /obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice name = "The Chaos Cake Slice" - desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be seperated from the whole" + desc = "A slice from The Chaos Cake, it pulses weirdly, as if angry to be separated from the whole" icon = 'icons/obj/food_ch.dmi' //CHOMP Add to appease runtimes, I think, even thought this damn file is not enabled??? icon_state = "chaoscake_slice-1" @@ -276,4 +276,4 @@ desc = desclist2[stage] icon_state = "chaoscake_unfinished-[stage]" else - to_chat(user, "Hmm, doesnt seem like this layer is supposed to be added there?") + to_chat(user, "Hmm, doesn't seem like this layer is supposed to be added there?") diff --git a/code/modules/food/kitchen/smartfridge/smartfridge.dm b/code/modules/food/kitchen/smartfridge/smartfridge.dm index c683bf9a60..d81c69a1be 100644 --- a/code/modules/food/kitchen/smartfridge/smartfridge.dm +++ b/code/modules/food/kitchen/smartfridge/smartfridge.dm @@ -24,6 +24,9 @@ var/datum/wires/smartfridge/wires = null var/persistent = null // Path of persistence datum used to track contents + var/datum/looping_sound/fridge/soundloop // CHOMPEdit: Fridges hum! + var/playing_sound = FALSE // CHOMPEdit: Fridges hum! + /obj/machinery/smartfridge/secure is_secure = 1 @@ -35,6 +38,8 @@ wires = new/datum/wires/smartfridge/secure(src) else wires = new/datum/wires/smartfridge(src) + + soundloop = new(list(src), FALSE) // CHOMPEdit: Fridge hum! update_icon() /obj/machinery/smartfridge/Destroy() @@ -44,6 +49,7 @@ wires = null if(persistent) SSpersistence.forget_value(src, persistent) + QDEL_NULL(soundloop) // CHOMPEdit: Fridge hum! return ..() /obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj) @@ -51,7 +57,12 @@ /obj/machinery/smartfridge/process() if(stat & (BROKEN|NOPOWER)) + soundloop.stop() // CHOMPEdit: Fridges don't hum while they lack power. + playing_sound = FALSE // CHOMPEdit: Fridges don't hum while they lack power. return + if(!playing_sound && !stat) // CHOMPEdit: Fridges hum while they have power. + soundloop.start() + playing_sound = TRUE if(src.seconds_electrified > 0) src.seconds_electrified-- if(src.shoot_inventory && prob(2)) @@ -62,6 +73,14 @@ ..() if(old_stat != stat) update_icon() + // CHOMPEdit Start: Fridge hum + if(stat & (NOPOWER | BROKEN)) + soundloop.stop() + playing_sound = FALSE + else + soundloop.start() + playing_sound = TRUE + // CHOMPEdit End /obj/machinery/smartfridge/update_icon() cut_overlays() @@ -119,7 +138,7 @@ user.remove_from_mob(O) stock(O) user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].") - sortTim(item_records, /proc/cmp_stored_item_name) + sortTim(item_records, GLOBAL_PROC_REF(cmp_stored_item_name)) else if(istype(O, /obj/item/weapon/storage/bag)) var/obj/item/weapon/storage/bag/P = O diff --git a/code/modules/food/recipes_fryer.dm b/code/modules/food/recipes_fryer.dm index 4f1bc471e4..e72dc0a579 100644 --- a/code/modules/food/recipes_fryer.dm +++ b/code/modules/food/recipes_fryer.dm @@ -183,23 +183,25 @@ coating = /datum/reagent/nutriment/coating/batter //VOREStation Add Start -/datum/recipe/generalschicken - appliance = FRYER - reagents = list("capsaicin" = 2, "sugar" = 2, "batter" = 10) - items = list( - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat - ) - result = /obj/item/weapon/reagent_containers/food/snacks/generalschicken - +//CHOMP removal start +/*/datum/recipe/generalschicken +* appliance = FRYER +* reagents = list("capsaicin" = 2, "sugar" = 2, "batter" = 10) +* items = list( +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat +* ) +* result = /obj/item/weapon/reagent_containers/food/snacks/generalschicken +* /datum/recipe/chickenwings - appliance = FRYER - reagents = list("capsaicin" = 5, "batter" = 10) - items = list( - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat - ) - result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. +* appliance = FRYER +* reagents = list("capsaicin" = 5, "batter" = 10) +* items = list( +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat +* ) +* result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. //VOREStation Add End +Chomp remove end */ diff --git a/code/modules/food/recipes_fryer_vr.dm b/code/modules/food/recipes_fryer_vr.dm index 94776f9659..5c796e6ab1 100644 --- a/code/modules/food/recipes_fryer_vr.dm +++ b/code/modules/food/recipes_fryer_vr.dm @@ -18,15 +18,17 @@ ) result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. -/datum/recipe/chickenwings - appliance = FRYER - items = list( - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat, - /obj/item/weapon/reagent_containers/food/snacks/meat - ) - result = /obj/item/weapon/reagent_containers/food/snacks/generalschicken +//CHOMP remove start +/*/datum/recipe/chickenwings +* appliance = FRYER +* items = list( +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat, +* /obj/item/weapon/reagent_containers/food/snacks/meat +* ) +* result = /obj/item/weapon/reagent_containers/food/snacks/generalschicken +*CHOMP remove end */ /datum/recipe/locust appliance = FRYER @@ -34,4 +36,4 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/locust ) - result = /obj/item/weapon/reagent_containers/food/snacks/locust_cooked \ No newline at end of file + result = /obj/item/weapon/reagent_containers/food/snacks/locust_cooked diff --git a/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm b/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm index 54548a88dd..c3cd5d0b24 100644 --- a/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm +++ b/code/modules/gamemaster/event2/events/engineering/airlock_failure.dm @@ -70,7 +70,7 @@ for(var/obj/machinery/door/airlock/door in area.contents) if(can_break_door(door)) - addtimer(CALLBACK(src, .proc/break_door, door), 1) // Emagging proc is actually a blocking proc and that's bad for the ticker. + addtimer(CALLBACK(src, PROC_REF(break_door), door), 1) // Emagging proc is actually a blocking proc and that's bad for the ticker. door.visible_message(span("danger", "\The [door]'s panel sparks!")) playsound(door, "sparks", 50, 1) log_debug("Airlock Failure event has broken \the [door] airlock in [area].") diff --git a/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm b/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm index ebd137b404..c81968c23e 100644 --- a/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm +++ b/code/modules/gamemaster/event2/events/everyone/radiation_storm.dm @@ -38,7 +38,7 @@ Please allow for up to one minute while radiation levels dissipate, and report to \ medbay if you experience any unusual symptoms. Maintenance will lose all \ access again shortly.", "Anomaly Alert") - addtimer(CALLBACK(src, .proc/maint_callback), 2 MINUTES) + addtimer(CALLBACK(src, PROC_REF(maint_callback)), 2 MINUTES) /datum/event2/event/radiation_storm/proc/maint_callback() revoke_maint_all_access() diff --git a/code/modules/gamemaster/event2/events/mob_spawning.dm b/code/modules/gamemaster/event2/events/mob_spawning.dm index 4f3bcffa02..35321cd2f0 100644 --- a/code/modules/gamemaster/event2/events/mob_spawning.dm +++ b/code/modules/gamemaster/event2/events/mob_spawning.dm @@ -80,7 +80,7 @@ /datum/event2/event/mob_spawning/proc/spawn_one_mob(new_loc, mob_type) var/mob/living/simple_mob/M = new mob_type(new_loc) - GLOB.destroyed_event.register(M, src, .proc/on_mob_destruction) + GLOB.destroyed_event.register(M, src, PROC_REF(on_mob_destruction)) spawned_mobs += M return M @@ -94,4 +94,4 @@ // If simple_mob is bomphed, remove it from the list. /datum/event2/event/mob_spawning/proc/on_mob_destruction(mob/M) spawned_mobs -= M - GLOB.destroyed_event.unregister(M, src, .proc/on_mob_destruction) \ No newline at end of file + GLOB.destroyed_event.unregister(M, src, PROC_REF(on_mob_destruction)) diff --git a/code/modules/gamemaster/event2/events/security/prison_break.dm b/code/modules/gamemaster/event2/events/security/prison_break.dm index e7daadb9f0..a08f93a085 100644 --- a/code/modules/gamemaster/event2/events/security/prison_break.dm +++ b/code/modules/gamemaster/event2/events/security/prison_break.dm @@ -205,7 +205,7 @@ Disabling the main breaker in the APCs will protect the APC's room from being compromised.")) var/time_to_flicker = start_delay - 10 SECONDS - addtimer(CALLBACK(src, .proc/flicker_area), time_to_flicker) + addtimer(CALLBACK(src, PROC_REF(flicker_area)), time_to_flicker) /datum/event2/event/prison_break/proc/flicker_area() diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm index 6d6693aca5..f88628a694 100644 --- a/code/modules/hydroponics/trays/tray_tools.dm +++ b/code/modules/hydroponics/trays/tray_tools.dm @@ -5,6 +5,7 @@ desc = "A tool used to take samples from plants." icon = 'icons/obj/weapons.dmi' icon_state = "clippers" + random_color = FALSE /obj/item/weapon/tool/wirecutters/clippers/trimmers name = "hedgetrimmers" diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm index a37d7a2dd9..cf37e25c9b 100644 --- a/code/modules/instruments/instrument_data/_instrument_data.dm +++ b/code/modules/instruments/instrument_data/_instrument_data.dm @@ -88,7 +88,7 @@ samples = list() for(var/key in real_samples) real_keys += text2num(key) - sortTim(real_keys, /proc/cmp_numeric_asc, associative = FALSE) + sortTim(real_keys, GLOBAL_PROC_REF(cmp_numeric_asc), associative = FALSE) for(var/i in 1 to (length(real_keys) - 1)) var/from_key = real_keys[i] diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index def8741909..4d6725f8f1 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -81,8 +81,8 @@ /obj/item/instrument/piano_synth/headphones/Initialize() . = ..() - RegisterSignal(src, COMSIG_SONG_START, .proc/start_playing) - RegisterSignal(src, COMSIG_SONG_END, .proc/stop_playing) + RegisterSignal(src, COMSIG_SONG_START, PROC_REF(start_playing)) + RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) /** * Called by a component signal when our song starts playing. @@ -252,7 +252,7 @@ /obj/item/instrument/harmonica/equipped(mob/M, slot) . = ..() - RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) /obj/item/instrument/harmonica/dropped(mob/M) . = ..() diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 07cc9e68fa..15f4a9f204 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -206,7 +206,7 @@ if(playing) return if(!using_instrument?.ready()) - to_chat(user, "An error has occured with [src]. Please reset the instrument.") + to_chat(user, "An error has occurred with [src]. Please reset the instrument.") return compile_chords() if(!length(compiled_chords)) diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index d63ae107cd..883ecc881e 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -71,7 +71,7 @@ By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
    Example: C,D,E,F,G,A,B will play a C major scale.
    After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
    - Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
    + Chords can be played simply by separating each note with a hyphen: A-C#,Cn-E,E-G#,Gn-B
    A pause may be denoted by an empty chord: C,E,,C,G
    To make a chord be a different time, end it with /x, where the chord length will be length
    defined by tempo / x: C,G/2,E/4
    @@ -160,7 +160,7 @@ tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) else if(href_list["play"]) - INVOKE_ASYNC(src, .proc/start_playing, usr) + INVOKE_ASYNC(src, PROC_REF(start_playing), usr) else if(href_list["newline"]) var/newline = html_encode(tgui_input_text(usr, "Enter your line: ", parent.name)) diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm index b71158a541..c65e6fe14b 100644 --- a/code/modules/integrated_electronics/core/tools.dm +++ b/code/modules/integrated_electronics/core/tools.dm @@ -33,7 +33,7 @@ to_chat(user, "Wiring \the [selected_io.holder]'s [selected_io.name] into itself is rather pointless.") return if(io.io_type != selected_io.io_type) - to_chat(user, "Those two types of channels are incompatable. The first is a [selected_io.io_type], \ + to_chat(user, "Those two types of channels are incompatible. The first is a [selected_io.io_type], \ while the second is a [io.io_type].") return if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly) @@ -206,7 +206,7 @@ to_chat(user, "Wiring \the [selected_io.holder]'s [selected_io.name] into itself is rather pointless.") return if(io.io_type != selected_io.io_type) - to_chat(user, "Those two types of channels are incompatable. The first is a [selected_io.io_type], \ + to_chat(user, "Those two types of channels are incompatible. The first is a [selected_io.io_type], \ while the second is a [io.io_type].") return if(io.holder.assembly && io.holder.assembly != selected_io.holder.assembly) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index c8bb294830..ebba2a7023 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -359,7 +359,7 @@ . = ..() set_pin_data(IC_INPUT, 1, frequency) set_pin_data(IC_INPUT, 2, code) - addtimer(CALLBACK(src, .proc/set_frequency, frequency), 40) + addtimer(CALLBACK(src, PROC_REF(set_frequency), frequency), 40) /obj/item/integrated_circuit/input/signaler/Destroy() if(radio_controller) diff --git a/code/modules/integrated_electronics/subtypes/lists.dm b/code/modules/integrated_electronics/subtypes/lists.dm index 8c62404e05..228b20f7b0 100644 --- a/code/modules/integrated_electronics/subtypes/lists.dm +++ b/code/modules/integrated_electronics/subtypes/lists.dm @@ -165,7 +165,7 @@ /obj/item/integrated_circuit/list/jointext name = "join text circuit" - desc = "This circuit will add all elements of a list into one string, seperated by a character." + desc = "This circuit will add all elements of a list into one string, separated by a character." extended_desc = "Default settings will encode the entire list into a string." inputs = list( "list to join" = IC_PINTYPE_LIST,// @@ -197,4 +197,4 @@ set_pin_data(IC_OUTPUT, 1, result) push_data() - activate_pin(2) \ No newline at end of file + activate_pin(2) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index 320866301e..8a5883cdaf 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -106,7 +106,7 @@ icon_state = "locomotion" extended_desc = "The circuit accepts a 'dir' number as a direction to move towards.
    \ Pulsing the 'step towards dir' activator pin will cause the machine to move a meter in that direction, assuming it is not \ - being held, or anchored in some way. It should be noted that the ability to move is dependant on the type of assembly that this circuit inhabits." + being held, or anchored in some way. It should be noted that the ability to move is dependent on the type of assembly that this circuit inhabits." w_class = ITEMSIZE_NORMAL complexity = 20 // size = 5 diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm index 268759e152..c8fd3dddbe 100644 --- a/code/modules/integrated_electronics/subtypes/output.dm +++ b/code/modules/integrated_electronics/subtypes/output.dm @@ -448,11 +448,11 @@ /obj/item/integrated_circuit/output/holographic_projector/Initialize() . = ..() - GLOB.moved_event.register(src, src, .proc/on_moved) + GLOB.moved_event.register(src, src, PROC_REF(on_moved)) /obj/item/integrated_circuit/output/holographic_projector/Destroy() destroy_hologram() - GLOB.moved_event.unregister(src, src, .proc/on_moved) + GLOB.moved_event.unregister(src, src, PROC_REF(on_moved)) return ..() /obj/item/integrated_circuit/output/holographic_projector/do_work() diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index 9633ef7881..1acaea0f3b 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -25,7 +25,7 @@ var/new_delay = CLAMP(delay_input, 1, 1 HOUR) delay = new_delay - addtimer(CALLBACK(src, .proc/activate_pin, 2), delay) + addtimer(CALLBACK(src, PROC_REF(activate_pin), 2), delay) /obj/item/integrated_circuit/time/ticker name = "ticker circuit" @@ -65,7 +65,7 @@ /obj/item/integrated_circuit/time/ticker/proc/tick() if(is_running && check_power()) - addtimer(CALLBACK(src, .proc/tick), delay) + addtimer(CALLBACK(src, PROC_REF(tick)), delay) if(world.time > next_fire) next_fire = world.time + delay activate_pin(1) diff --git a/code/modules/library/hardcode_library/non-fiction/PortedBooks.dm b/code/modules/library/hardcode_library/non-fiction/PortedBooks.dm index 86287503b8..579e2fe5f3 100644 --- a/code/modules/library/hardcode_library/non-fiction/PortedBooks.dm +++ b/code/modules/library/hardcode_library/non-fiction/PortedBooks.dm @@ -44,7 +44,7 @@ Category: Non-Fiction /obj/item/weapon/book/bundle/custom_library/nonfiction/viabilityofcorporategov name = "The Viability of Corporate Government" - desc = "A harbound book titled \"The Viability of Corporate Government\" by Yang Simiao." + desc = "A hardbound book titled \"The Viability of Corporate Government\" by Yang Simiao." description_info = "This book is titled \"The Viability of Corporate Government\" by Yang Simiao. It seems to be an opinion piece on the relationship between corporations and the stations they own." title = "The Viability of Corporate Government" @@ -282,4 +282,4 @@ Category: Non-Fiction - "}) \ No newline at end of file + "}) diff --git a/code/modules/lore_codex/legal_code_data/corporate_regulations.dm b/code/modules/lore_codex/legal_code_data/corporate_regulations.dm index ade1ff83e3..ca0cb919f9 100644 --- a/code/modules/lore_codex/legal_code_data/corporate_regulations.dm +++ b/code/modules/lore_codex/legal_code_data/corporate_regulations.dm @@ -287,7 +287,7 @@ name = "Neglect of Duty" definition = "To fail to meet satisfactory work standards." suggested_punishments = "Demotion at discretion of Superior. Termination at discretion of Station Director." - notes = "This includes accidents, refusing or failing to work, or simply not providing a resonable amount of productivity, when the offender is capable of work. This charge \ + notes = "This includes accidents, refusing or failing to work, or simply not providing a reasonable amount of productivity, when the offender is capable of work. This charge \ is meant to be applied only by Command staff to their subordinates, and not from individual Security Officers." /datum/lore/codex/page/law/deception @@ -301,7 +301,7 @@ name = "Wrongful Dismissal" definition = "To demote, dismiss, terminate, or otherwise reduce a crewmember's rank for no valid, or a knowingly false reason." suggested_punishments = "Demotion. Termination at discretion of Station Director. Notify Central Command." - notes = "An Internal Affairs Agent is required to do an investigation in order to conclude if this has occured or not. Security cannot \ + notes = "An Internal Affairs Agent is required to do an investigation in order to conclude if this has occurred or not. Security cannot \ give this charge out on their own." mandated = TRUE @@ -310,4 +310,4 @@ definition = "To take and use equipment confiscated as evidence or contraband, generally as a member of Security or Command." suggested_punishments = "Demotion of the user. Termination at discretion of Station Director. Return confiscated equipment to evidence storage." notes = "Security shouldn't be using evidence for anything but evidence, and should never use contraband. This is meant for people misusing evidence for personal use. Evidence stolen \ - in order to cover up a crime would fall under Theft or Tampering with Evidence." \ No newline at end of file + in order to cover up a crime would fall under Theft or Tampering with Evidence." diff --git a/code/modules/lore_codex/legal_code_data/sif_law.dm b/code/modules/lore_codex/legal_code_data/sif_law.dm index 05b45d840a..58e62cda2a 100644 --- a/code/modules/lore_codex/legal_code_data/sif_law.dm +++ b/code/modules/lore_codex/legal_code_data/sif_law.dm @@ -20,7 +20,7 @@ /datum/lore/codex/category/law_minor_violations name = "Minor Violations (Law)" data = "Here is a list of the less severe violations of local Sif Law that might occur on your facility. A fax to the Sif Governmental Authority \ - is required to be sent within 24 hours of a violation being comitted, for minor violations listed here." + is required to be sent within 24 hours of a violation being committed, for minor violations listed here." children = list( /datum/lore/codex/page/law/theft, /datum/lore/codex/page/law/assault, @@ -35,7 +35,7 @@ /datum/lore/codex/page/law/assault/add_content() name = "Assault" definition = "To threaten use of physical force against someone while also having the capability and/or intent to carry out that threat." - suggested_punishments = "Seperation of offender from the threatened person. Brig time of 10 minutes for first offense. \ + suggested_punishments = "Separation of offender from the threatened person. Brig time of 10 minutes for first offense. \ Repeat offenders can be brigged for up to (10 minutes times number of previous assault charges). Demotion at discretion of Superior." notes = "Not to be confused with [quick_link("Battery")], which covers actual physical injury. The threat must be viable and serious; \ two people threatening to punch each other out over comms wouldn't fall under this." @@ -150,7 +150,7 @@ definition = "Stealing money that is entrusted to you by a corporation or person." suggested_punishments = "Hold until Transfer. Termination. Reimbursement of embezzled funds. Fax Central Command and VirGov." notes = "This includes funneling Departmental, Facility, or Crew funds into the offender's account. It also includes pocketing \ - transactions directly that are meant to go to a seperate account." + transactions directly that are meant to go to a separate account." mandated = TRUE /datum/lore/codex/page/law/excessive_force/add_content() @@ -168,7 +168,7 @@ definition = "To kill a sapient being without intent." suggested_punishments = "Hold until Transfer, if unjustified. Fax VirGov." notes = "Includes provoked manslaughter, negligent manslaughter, and impassioned killing. The important distinction between this \ - and [quick_link("Murder")] is intent. Manslaughter can be justified if force was nessecary and it was intented to prevent further loss of life or \ + and [quick_link("Murder")] is intent. Manslaughter can be justified if force was necessary and it was intended to prevent further loss of life or \ grievous injury to self or others, however persons involved in the kill will still be required to answer to higher legal authority \ after the shift." mandated = TRUE @@ -282,4 +282,4 @@ notes = "This includes the use of mass bombings, mass murder, releasing harmful biological agents, nuclear weapons, \ radiological weapons, and chemical weapons." mandated = TRUE - ..() \ No newline at end of file + ..() diff --git a/code/modules/lore_codex/legal_code_data/sop.dm b/code/modules/lore_codex/legal_code_data/sop.dm index 10d14b1632..15dd5fdeaf 100644 --- a/code/modules/lore_codex/legal_code_data/sop.dm +++ b/code/modules/lore_codex/legal_code_data/sop.dm @@ -27,7 +27,7 @@ All crew members and visitors, with exceptions listed below, are to wear the following at minimum: A shirt that covers the chest, pants, shorts or skirts that \ go no shorter than two inches above the knee, and some form of foot covering. Those in departments considered to be emergency services (Security, \ Medical, Engineering) should wear a marker denoting their department, examples being armbands, uniforms, badges, or other means. Those in a department \ - are expected to wear clothes appropiate to protect against common risks for the department. Off duty personnel, visitors, and those engaging in certain recreational \ + are expected to wear clothes appropriate to protect against common risks for the department. Off duty personnel, visitors, and those engaging in certain recreational \ areas such as the Pool (if one is available on your facility) have less strict dresscode, however clothing of some form must still be worn in public.\

    \ Exceptions: Skrell, Teshari, and Unathi are expected to cover at minimum their lower bodies. Tajaran males may go topless, as a means to keep cool. \ @@ -41,11 +41,11 @@ less risk to other crew members, if possible.\
    \

    EVA Procedure

    \ - Extravehicular activity should only be done by EVA trained and certified crew members, if there is no emergency. If an emergency is occuring, NanoTrasen \ + Extravehicular activity should only be done by EVA trained and certified crew members, if there is no emergency. If an emergency is occurring, NanoTrasen \ provides high visibility, easy to seal emergency softsuits inside blue emergency lockers located at key locations inside your facility. Regardless, \ for your own safety, you should only enter or exit the facility from designated external airlocks, which contain an air cycling system. It is both \ wasteful and potentially dangerous to 'force' an external airlock to open before cycling has completed. Before cycling out into the void, the person going \ - on EVA should double check that their internal oxygen supply (or cooling system, if they are a synthetic) is functioning properly and that they have an adaquate \ + on EVA should double check that their internal oxygen supply (or cooling system, if they are a synthetic) is functioning properly and that they have an adequate \ amount of oxygen inside the tank. Magnetic boots are also highly suggested if the person will be scaling the sides of your facility, to prevent drifting away \ from the facility.\

    \ diff --git a/code/modules/lore_codex/legal_code_data/sop/security.dm b/code/modules/lore_codex/legal_code_data/sop/security.dm index a41b0fd797..ca52d76529 100644 --- a/code/modules/lore_codex/legal_code_data/sop/security.dm +++ b/code/modules/lore_codex/legal_code_data/sop/security.dm @@ -94,7 +94,7 @@ Weaponry and specialized armor are allowed to be given out to security officers, with clearance from the Warden or Head of Security.\
    \ For Red, Security may have weapons drawn at all times, however properly handling of weapons should not be disregarded. Body armor and \ - helmets are mandatory. Specialized armor may be distributed by the Warden and Head of Security, when appropiate." + helmets are mandatory. Specialized armor may be distributed by the Warden and Head of Security, when appropriate." /datum/lore/codex/page/sop_escalation name = "Escalation of Force" @@ -102,7 +102,7 @@
    \ - Performing resleeving is relatively simple. Nanotrasen maintains body-scan backups of all guests taken when you began your employement, applied for a visa, or at another time. + Performing resleeving is relatively simple. Nanotrasen maintains body-scan backups of all guests taken when you began your employment, applied for a visa, or at another time. These scans are stored in a database maintained by Nanotrasen, and are sent to stations where it may become necessary to put them to use. You can view all the current body scans at the resleeving console. You can also view all current mindstate backups at the console.
    The process of resleeving is simply:
    1. Select a body to create from the body records. This should be the person's original body, or a suitable donor body if none is available.
    2. -
    3. Create the body using either the SynthFab or the growpod. Upon completion, correct any issues with the body (typically slight genetic or other damage will have occured).
    4. +
    5. Create the body using either the SynthFab or the growpod. Upon completion, correct any issues with the body (typically slight genetic or other damage will have occurred).
    6. Place the body into the resleeving pod, and select an appropriate mind to sleeve into the body on the console.
    7. Sleeve the mind into the body, using the console.
    diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 9f83cdf933..e486197b84 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -116,7 +116,7 @@ @param time: time to sleep in deciseconds (1/10th second) */ - interpreter.SetProc("sleep", /proc/delay) + interpreter.SetProc("sleep", GLOBAL_PROC_REF(delay)) /* -> Replaces a string with another string @@ -127,7 +127,7 @@ @param replacestring: the string to replace the substring with */ - interpreter.SetProc("replace", /proc/string_replacetext) + interpreter.SetProc("replace", GLOBAL_PROC_REF(string_replacetext)) /* -> Locates an element/substring inside of a list or string @@ -139,7 +139,7 @@ @param end: the position to end in */ - interpreter.SetProc("find", /proc/smartfind) + interpreter.SetProc("find", GLOBAL_PROC_REF(smartfind)) /* -> Finds the length of a string or list @@ -148,42 +148,42 @@ @param container: the list or container to measure */ - interpreter.SetProc("length", /proc/smartlength) + interpreter.SetProc("length", GLOBAL_PROC_REF(smartlength)) /* -- Clone functions, carried from default BYOND procs --- */ // vector namespace - interpreter.SetProc("vector", /proc/n_list) - interpreter.SetProc("at", /proc/n_listpos) - interpreter.SetProc("copy", /proc/n_listcopy) - interpreter.SetProc("push_back", /proc/n_listadd) - interpreter.SetProc("remove", /proc/n_listremove) - interpreter.SetProc("cut", /proc/n_listcut) - interpreter.SetProc("swap", /proc/n_listswap) - interpreter.SetProc("insert", /proc/n_listinsert) + interpreter.SetProc("vector", GLOBAL_PROC_REF(n_list)) + interpreter.SetProc("at", GLOBAL_PROC_REF(n_listpos)) + interpreter.SetProc("copy", GLOBAL_PROC_REF(n_listcopy)) + interpreter.SetProc("push_back", GLOBAL_PROC_REF(n_listadd)) + interpreter.SetProc("remove", GLOBAL_PROC_REF(n_listremove)) + interpreter.SetProc("cut", GLOBAL_PROC_REF(n_listcut)) + interpreter.SetProc("swap", GLOBAL_PROC_REF(n_listswap)) + interpreter.SetProc("insert", GLOBAL_PROC_REF(n_listinsert)) - interpreter.SetProc("pick", /proc/n_pick) - interpreter.SetProc("prob", /proc/prob_chance) - interpreter.SetProc("substr", /proc/docopytext) + interpreter.SetProc("pick", GLOBAL_PROC_REF(n_pick)) + interpreter.SetProc("prob", GLOBAL_PROC_REF(prob_chance)) + interpreter.SetProc("substr", GLOBAL_PROC_REF(docopytext)) // Donkie~ // Strings - interpreter.SetProc("lower", /proc/n_lower) - interpreter.SetProc("upper", /proc/n_upper) - interpreter.SetProc("explode", /proc/string_explode) - interpreter.SetProc("repeat", /proc/n_repeat) - interpreter.SetProc("reverse", /proc/n_reverse) - interpreter.SetProc("tonum", /proc/n_str2num) + interpreter.SetProc("lower", GLOBAL_PROC_REF(n_lower)) + interpreter.SetProc("upper", GLOBAL_PROC_REF(n_upper)) + interpreter.SetProc("explode", GLOBAL_PROC_REF(string_explode)) + interpreter.SetProc("repeat", GLOBAL_PROC_REF(n_repeat)) + interpreter.SetProc("reverse", GLOBAL_PROC_REF(n_reverse)) + interpreter.SetProc("tonum", GLOBAL_PROC_REF(n_str2num)) // Numbers - interpreter.SetProc("tostring", /proc/n_num2str) - interpreter.SetProc("sqrt", /proc/n_sqrt) - interpreter.SetProc("abs", /proc/n_abs) - interpreter.SetProc("floor", /proc/n_floor) - interpreter.SetProc("ceil", /proc/n_ceil) - interpreter.SetProc("round", /proc/n_round) - interpreter.SetProc("clamp", /proc/n_clamp) - interpreter.SetProc("inrange", /proc/n_inrange) + interpreter.SetProc("tostring", GLOBAL_PROC_REF(n_num2str)) + interpreter.SetProc("sqrt", GLOBAL_PROC_REF(n_sqrt)) + interpreter.SetProc("abs", GLOBAL_PROC_REF(n_abs)) + interpreter.SetProc("floor", GLOBAL_PROC_REF(n_floor)) + interpreter.SetProc("ceil", GLOBAL_PROC_REF(n_ceil)) + interpreter.SetProc("round", GLOBAL_PROC_REF(n_round)) + interpreter.SetProc("clamp", GLOBAL_PROC_REF(n_clamp)) + interpreter.SetProc("inrange", GLOBAL_PROC_REF(n_inrange)) // End of Donkie~ @@ -278,4 +278,3 @@ var/pass = S.relay_information(newsign, /obj/machinery/telecomms/hub) if(!pass) S.relay_information(newsign, /obj/machinery/telecomms/broadcaster) // send this simple message to broadcasters - diff --git a/code/modules/shieldgen/directional_shield.dm b/code/modules/shieldgen/directional_shield.dm index b298e028a7..6754878674 100644 --- a/code/modules/shieldgen/directional_shield.dm +++ b/code/modules/shieldgen/directional_shield.dm @@ -102,13 +102,13 @@ START_PROCESSING(SSobj, src) if(always_on) create_shields() - GLOB.moved_event.register(src, src, .proc/moved_event) + GLOB.moved_event.register(src, src, PROC_REF(moved_event)) return ..() /obj/item/shield_projector/Destroy() destroy_shields() STOP_PROCESSING(SSobj, src) - GLOB.moved_event.unregister(src, src, .proc/moved_event) + GLOB.moved_event.unregister(src, src, PROC_REF(moved_event)) return ..() /obj/item/shield_projector/proc/moved_event() diff --git a/code/modules/shieldgen/energy_shield.dm b/code/modules/shieldgen/energy_shield.dm index 0982b2d3b8..68c03ff1fe 100644 --- a/code/modules/shieldgen/energy_shield.dm +++ b/code/modules/shieldgen/energy_shield.dm @@ -147,7 +147,7 @@ continue // Note: Range is a non-exact aproximation of the spread effect. If it doesn't look good // we'll need to switch to actually walking along the shields to get exact number of steps away. - addtimer(CALLBACK(S, .proc/impact_flash), get_dist(src, S) * 2) + addtimer(CALLBACK(S, PROC_REF(impact_flash)), get_dist(src, S) * 2) impact_flash() // Small visual effect, makes the shield tiles brighten up by becoming more opaque for a moment diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 2617d6c28f..edfe05e5c4 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -25,6 +25,7 @@ use_power = USE_POWER_OFF //doesn't use APC power interact_offline = TRUE // don't check stat & NOPOWER|BROKEN for our UI. We check BROKEN ourselves. var/id //for button usage + var/datum/looping_sound/shield_generator/shield_hum /obj/machinery/shield_gen/advanced name = "advanced bubble shield generator" @@ -41,10 +42,12 @@ if(get_dir(cap, src) == cap.dir) capacitors |= cap cap.owned_gen = src + shield_hum = new(list(src), FALSE) return ..() /obj/machinery/shield_gen/Destroy() QDEL_LIST_NULL(field) + QDEL_NULL(shield_hum) return ..() /obj/machinery/shield_gen/emag_act(var/remaining_charges, var/mob/user) @@ -245,6 +248,7 @@ to_chat(M, "\icon[src][bicon(src)] You hear heavy droning start up.") for(var/obj/effect/energy_field/E in field) // Update the icons here to ensure all the shields have been made already. E.update_icon() + shield_hum.start() else for(var/obj/effect/energy_field/D in field) field.Remove(D) @@ -253,11 +257,13 @@ for(var/mob/M in view(5,src)) to_chat(M, "\icon[src][bicon(src)] You hear heavy droning fade out.") + shield_hum.stop() /obj/machinery/shield_gen/update_icon() if(stat & BROKEN) icon_state = "broke" set_light(0) + shield_hum.stop() else if (src.active) icon_state = "generator1" diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm index 1051ba6c2d..6cfe6ba6a3 100644 --- a/code/modules/shuttles/shuttles_web.dm +++ b/code/modules/shuttles/shuttles_web.dm @@ -208,7 +208,7 @@ /obj/machinery/computer/shuttle_control/web/tgui_data(mob/user) var/list/data = list() - + var/list/routes[0] var/datum/shuttle/autodock/web_shuttle/shuttle = SSshuttles.shuttles[shuttle_tag] if(!istype(shuttle)) @@ -409,10 +409,10 @@ /obj/shuttle_connector/Initialize() . = ..() - GLOB.shuttle_added.register_global(src, .proc/setup_routes) + GLOB.shuttle_added.register_global(src, PROC_REF(setup_routes)) /obj/shuttle_connector/Destroy() - GLOB.shuttle_added.unregister_global(src, .proc/setup_routes) + GLOB.shuttle_added.unregister_global(src, PROC_REF(setup_routes)) . = ..() // This is called whenever a shuttle is initialized. If its our shuttle, do our thing! diff --git a/code/modules/telesci/bscyrstal.dm b/code/modules/telesci/bscyrstal.dm index f2ecec39cc..2349755a7b 100644 --- a/code/modules/telesci/bscyrstal.dm +++ b/code/modules/telesci/bscyrstal.dm @@ -1,6 +1,6 @@ // Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. -/obj/item/weapon/ore/bluespace_crystal +/obj/item/weapon/bluespace_crystal name = "bluespace crystal" desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' @@ -9,12 +9,12 @@ origin_tech = list(TECH_BLUESPACE = 6, TECH_MATERIAL = 3) var/blink_range = 8 // The teleport range when crushed/thrown at someone. -/obj/item/weapon/ore/bluespace_crystal/New() +/obj/item/weapon/bluespace_crystal/New() ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/weapon/ore/bluespace_crystal/attack_self(mob/user) +/obj/item/weapon/bluespace_crystal/attack_self(mob/user) user.visible_message("[user] crushes [src]!", "You crush [src]!") var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(5, 1, get_turf(src)) @@ -23,10 +23,10 @@ user.unEquip(src) qdel(src) -/obj/item/weapon/ore/bluespace_crystal/proc/blink_mob(mob/living/L) +/obj/item/weapon/bluespace_crystal/proc/blink_mob(mob/living/L) do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') -/obj/item/weapon/ore/bluespace_crystal/throw_impact(atom/hit_atom) +/obj/item/weapon/bluespace_crystal/throw_impact(atom/hit_atom) if(!..()) // not caught in mid-air visible_message("[src] fizzles and disappears upon impact!") var/turf/T = get_turf(hit_atom) @@ -39,7 +39,7 @@ // Artifical bluespace crystal, doesn't give you much research. -/obj/item/weapon/ore/bluespace_crystal/artificial +/obj/item/weapon/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." origin_tech = list(TECH_BLUESPACE = 3, TECH_PHORON = 4) diff --git a/code/modules/telesci/construction.dm b/code/modules/telesci/construction.dm index 6fee75ab1b..e909881441 100644 --- a/code/modules/telesci/construction.dm +++ b/code/modules/telesci/construction.dm @@ -15,7 +15,7 @@ build_path = /obj/machinery/telepad origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_PHORON = 4, TECH_BLUESPACE = 5) req_components = list( - /obj/item/weapon/ore/bluespace_crystal = 1, + /obj/item/weapon/bluespace_crystal = 1, /obj/item/weapon/stock_parts/capacitor = 2, /obj/item/stack/cable_coil = 5, /obj/item/weapon/stock_parts/console_screen = 1) @@ -27,7 +27,7 @@ build_path = /obj/machinery/power/quantumpad origin_tech = list(TECH_ENGINEERING = 4, TECH_POWER = 4, TECH_BLUESPACE = 4) req_components = list( - /obj/item/weapon/ore/bluespace_crystal = 1, + /obj/item/weapon/bluespace_crystal = 1, /obj/item/weapon/stock_parts/capacitor = 1, /obj/item/weapon/stock_parts/manipulator = 1, - /obj/item/stack/cable_coil = 5) \ No newline at end of file + /obj/item/stack/cable_coil = 5) diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 86f2279a89..334997397d 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -14,7 +14,7 @@ /obj/machinery/telepad/New() ..() component_parts = list() - component_parts += new /obj/item/weapon/ore/bluespace_crystal(src) + component_parts += new /obj/item/weapon/bluespace_crystal(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new /obj/item/weapon/stock_parts/console_screen(src) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 1eb9dffcb3..2ef55c1f03 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -46,10 +46,10 @@ . = ..() recalibrate() for(var/i = 1; i <= starting_crystals; i++) - crystals += new /obj/item/weapon/ore/bluespace_crystal/artificial(src) // starting crystals + crystals += new /obj/item/weapon/bluespace_crystal/artificial(src) // starting crystals /obj/machinery/computer/telescience/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/weapon/ore/bluespace_crystal)) + if(istype(W, /obj/item/weapon/bluespace_crystal)) if(crystals.len >= max_crystals) to_chat(user, "There are not enough crystal slots.") return diff --git a/code/modules/tension/tension.dm b/code/modules/tension/tension.dm index 9cfd68de17..1bef202597 100644 --- a/code/modules/tension/tension.dm +++ b/code/modules/tension/tension.dm @@ -28,7 +28,7 @@ potential_damage = (melee_damage_lower + melee_damage_upper) / 2 // Treat potential_damage as estimated DPS. If the enemy attacks twice as fast as usual, it will double the number. - potential_damage *= 1 SECOND / (base_attack_cooldown + melee_attack_delay + injury_level) // CHOMPStation Add: Injury level should affect potential damage, thereby increasing the threat level + potential_damage *= 1 SECOND / (base_attack_cooldown + melee_attack_delay + injury_level) // VOREStation Add: Injury level should affect potential damage, thereby increasing the threat level else var/obj/item/projectile/P = new projectiletype(src) if(P.nodamage || P.taser_effect) // Tasers are somewhat less scary. @@ -41,7 +41,7 @@ potential_damage += P.agony / 2 qdel(P) - potential_damage *= 1 SECOND / (base_attack_cooldown + ranged_attack_delay + injury_level) // CHOMPStation Add: Injury level should affect potential damage, thereby increasing the threat level + potential_damage *= 1 SECOND / (base_attack_cooldown + ranged_attack_delay + injury_level) // VOREStation Add: Injury level should affect potential damage, thereby increasing the threat level // Special attacks are ultra-specific to the mob so a generic threat assessment isn't really possible. diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index 6382325100..c0d2497db7 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -92,7 +92,7 @@ if(skip_compat_check && !fexists(SERVICE_INTERFACE_DLL)) TGS_ERROR_LOG("Service parameter present but no interface DLL detected. This is symptomatic of running a service less than version 3.1! Please upgrade.") return - call(SERVICE_INTERFACE_DLL, SERVICE_INTERFACE_FUNCTION)(instance_name, command) //trust no retval + LIBCALL(SERVICE_INTERFACE_DLL, SERVICE_INTERFACE_FUNCTION)(instance_name, command) //trust no retval return TRUE /datum/tgs_api/v3210/OnTopic(T) diff --git a/code/modules/tgui/modules/appearance_changer.dm b/code/modules/tgui/modules/appearance_changer.dm index a90d69689b..169cd5a3da 100644 --- a/code/modules/tgui/modules/appearance_changer.dm +++ b/code/modules/tgui/modules/appearance_changer.dm @@ -65,13 +65,13 @@ owner = H if(owner) - GLOB.moved_event.register(owner, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(owner, src, PROC_REF(update_active_camera_screen)) check_whitelist = check_species_whitelist whitelist = species_whitelist blacklist = species_blacklist /datum/tgui_module/appearance_changer/Destroy() - GLOB.moved_event.unregister(owner, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(owner, src, PROC_REF(update_active_camera_screen)) last_camera_turf = null qdel(cam_screen) QDEL_LIST(cam_plane_masters) diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index fa67030d55..5a4551f260 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -34,7 +34,7 @@ cam_screen.assigned_map = map_name cam_screen.del_on_map_removal = FALSE cam_screen.screen_loc = "[map_name]:1,1" - + cam_plane_masters = get_tgui_plane_masters() for(var/obj/screen/instance as anything in cam_plane_masters) @@ -68,7 +68,7 @@ /datum/tgui_module/camera/Destroy() if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = null last_camera_turf = null qdel(cam_screen) @@ -131,7 +131,7 @@ /datum/tgui_module/camera/tgui_act(action, params) if(..()) return TRUE - + if(action && !issilicon(usr)) playsound(tgui_host(), "terminal_type", 50, 1) @@ -140,9 +140,9 @@ var/list/cameras = get_available_cameras(usr) var/obj/machinery/camera/C = cameras["[ckey(c_tag)]"] if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = C - GLOB.moved_event.register(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(active_camera, src, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() return TRUE @@ -167,9 +167,9 @@ if(target) if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = target - GLOB.moved_event.register(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.register(active_camera, src, PROC_REF(update_active_camera_screen)) playsound(tgui_host(), get_sfx("terminal_type"), 25, FALSE) update_active_camera_screen() . = TRUE @@ -273,7 +273,7 @@ // Turn off the console if(length(concurrent_users) == 0 && is_living) if(active_camera) - GLOB.moved_event.unregister(active_camera, src, .proc/update_active_camera_screen) + GLOB.moved_event.unregister(active_camera, src, PROC_REF(update_active_camera_screen)) active_camera = null playsound(tgui_host(), 'sound/machines/terminal_off.ogg', 25, FALSE) @@ -298,4 +298,3 @@ /datum/tgui_module/camera/bigscreen/tgui_state(mob/user) return GLOB.tgui_physical_state_bigscreen - \ No newline at end of file diff --git a/code/modules/tgui/modules/ntos-only/uav.dm b/code/modules/tgui/modules/ntos-only/uav.dm index 252c19d228..eec4a42078 100644 --- a/code/modules/tgui/modules/ntos-only/uav.dm +++ b/code/modules/tgui/modules/ntos-only/uav.dm @@ -94,7 +94,7 @@ signal_strength = 0 current_uav = U - RegisterSignal(U, COMSIG_MOVABLE_Z_CHANGED, .proc/current_uav_changed_z) + RegisterSignal(U, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(current_uav_changed_z)) if(LAZYLEN(viewers)) for(var/datum/weakref/W in viewers) diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 29431c42f3..5c39c756ad 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -37,6 +37,8 @@ var/datum/tgui_state/state = null /// Rate limit client refreshes to prevent DoS. COOLDOWN_DECLARE(refresh_cooldown) + /// Are byond mouse events beyond the window passed in to the ui + var/mouse_hooked = FALSE /// The map z-level to display. var/map_z_level = 1 /// The Parent UI @@ -108,6 +110,8 @@ window.send_message("update", get_payload( with_data = TRUE, with_static_data = TRUE)) + if(mouse_hooked) + window.set_mouse_macro() SStgui.on_open(src) /** @@ -147,6 +151,17 @@ /datum/tgui/proc/set_autoupdate(autoupdate) src.autoupdate = autoupdate +/** + * public + * + * Enable/disable passing through byond mouse events to the window + * + * required value bool Enable/disable hooking. + */ +/datum/tgui/proc/set_mouse_hook(value) + src.mouse_hooked = value + //Handle unhooking/hooking on already open windows ? + /** * public * @@ -182,7 +197,7 @@ return //if(!COOLDOWN_FINISHED(src, refresh_cooldown)) //refreshing = TRUE - //addtimer(CALLBACK(src, .proc/send_full_update), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE) + //addtimer(CALLBACK(src, PROC_REF(send_full_update)), TGUI_REFRESH_FULL_UPDATE_COOLDOWN, TIMER_UNIQUE) //return //refreshing = FALSE var/should_update_data = force || status >= STATUS_UPDATE @@ -328,7 +343,7 @@ if(initialized) send_full_update() initialized = TRUE - if("pingReply") + if("ping/reply") initialized = TRUE if("suspend") close(can_be_suspended = TRUE) diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 43e4204127..180e18a518 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -24,6 +24,7 @@ var/initial_inline_html var/initial_inline_js var/initial_inline_css + var/mouse_event_macro_set = FALSE /** * public @@ -215,6 +216,8 @@ /datum/tgui_window/proc/close(can_be_suspended = TRUE, logout = FALSE) if(!client) return + if(mouse_event_macro_set) + remove_mouse_macro() if(can_be_suspended && can_be_suspended()) #ifdef TGUI_DEBUGGING log_tgui(client, "[id]/close: suspending") @@ -364,7 +367,7 @@ // If not locked, handle these message types switch(type) if("ping") - send_message("pingReply", payload) + send_message("ping/reply", payload) if("suspend") close(can_be_suspended = TRUE) if("close") @@ -377,3 +380,44 @@ // Resend the assets for(var/asset in sent_assets) send_asset(asset) + +/datum/tgui_window/vv_edit_var(var_name, var_value) + return var_name != NAMEOF(src, id) && ..() + + +/datum/tgui_window/proc/set_mouse_macro() + if(mouse_event_macro_set) + return + + var/list/byondToTguiEventMap = list( + "MouseDown" = "byond/mousedown", + "MouseUp" = "byond/mouseup" + ) + + for(var/mouseMacro in byondToTguiEventMap) + var/command_template = ".output CONTROL PAYLOAD" + var/event_message = TGUI_CREATE_MESSAGE(byondToTguiEventMap[mouseMacro], null) + var target_control = is_browser \ + ? "[id]:update" \ + : "[id].browser:update" + var/with_id = replacetext(command_template, "CONTROL", target_control) + var/full_command = replacetext(with_id, "PAYLOAD", event_message) + + var/list/params = list() + params["parent"] = "default" //Technically this is external to tgui but whatever + params["name"] = mouseMacro + params["command"] = full_command + + winset(client, "[mouseMacro]Window[id]Macro", params) + mouse_event_macro_set = TRUE + +/datum/tgui_window/proc/remove_mouse_macro() + if(!mouse_event_macro_set) + stack_trace("Unsetting mouse macro on tgui window that has none") + var/list/byondToTguiEventMap = list( + "MouseDown" = "byond/mousedown", + "MouseUp" = "byond/mouseup" + ) + for(var/mouseMacro in byondToTguiEventMap) + winset(client, null, "[mouseMacro]Window[id]Macro.parent=null") + mouse_event_macro_set = FALSE diff --git a/code/modules/tgui_input/checkboxes.dm b/code/modules/tgui_input/checkboxes.dm new file mode 100644 index 0000000000..0b1d653955 --- /dev/null +++ b/code/modules/tgui_input/checkboxes.dm @@ -0,0 +1,136 @@ +/** + * ### tgui_input_checkbox + * Opens a window with a list of checkboxes and returns a list of selected choices. + * + * user - The mob to display the window to + * message - The message inside the window + * title - The title of the window + * list/items - The list of items to display + * min_checked - The minimum number of checkboxes that must be checked (defaults to 1) + * max_checked - The maximum number of checkboxes that can be checked (optional) + * timeout - The timeout for the input (optional) + */ +/proc/tgui_input_checkboxes(mob/user, message, title = "Select", list/items, min_checked = 1, max_checked = 50, timeout = 0, ui_state = GLOB.tgui_always_state) + if (!user) + user = usr + if(!length(items)) + return + if (!istype(user)) + if (istype(user, /client)) + var/client/client = user + user = client.mob + else + return + if(!user.client.prefs.tgui_input_mode) + return input(user, message, title) as null|anything in items + var/datum/tgui_checkbox_input/input = new(user, message, title, items, min_checked, max_checked, timeout, ui_state) + input.tgui_interact(user) + input.wait() + if (input) + . = input.choices + qdel(input) + +/// Window for tgui_input_checkboxes +/datum/tgui_checkbox_input + /// Title of the window + var/title + /// Message to display + var/message + /// List of items to display + var/list/items + /// List of selected items + var/list/choices + /// Time when the input was created + var/start_time + /// Timeout for the input + var/timeout + /// Whether the input was closed + var/closed + /// Minimum number of checkboxes that must be checked + var/min_checked + /// Maximum number of checkboxes that can be checked + var/max_checked + /// The TGUI UI state that will be returned in ui_state(). Default: always_state + var/datum/tgui_state/state + +/datum/tgui_checkbox_input/New(mob/user, message, title, list/items, min_checked, max_checked, timeout, ui_state) + src.title = title + src.message = message + src.items = items.Copy() + src.min_checked = min_checked + src.max_checked = max_checked + src.state = ui_state + + if (timeout) + src.timeout = timeout + start_time = world.time + QDEL_IN(src, timeout) + +/datum/tgui_checkbox_input/Destroy(force, ...) + SStgui.close_uis(src) + state = null + QDEL_NULL(items) + + return ..() + +/datum/tgui_checkbox_input/proc/wait() + while (!closed && !QDELETED(src)) + stoplag(1) + +/datum/tgui_checkbox_input/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CheckboxInput") + ui.open() + +/datum/tgui_checkbox_input/tgui_close(mob/user) + . = ..() + closed = TRUE + +/datum/tgui_checkbox_input/tgui_state(mob/user) + return state + +/datum/tgui_checkbox_input/tgui_data(mob/user) + var/list/data = list() + + if(timeout) + data["timeout"] = CLAMP01((timeout - (world.time - start_time) - 1 SECONDS) / (timeout - 1 SECONDS)) + + return data + +/datum/tgui_checkbox_input/tgui_static_data(mob/user) + var/list/data = list() + + data["items"] = items + data["min_checked"] = min_checked + data["max_checked"] = max_checked + data["large_buttons"] = user.client.prefs.tgui_large_buttons + data["message"] = message + data["swapped_buttons"] = !user.client.prefs.tgui_swapped_buttons + data["title"] = title + + return data + +/datum/tgui_checkbox_input/tgui_act(action, list/params) + . = ..() + if (.) + return + + switch(action) + if("submit") + var/list/selections = params["entry"] + if(length(selections) >= min_checked && length(selections) <= max_checked) + set_choices(selections) + closed = TRUE + SStgui.close_uis(src) + return TRUE + + if("cancel") + closed = TRUE + SStgui.close_uis(src) + return TRUE + + return FALSE + +/datum/tgui_checkbox_input/proc/set_choices(list/selections) + src.choices = selections.Copy() diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 77570c686c..d2cf51e632 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -89,7 +89,7 @@ Notes: /datum/tooltip/proc/hide() if (queueHide) - addtimer(CALLBACK(src, .proc/do_hide), 1) + addtimer(CALLBACK(src, PROC_REF(do_hide)), 1) else do_hide() diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm index 3fc8e0c98b..3ef89ec260 100644 --- a/code/modules/vchat/vchat_client.dm +++ b/code/modules/vchat/vchat_client.dm @@ -310,7 +310,7 @@ GLOBAL_LIST_EMPTY(bicon_cache) // Cache of the tag results, not the icons base64 = icon2base64(A.examine_icon(), key) GLOB.bicon_cache[key] = base64 if(changes_often) - addtimer(CALLBACK(GLOBAL_PROC, .proc/expire_bicon_cache, key), 50 SECONDS, TIMER_UNIQUE) + addtimer(CALLBACK(GLOBAL_PROC, PROC_REF(expire_bicon_cache), key), 50 SECONDS, TIMER_UNIQUE) // May add a class to the img tag created by bicon if(use_class) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 0b79e4646f..79fae032e4 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -57,6 +57,11 @@ var/selective_preference = DM_DIGEST // Which type of selective bellymode do we default to? var/eating_privacy_local = "default" //Overrides eating_privacy_global if not "default". Determines if attempt/success messages are subtle/loud var/is_feedable = TRUE // If this belly shows up in belly selections for others. //CHOMPAdd + var/silicon_belly_overlay_preference = "Sleeper" //Selects between placing belly overlay in sleeper or normal vore mode. Exclusive + var/visible_belly_minimum_prey = 1 //What LAZYLEN(vore_selected.contents) we require to show the belly. Customizable + var/overlay_min_prey_size = 0 //Minimum prey size for belly overlay to show. 0 to disable + var/override_min_prey_size = FALSE //If true, exceeding override prey number will override minimum size requirements + var/override_min_prey_num = 1 //We check belly contents against this to override min size // Generally just used by AI var/autotransferchance = 0 // % Chance of prey being autotransferred to transfer location @@ -170,11 +175,12 @@ var/disable_hud = FALSE var/colorization_enabled = TRUE //CHOMPedit var/belly_fullscreen_color = "#823232" - var/belly_fullscreen_color2 = "#FFFFFF" - var/belly_fullscreen_color3 = "#823232" - var/belly_fullscreen_color4 = "#FFFFFF" - var/belly_fullscreen_alpha = 255 - + //var/belly_fullscreen_color_secondary = "#428242" //Chomp Disable, using our implementation + //var/belly_fullscreen_color_trinary = "#f0f0f0" //Chomp Disable, using our implementation + var/belly_fullscreen_color2 = "#FFFFFF" //ChompEDIT + var/belly_fullscreen_color3 = "#823232" //ChompEDIT + var/belly_fullscreen_color4 = "#FFFFFF" //ChompEDIT + var/belly_fullscreen_alpha = 255 //ChompEDIT //For serialization, keep this updated, required for bellies to save correctly. @@ -238,6 +244,8 @@ "disable_hud", "reagent_mode_flags", //CHOMP start of variables from CHOMP "belly_fullscreen_color", + //"belly_fullscreen_color_secondary", //Chomp Disable, using our implementation + //"belly_fullscreen_color_trinary", //Chomp Disable, using our implementation "belly_fullscreen_color2", "belly_fullscreen_color3", "belly_fullscreen_color4", @@ -298,7 +306,12 @@ "is_feedable", //CHOMP end of variables from CHOMP "egg_type", "save_digest_mode", - "eating_privacy_local" + "eating_privacy_local", + "silicon_belly_overlay_preference", + "visible_belly_minimum_prey", + "overlay_min_prey_size", + "override_min_prey_size", + "override_min_prey_num", ) if (save_digest_mode == 1) @@ -421,7 +434,7 @@ /*/ Intended for simple mobs //CHMOPEdit: Counting belly cycles now. if((!owner.client || autotransfer_enabled) && autotransferlocation && autotransferchance > 0) - addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, thing, autotransferlocation), autotransferwait) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/belly, check_autotransfer), thing, autotransferlocation), autotransferwait) */ // Called whenever an atom leaves this belly @@ -431,6 +444,9 @@ owner.update_fullness() //CHOMPEdit - This is run whenever a belly's contents are changed. var/mob/living/L = thing L.clear_fullscreen("belly") + //L.clear_fullscreen("belly2") // CHOMP Disable - using our implementation, not upstream's + //L.clear_fullscreen("belly3") // CHOMP Disable - using our implementation, not upstream's + //L.clear_fullscreen("belly4") // CHOMP Disable - using our implementation, not upstream's if(L.hud_used) if(!L.hud_used.hud_shown) L.toggle_hud_vis() @@ -464,6 +480,24 @@ L.clear_fullscreen("belly") if(belly_fullscreen) if(colorization_enabled) + /* //Chomp Disable - disable upstream's solution, use ours + var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/colorized) + F.icon_state = belly_fullscreen + F.color = belly_fullscreen_color + if("[belly_fullscreen]_l1" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly/colorized/overlay) + F2.icon_state = "[belly_fullscreen]_l1" + F2.color = belly_fullscreen_color_secondary + if("[belly_fullscreen]_l2" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F3 = L.overlay_fullscreen("belly3", /obj/screen/fullscreen/belly/colorized/overlay) + F3.icon_state = "[belly_fullscreen]_l2" + F3.color = belly_fullscreen_color_trinary + if("[belly_fullscreen]_nc" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F4 = L.overlay_fullscreen("belly4", /obj/screen/fullscreen/belly/colorized/overlay) + F4.icon_state = "[belly_fullscreen]_nc" + */ //Chomp Disable END + + // Chomp EDIT Begin var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly, severity) //CHOMPEdit Start: preserving save data F.icon = file("modular_chomp/icons/mob/vore_fullscreens/[belly_fullscreen].dmi") F.cut_overlays() @@ -515,6 +549,9 @@ //CHOMPEdit End else L.clear_fullscreen("belly") + //L.clear_fullscreen("belly2") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly3") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly4") //Chomp Disable - disable upstream's solution, use ours if(disable_hud) if(L?.hud_used?.hud_shown) @@ -528,7 +565,24 @@ return if(belly_fullscreen) if(colorization_enabled) - var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly, reagents.total_volume) //CHOMPedit Start: preserving save data + /* //Chomp Disable - disable upstream's solution, use ours + var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/colorized) + F.icon_state = belly_fullscreen + F.color = belly_fullscreen_color + if("[belly_fullscreen]_l1" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly/colorized/overlay) + F2.icon_state = "[belly_fullscreen]_l1" + F2.color = belly_fullscreen_color_secondary + if("[belly_fullscreen]_l2" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F3 = L.overlay_fullscreen("belly3", /obj/screen/fullscreen/belly/colorized/overlay) + F3.icon_state = "[belly_fullscreen]_l2" + F3.color = belly_fullscreen_color_trinary + if("[belly_fullscreen]_nc" in icon_states('icons/mob/screen_full_colorized_vore_overlays.dmi')) + var/obj/screen/fullscreen/F4 = L.overlay_fullscreen("belly4", /obj/screen/fullscreen/belly/colorized/overlay) + F4.icon_state = "[belly_fullscreen]_nc" + */ //Chomp Disable END + //CHOMPedit Start: preserving save data + var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly, reagents.total_volume) F.icon = file("modular_chomp/icons/mob/vore_fullscreens/[belly_fullscreen].dmi") F.cut_overlays() var/image/I = image(F.icon, belly_fullscreen) @@ -574,12 +628,19 @@ I.alpha = max(150, min(custom_max_volume, 255)) - (255 - belly_fullscreen_alpha) I.pixel_y = -450 + (450 / custom_max_volume * reagents.total_volume) F.add_overlay(I) - F.update_for_view(L.client.view)//CHOMPEdit End + F.update_for_view(L.client.view) + //CHOMPEdit End else L.clear_fullscreen("belly") + //L.clear_fullscreen("belly2") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly3") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly4") //Chomp Disable - disable upstream's solution, use ours /obj/belly/proc/clear_preview(mob/living/L) L.clear_fullscreen("belly") + //L.clear_fullscreen("belly2") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly3") //Chomp Disable - disable upstream's solution, use ours + //L.clear_fullscreen("belly4") //Chomp Disable - disable upstream's solution, use ours @@ -1437,6 +1498,7 @@ owner.update_icon() for(var/mob/living/M in contents) M.updateVRPanel() + owner.updateicon() //Autotransfer callback CHOMPEdit Start /obj/belly/proc/check_autotransfer(var/atom/movable/prey) @@ -1503,7 +1565,6 @@ dupe.wet_loop = wet_loop dupe.reagent_mode_flags = reagent_mode_flags //CHOMP start of variables from CHOMP - dupe.belly_fullscreen_color = belly_fullscreen_color dupe.belly_fullscreen_color2 = belly_fullscreen_color2 dupe.belly_fullscreen_color3 = belly_fullscreen_color3 dupe.belly_fullscreen_color4 = belly_fullscreen_color4 @@ -1557,6 +1618,9 @@ dupe.belly_fullscreen = belly_fullscreen dupe.disable_hud = disable_hud + dupe.belly_fullscreen_color = belly_fullscreen_color + //dupe.belly_fullscreen_color_secondary = belly_fullscreen_color_secondary //Chomp Disable - Use our solution, not upstream's + //dupe.belly_fullscreen_color_trinary = belly_fullscreen_color_trinary //Chomp Disable - Use our solution, not upstream's dupe.colorization_enabled = colorization_enabled dupe.egg_type = egg_type dupe.emote_time = emote_time @@ -1564,6 +1628,11 @@ dupe.selective_preference = selective_preference dupe.save_digest_mode = save_digest_mode dupe.eating_privacy_local = eating_privacy_local + dupe.silicon_belly_overlay_preference = silicon_belly_overlay_preference + dupe.visible_belly_minimum_prey = visible_belly_minimum_prey + dupe.overlay_min_prey_size = overlay_min_prey_size + dupe.override_min_prey_size = override_min_prey_size + dupe.override_min_prey_num = override_min_prey_num //// Object-holding variables //struggle_messages_outside - strings diff --git a/code/modules/vore/eating/inbelly_spawn.dm b/code/modules/vore/eating/inbelly_spawn.dm index e8d5ae31a6..50c2c3168b 100644 --- a/code/modules/vore/eating/inbelly_spawn.dm +++ b/code/modules/vore/eating/inbelly_spawn.dm @@ -166,12 +166,12 @@ Please do not abuse this ability. var/datum/language/keylang = GLOB.all_languages[prey.prefs.language_custom_keys[key]] if(keylang) new_character.language_keys[key] = keylang - // CHOMPStation Add: Preferred Language Setting; + // VOREStation Add: Preferred Language Setting; if(prey.prefs.preferred_language) // Do we have a preferred language? var/datum/language/def_lang = GLOB.all_languages[prey.prefs.preferred_language] if(def_lang) new_character.default_language = def_lang - // CHOMPStation Add End + // VOREStation Add End new_character.regenerate_icons() diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 71ba527435..7a429a2db0 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -282,8 +282,6 @@ P.can_be_drop_prey = src.can_be_drop_prey P.can_be_drop_pred = src.can_be_drop_pred P.allow_spontaneous_tf = src.allow_spontaneous_tf - P.appendage_color = src.appendage_color - P.appendage_alt_setting = src.appendage_alt_setting P.step_mechanics_pref = src.step_mechanics_pref P.pickup_pref = src.pickup_pref P.drop_vore = src.drop_vore @@ -341,8 +339,6 @@ can_be_drop_pred = P.can_be_drop_pred // allow_inbelly_spawning = P.allow_inbelly_spawning //CHOMP Removal: we have vore spawning at home. Actually if this were to be enabled, it would break anyway. Just leaving this here as a reference to it. allow_spontaneous_tf = P.allow_spontaneous_tf - appendage_color = P.appendage_color - appendage_alt_setting = P.appendage_alt_setting step_mechanics_pref = P.step_mechanics_pref pickup_pref = P.pickup_pref drop_vore = P.drop_vore @@ -574,6 +570,11 @@ G.can_revert = TRUE qdel(G) log_and_message_admins("[key_name(src)] used the OOC escape button to revert back from being petrified.") + //CHOMPEdit - In-shoe OOC escape. Checking voices as precaution if something akin to obj TF or possession happens + else if(!istype(src, /mob/living/voice) && istype(src.loc, /obj/item/clothing/shoes)) + var/obj/item/clothing/shoes/S = src.loc + forceMove(get_turf(src)) + log_and_message_admins("[key_name(src)] used the OOC escape button to escape from of a pair of shoes. [ADMIN_FLW(src)] - Shoes [ADMIN_VV(S)]") //Don't appear to be in a vore situation else to_chat(src,"You aren't inside anyone, though, is the thing.") @@ -703,6 +704,8 @@ else belly.nom_mob(prey, user) + user.updateicon() + // Inform Admins if(pred == user) add_attack_logs(pred, prey, "Eaten via [belly.name]") @@ -959,7 +962,7 @@ else to_chat(src, "You can taste the flavor of garbage. Delicious.") return - to_chat(src, "This item is not appropriate for ethical consumption.") + to_chat(src, "This snack is too powerful to go down that easily.") //CHOMPEdit return /mob/living/proc/eat_minerals() //Actual eating abstracted so the user isn't given a prompt due to an argument in this verb. @@ -1170,6 +1173,11 @@ icon = 'icons/mob/screen_full_vore.dmi' //CHOMPedit: tweaking to preserve save data icon_state = "" +/* //Chomp DISABLE - use our solution, not upstream's. +/obj/screen/fullscreen/belly/colorized/overlay + icon = 'icons/mob/screen_full_colorized_vore_overlays.dmi' +*/ //Chomp DISABLE End + /mob/living/proc/vorebelly_printout() //Spew the vorepanel belly messages into chat window for copypasting. set name = "X-Print Vorebelly Settings" set category = "Preferences" @@ -1255,7 +1263,7 @@ /datum/component/vore_panel/RegisterWithParent() . = ..() - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button)) var/mob/living/owner = parent if(owner.client) create_mob_button(parent) @@ -1278,7 +1286,7 @@ var/datum/hud/HUD = user.hud_used if(!screen_icon) screen_icon = new() - RegisterSignal(screen_icon, COMSIG_CLICK, .proc/vore_panel_click) + RegisterSignal(screen_icon, COMSIG_CLICK, PROC_REF(vore_panel_click)) if(ispAI(user)) screen_icon.icon = 'icons/mob/pai_hud.dmi' screen_icon.screen_loc = ui_acti @@ -1292,8 +1300,7 @@ /datum/component/vore_panel/proc/vore_panel_click(source, location, control, params, user) var/mob/living/owner = user if(istype(owner) && owner.vorePanel) - INVOKE_ASYNC(owner, /mob/living/proc/insidePanel, owner) //CHOMPEdit - + INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living, insidePanel), owner) //CHOMPEdit /** * Screen object for vore panel */ diff --git a/code/modules/vore/eating/simple_animal_vr.dm b/code/modules/vore/eating/simple_animal_vr.dm index 362298cfe5..abe8830ce6 100644 --- a/code/modules/vore/eating/simple_animal_vr.dm +++ b/code/modules/vore/eating/simple_animal_vr.dm @@ -109,7 +109,7 @@ for(var/mob/living/L in living_mobs(0)) //add everyone on the tile to the do-not-eat list for a while if(!(LAZYFIND(prey_excludes, L))) // Unless they're already on it, just to avoid fuckery. LAZYSET(prey_excludes, L, world.time) - addtimer(CALLBACK(src, .proc/removeMobFromPreyExcludes, WEAKREF(L)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(removeMobFromPreyExcludes), WEAKREF(L)), 5 MINUTES) else if(istype(O, /obj/item/device/healthanalyzer)) var/healthpercent = health/maxHealth*100 to_chat(user, "[src] seems to be [healthpercent]% healthy.") diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index 2704697235..decfdad7e8 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -80,8 +80,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE var/list/belly_prefs = list() var/vore_taste = "nothing in particular" var/vore_smell = "nothing in particular" - var/appendage_color = "#e03997" //Default pink. Used for the 'long_vore' trait. - var/appendage_alt_setting = 0 //Decides if appendage user is thrown at target or not. var/selective_preference = DM_DEFAULT @@ -188,8 +186,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE vore_smell = json_from_file["vore_smell"] permit_healbelly = json_from_file["permit_healbelly"] noisy = json_from_file["noisy"] - appendage_color = json_from_file["appendage_color"] - appendage_alt_setting = json_from_file["appendage_alt_setting"] selective_preference = json_from_file["selective_preference"] show_vore_fx = json_from_file["show_vore_fx"] can_be_drop_prey = json_from_file["can_be_drop_prey"] @@ -240,10 +236,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE selective_preference = DM_DEFAULT if (isnull(noisy)) noisy = FALSE - if (isnull(appendage_color)) - appendage_color = "#e03997" - if (isnull(appendage_alt_setting)) - appendage_alt_setting = 0 if(isnull(show_vore_fx)) show_vore_fx = TRUE if(isnull(can_be_drop_prey)) @@ -339,8 +331,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE "vore_smell" = vore_smell, "permit_healbelly" = permit_healbelly, "noisy" = noisy, - "appendage_color" = appendage_color, - "appendage_alt_setting" = appendage_alt_setting, "selective_preference" = selective_preference, "show_vore_fx" = show_vore_fx, "can_be_drop_prey" = can_be_drop_prey, diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index ef54e8b013..d2f6873b30 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -8,6 +8,14 @@ #define BELLIES_DESC_MAX 4096 #define FLAVOR_MAX 400 +/* //Chomp REMOVE - Use our solution, not upstream's +//INSERT COLORIZE-ONLY STOMACHS HERE +var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", + "a_synth_flesh_mono_hole", + "a_anim_belly", + "multi_layer_test_tummy") +*/ //Chomp REMOVE End + /mob/living var/datum/vore_look/vorePanel @@ -151,6 +159,18 @@ inside["contents"] = inside_contents data["inside"] = inside + var/is_dogborg = FALSE + var/is_vore_simple_mob = FALSE + if(isrobot(host)) + var/mob/living/silicon/robot/R = host + is_dogborg = R.dogborg + else if(istype(host, /mob/living/simple_mob/vore)) //So far, this does nothing. But, creating this for future belly work + is_vore_simple_mob = TRUE + data["host_mobtype"] = list( + "is_dogborg" = is_dogborg, + "is_vore_simple_mob" = is_vore_simple_mob + ) + var/list/our_bellies = list() for(var/obj/belly/B as anything in host.vore_organs) our_bellies.Add(list(list( @@ -200,8 +220,16 @@ "weight_ex" = host.weight_message_visible, "belly_fullscreen" = selected.belly_fullscreen, "eating_privacy_local" = selected.eating_privacy_local, + "silicon_belly_overlay_preference" = selected.silicon_belly_overlay_preference, + "visible_belly_minimum_prey" = selected.visible_belly_minimum_prey, + "overlay_min_prey_size" = selected.overlay_min_prey_size, + "override_min_prey_size" = selected.override_min_prey_size, + "override_min_prey_num" = selected.override_min_prey_num, //CHOMP add: vore sprite options and additional stuff "belly_fullscreen_color" = selected.belly_fullscreen_color, + //"belly_fullscreen_color_secondary" = selected.belly_fullscreen_color_secondary, // Chomp REMOVE - use our solution, not upstream's + //"belly_fullscreen_color_trinary" = selected.belly_fullscreen_color_trinary, // Chomp REMOVE - use our solution, not upstream's + //CHOMP add: vore sprite options and additional stuff "belly_fullscreen_color2" = selected.belly_fullscreen_color2, "belly_fullscreen_color3" = selected.belly_fullscreen_color3, "belly_fullscreen_color4" = selected.belly_fullscreen_color4, @@ -282,10 +310,12 @@ selected_list["disable_hud"] = selected.disable_hud selected_list["colorization_enabled"] = selected.colorization_enabled selected_list["belly_fullscreen_color"] = selected.belly_fullscreen_color - selected_list["belly_fullscreen_color2"] = selected.belly_fullscreen_color2 - selected_list["belly_fullscreen_color3"] = selected.belly_fullscreen_color3 - selected_list["belly_fullscreen_color4"] = selected.belly_fullscreen_color4 - selected_list["belly_fullscreen_alpha"] = selected.belly_fullscreen_alpha + //selected_list["belly_fullscreen_color_secondary"] = selected.belly_fullscreen_color_secondary // Chomp REMOVE - use our solution, not upstream's + //selected_list["belly_fullscreen_color_trinary"] = selected.belly_fullscreen_color_trinary // Chomp REMOVE - use our solution, not upstream's + selected_list["belly_fullscreen_color2"] = selected.belly_fullscreen_color2 //CHOMPAdd + selected_list["belly_fullscreen_color3"] = selected.belly_fullscreen_color3 //CHOMPAdd + selected_list["belly_fullscreen_color4"] = selected.belly_fullscreen_color4 //CHOMPAdd + selected_list["belly_fullscreen_alpha"] = selected.belly_fullscreen_alpha //CHOMPAdd if(selected.colorization_enabled) selected_list["possible_fullscreens"] = icon_states('modular_chomp/icons/mob/screen_full_vore_ch.dmi') //Makes any icons inside of here selectable. //CHOMPedit @@ -297,10 +327,7 @@ //Why? I have no flipping clue. As you can see above, vore_colorized is included in the assets but isn't working. It makes no sense. //I can only imagine this is a BYOND/TGUI issue with the cache. If you can figure out how to fix this and make it so you only need to //include things in full_colorized_vore, that would be great. For now, this is the only workaround that I could get to work. - selected_list["possible_fullscreens"] -= "a_synth_flesh_mono" - selected_list["possible_fullscreens"] -= "a_synth_flesh_mono_hole" - selected_list["possible_fullscreens"] -= "a_anim_belly" - //INSERT COLORIZE-ONLY STOMACHS HERE + //selected_list["possible_fullscreens"] -= belly_colorable_only_fullscreens // Chomp REMOVE - use our solution, not upstream's var/list/selected_contents = list() for(var/O in selected) @@ -372,8 +399,6 @@ "latejoin_vore" = host.latejoin_vore, //CHOMPedit "latejoin_prey" = host.latejoin_prey, //CHOMPedit "allow_spontaneous_tf" = host.allow_spontaneous_tf, - "appendage_color" = host.appendage_color, - "appendage_alt_setting" = host.appendage_alt_setting, "step_mechanics_active" = host.step_mechanics_pref, "pickup_mechanics_active" = host.pickup_pref, "noisy" = host.noisy, @@ -1480,6 +1505,9 @@ B.vore_fx(host, TRUE) else host.clear_fullscreen("belly") + //host.clear_fullscreen("belly2") //Chomp REMOVE - use our solution, not upstream's + //host.clear_fullscreen("belly3") //Chomp REMOVE - use our solution, not upstream's + //host.clear_fullscreen("belly4") //Chomp REMOVE - use our solution, not upstream's if(!host.hud_used.hud_shown) host.toggle_hud_vis() unsaved_changes = TRUE @@ -1733,7 +1761,7 @@ if(!viable_candidates.len) to_chat(user, "There are no viable candidates around you!") return TRUE - belly_owner = tgui_input_list(user, "Who do you want to recieve the target?", "Select Predator", viable_candidates) + belly_owner = tgui_input_list(user, "Who do you want to receive the target?", "Select Predator", viable_candidates) if(!belly_owner || !(belly_owner in range(1, host))) return TRUE @@ -2292,6 +2320,51 @@ return FALSE host.vore_selected.eating_privacy_local = privacy_choice . = TRUE + if("b_silicon_belly") + var/belly_choice = tgui_alert(usr, "Choose whether you'd like your belly overlay to show from sleepers \ + or from normal vore bellies. NOTE: This ONLY applies to silicons, not human mobs!", "Belly Overlay Preference", + list("Sleeper", "Vorebelly")) + if(belly_choice == null) + return FALSE + host.vore_selected.silicon_belly_overlay_preference = belly_choice + host.updateicon() + . = TRUE + if("b_min_belly_number_flat") + var/new_min_belly = tgui_input_number(user, "Choose the amount of prey your belly must contain \ + at absolute minimum (should be lower or equal to minimum prey override if prey override is ON)", + "Set minimum prey amount", host.vore_selected.visible_belly_minimum_prey, max_value = 100, min_value = 1) + if(new_min_belly == null) + return FALSE + var/new_new_min_belly = CLAMP(new_min_belly, 1, 100) //Clamping at 100 rather than infinity. Should be close to infinity tho. + host.vore_selected.visible_belly_minimum_prey = new_new_min_belly + host.updateicon() + . = TRUE + if("b_min_belly_prey_size") + var/new_belly_size = tgui_input_number(user, "Choose the required size prey must be to trigger belly overlay, \ + ranging from 25% to 200%. Set to 0 to disable size checks", "Set Belly Examine Size.", max_value = 200, min_value = 0) + if(new_belly_size == null) + return FALSE + else if(new_belly_size == 0) + host.vore_selected.overlay_min_prey_size = 0 + else + var/new_new_belly_size = CLAMP(new_belly_size, 25, 200) + host.vore_selected.overlay_min_prey_size = (new_new_belly_size/100) + host.updateicon() + . = TRUE + if("b_override_min_belly_prey_size") + host.vore_selected.override_min_prey_size = !host.vore_selected.override_min_prey_size + host.updateicon() + . = TRUE + if("b_min_belly_number_override") + var/new_min_prey = tgui_input_number(user, "Choose the amount of prey your belly must contain to override min prey size \ + to show belly overlay ignoring prey size requirement. Toggle Prey Override MUST be ON to work", + "Set minimum prey amount", host.vore_selected.override_min_prey_num, max_value = 100, min_value = 1) + if(new_min_prey == null) + return FALSE + var/new_new_min_prey = CLAMP(new_min_prey, 1, 100) //Clamping at 100 rather than infinity. Should be close to infinity tho. + host.vore_selected.override_min_prey_num = new_new_min_prey + host.updateicon() + . = TRUE if("b_fancy_sound") host.vore_selected.fancy_vore = !host.vore_selected.fancy_vore host.vore_selected.vore_sound = "Gulp" @@ -2379,7 +2452,7 @@ host.vore_selected.shrink_grow_size = (new_grow*0.01) . = TRUE if("b_nutritionpercent") - var/new_nutrition = tgui_input_number(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, 100, 0.01) + var/new_nutrition = tgui_input_number(user, "Choose the nutrition gain percentage you will receive per tick from prey. Ranges from 0.01 to 100.", "Set Nutrition Gain Percentage.", host.vore_selected.nutrition_percent, 100, 0.01) if(new_nutrition == null) return FALSE var/new_new_nutrition = CLAMP(new_nutrition, 0.01, 100) @@ -2597,6 +2670,18 @@ host.vore_selected.belly_fullscreen_alpha = newalpha host.vore_selected.update_internal_overlay() . = TRUE + /* //Chomp REMOVE - use our solution, not upstream's + if("b_fullscreen_color_secondary") + var/newcolor = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color) as color|null + if(newcolor) + host.vore_selected.belly_fullscreen_color_secondary = newcolor + . = TRUE + if("b_fullscreen_color_trinary") + var/newcolor = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color) as color|null + if(newcolor) + host.vore_selected.belly_fullscreen_color_trinary = newcolor + . = TRUE + */ //Chomp REMOVE - use our solution, not upstream's if("b_save_digest_mode") host.vore_selected.save_digest_mode = !host.vore_selected.save_digest_mode . = TRUE diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index 4230a82e0b..c168a33416 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -74,9 +74,14 @@ /** * Resizes the mob immediately to the desired mod, animating it growing/shrinking. * It can be used by anything that calls it. + * + * Arguments: + * * new_size - CHANGE_ME. + * * animate - CHANGE_ME. Default: TRUE + * * uncapped - CHANGE_ME. Default: FALSE + * * ignore_prefs - CHANGE_ME. Default: FALSE + * * aura_animation - CHANGE_ME. Default: TRUE */ - - /mob/living/proc/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE) if(!uncapped) new_size = clamp(new_size, RESIZE_MINIMUM, RESIZE_MAXIMUM) diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm index 4273771ac5..4088c22aed 100644 --- a/code/modules/vore/resizing/sizegun_vr.dm +++ b/code/modules/vore/resizing/sizegun_vr.dm @@ -25,7 +25,7 @@ /obj/item/weapon/gun/energy/sizegun/New() ..() - verbs += .proc/select_size + verbs += PROC_REF(select_size) /obj/item/weapon/gun/energy/sizegun/attack_self(mob/user) . = ..() diff --git a/code/modules/webhooks/_webhook.dm b/code/modules/webhooks/_webhook.dm index e7cfb646cd..f1cf4841c4 100644 --- a/code/modules/webhooks/_webhook.dm +++ b/code/modules/webhooks/_webhook.dm @@ -10,7 +10,7 @@ if (!target_url) return -1 - var/result = call(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) + var/result = LIBCALL(HTTP_POST_DLL_LOCATION, "send_post_request")(target_url, payload, json_encode(list("Content-Type" = "application/json"))) result = cached_json_decode(result) if (result["error_code"]) diff --git a/code/world.dm b/code/world.dm index 8e76fd11d7..3162653ea4 100644 --- a/code/world.dm +++ b/code/world.dm @@ -1,8 +1,25 @@ -//Global init and the rest of world's code have been moved to code/global_init.dm and code/game/world.dm respectively. +//This file is just for the necessary /world definition +//Try looking in /code/game/world.dm, where initialization order is defined + +/** + * # World + * + * Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke + * + * The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visiblity + */ /world mob = /mob/new_player turf = /turf/space area = /area/space view = "15x15" + hub = "Exadv1.spacestation13" + //CHOMPEdit: Accidentally committed this to master instead of pull request. Adding comment to make a pull request. Also to note that I have changed the password so we won't appear on the HUB regardless of TGS3. + hub_password = "null" + name = "Space Station 13" + /*YW EDIT we want to be on the hub + name = "VOREStation" //VOREStation Edit + visibility = 0 //VOREStation Edit + */ cache_lifespan = 7 fps = 20 // If this isnt hard-defined, anything relying on this variable before world load will cry a lot diff --git a/icons/_nanomaps/southern_cross_nanomap_z2.png b/icons/_nanomaps/southern_cross_nanomap_z2.png index dae63e7cc3..2d99efbf59 100644 Binary files a/icons/_nanomaps/southern_cross_nanomap_z2.png and b/icons/_nanomaps/southern_cross_nanomap_z2.png differ diff --git a/icons/_nanomaps/southern_cross_nanomap_z8.png b/icons/_nanomaps/southern_cross_nanomap_z8.png index 66dabf6f64..9973ff4a2e 100644 Binary files a/icons/_nanomaps/southern_cross_nanomap_z8.png and b/icons/_nanomaps/southern_cross_nanomap_z8.png differ diff --git a/icons/inventory/accessory/item.dmi b/icons/inventory/accessory/item.dmi index 568c866874..e758fe7d4d 100644 Binary files a/icons/inventory/accessory/item.dmi and b/icons/inventory/accessory/item.dmi differ diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index b5bb6eff55..298166f8bc 100644 Binary files a/icons/inventory/accessory/mob.dmi and b/icons/inventory/accessory/mob.dmi differ diff --git a/icons/inventory/accessory/mob_teshari.dmi b/icons/inventory/accessory/mob_teshari.dmi index 467d0ffa35..820e5b5f6d 100644 Binary files a/icons/inventory/accessory/mob_teshari.dmi and b/icons/inventory/accessory/mob_teshari.dmi differ diff --git a/icons/inventory/belt/item.dmi b/icons/inventory/belt/item.dmi index bde59b458b..8e08d8ea0e 100644 Binary files a/icons/inventory/belt/item.dmi and b/icons/inventory/belt/item.dmi differ diff --git a/icons/inventory/belt/item_vr.dmi b/icons/inventory/belt/item_vr.dmi index 679a4779fe..352f5e547b 100644 Binary files a/icons/inventory/belt/item_vr.dmi and b/icons/inventory/belt/item_vr.dmi differ diff --git a/icons/inventory/belt/mob.dmi b/icons/inventory/belt/mob.dmi index ccf3ffd5c9..f766fbc2d9 100644 Binary files a/icons/inventory/belt/mob.dmi and b/icons/inventory/belt/mob.dmi differ diff --git a/icons/inventory/belt/mob_vr.dmi b/icons/inventory/belt/mob_vr.dmi index 715a8855fb..e8770be8ee 100644 Binary files a/icons/inventory/belt/mob_vr.dmi and b/icons/inventory/belt/mob_vr.dmi differ diff --git a/icons/inventory/head/item.dmi b/icons/inventory/head/item.dmi index 47d3e4ef83..94e7e1b8f3 100644 Binary files a/icons/inventory/head/item.dmi and b/icons/inventory/head/item.dmi differ diff --git a/icons/inventory/head/mob.dmi b/icons/inventory/head/mob.dmi index 68d6262d98..7ee58a394a 100644 Binary files a/icons/inventory/head/mob.dmi and b/icons/inventory/head/mob.dmi differ diff --git a/icons/inventory/head/mob_tajaran.dmi b/icons/inventory/head/mob_tajaran.dmi index ff0332205c..b14ad2edd4 100644 Binary files a/icons/inventory/head/mob_tajaran.dmi and b/icons/inventory/head/mob_tajaran.dmi differ diff --git a/icons/inventory/head/mob_teshari.dmi b/icons/inventory/head/mob_teshari.dmi index fea6c2503f..cd68dc9dab 100644 Binary files a/icons/inventory/head/mob_teshari.dmi and b/icons/inventory/head/mob_teshari.dmi differ diff --git a/icons/inventory/head/mob_unathi.dmi b/icons/inventory/head/mob_unathi.dmi index 2030158624..8b1383dd98 100644 Binary files a/icons/inventory/head/mob_unathi.dmi and b/icons/inventory/head/mob_unathi.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/vox/improvised.dmi b/icons/mob/human_races/cyberlimbs/vox/improvised.dmi new file mode 100644 index 0000000000..1d14ad9c3f Binary files /dev/null and b/icons/mob/human_races/cyberlimbs/vox/improvised.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/vox/primalis.dmi b/icons/mob/human_races/cyberlimbs/vox/primalis.dmi new file mode 100644 index 0000000000..24c9898ca5 Binary files /dev/null and b/icons/mob/human_races/cyberlimbs/vox/primalis.dmi differ diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index 31b4d11d36..43e821ddc4 100644 Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ diff --git a/icons/mob/items/lefthand_hats.dmi b/icons/mob/items/lefthand_hats.dmi index c564675447..d90e381dbe 100644 Binary files a/icons/mob/items/lefthand_hats.dmi and b/icons/mob/items/lefthand_hats.dmi differ diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 015ed8d24c..17dcfd7135 100644 Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ diff --git a/icons/mob/items/righthand_hats.dmi b/icons/mob/items/righthand_hats.dmi index aaaa0d80d9..6923eb9cce 100644 Binary files a/icons/mob/items/righthand_hats.dmi and b/icons/mob/items/righthand_hats.dmi differ diff --git a/icons/mob/light_overlays.dmi b/icons/mob/light_overlays.dmi index 2a0f5b153c..3a185e2a65 100644 Binary files a/icons/mob/light_overlays.dmi and b/icons/mob/light_overlays.dmi differ diff --git a/icons/mob/screen_full_colorized_vore.dmi b/icons/mob/screen_full_colorized_vore.dmi index 5926d216f6..b98efc9fc3 100644 Binary files a/icons/mob/screen_full_colorized_vore.dmi and b/icons/mob/screen_full_colorized_vore.dmi differ diff --git a/icons/mob/screen_full_colorized_vore_overlays.dmi b/icons/mob/screen_full_colorized_vore_overlays.dmi new file mode 100644 index 0000000000..d9678c3ff2 Binary files /dev/null and b/icons/mob/screen_full_colorized_vore_overlays.dmi differ diff --git a/icons/mob/screen_full_vore.dmi b/icons/mob/screen_full_vore.dmi index a89c272c84..cdce06618f 100644 Binary files a/icons/mob/screen_full_vore.dmi and b/icons/mob/screen_full_vore.dmi differ diff --git a/icons/mob/vore/ears_vr.dmi b/icons/mob/vore/ears_vr.dmi index e6d8d921bf..bd621ffe2d 100644 Binary files a/icons/mob/vore/ears_vr.dmi and b/icons/mob/vore/ears_vr.dmi differ diff --git a/icons/mob/vore/taurs_vr.dmi b/icons/mob/vore/taurs_vr.dmi index 99c6e7debe..4c5d0c8bf2 100644 Binary files a/icons/mob/vore/taurs_vr.dmi and b/icons/mob/vore/taurs_vr.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index da355f3e97..3237f3ce07 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/decal_warning_stripes.dmi b/icons/obj/decal_warning_stripes.dmi deleted file mode 100644 index a0cf5e3244..0000000000 Binary files a/icons/obj/decal_warning_stripes.dmi and /dev/null differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index df626a05ba..c9c357fe04 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/light_overlays.dmi b/icons/obj/light_overlays.dmi index 470631d104..f9f01aba80 100644 Binary files a/icons/obj/light_overlays.dmi and b/icons/obj/light_overlays.dmi differ diff --git a/icons/obj/lighters.dmi b/icons/obj/lighters.dmi new file mode 100644 index 0000000000..8356af7b48 Binary files /dev/null and b/icons/obj/lighters.dmi differ diff --git a/icons/obj/projectiles_impact_ch.dmi b/icons/obj/projectiles_impact_ch.dmi new file mode 100644 index 0000000000..4aa05cdb01 Binary files /dev/null and b/icons/obj/projectiles_impact_ch.dmi differ diff --git a/icons/obj/projectiles_muzzle_ch.dmi b/icons/obj/projectiles_muzzle_ch.dmi new file mode 100644 index 0000000000..c2fae91aa6 Binary files /dev/null and b/icons/obj/projectiles_muzzle_ch.dmi differ diff --git a/icons/obj/projectiles_tracer_ch.dmi b/icons/obj/projectiles_tracer_ch.dmi new file mode 100644 index 0000000000..da1423f76a Binary files /dev/null and b/icons/obj/projectiles_tracer_ch.dmi differ diff --git a/icons/obj/robot_storage.dmi b/icons/obj/robot_storage.dmi index 24e0aa73a3..a515f76d2f 100644 Binary files a/icons/obj/robot_storage.dmi and b/icons/obj/robot_storage.dmi differ diff --git a/icons/obj/suit_cooler.dmi b/icons/obj/suit_cooler.dmi new file mode 100644 index 0000000000..92f97ef8a6 Binary files /dev/null and b/icons/obj/suit_cooler.dmi differ diff --git a/icons/obj/suit_cycler.dmi b/icons/obj/suit_cycler.dmi new file mode 100644 index 0000000000..5bc9542484 Binary files /dev/null and b/icons/obj/suit_cycler.dmi differ diff --git a/icons/obj/suit_storage.dmi b/icons/obj/suit_storage.dmi new file mode 100644 index 0000000000..5c39c1364e Binary files /dev/null and b/icons/obj/suit_storage.dmi differ diff --git a/icons/obj/suitstorage.dmi b/icons/obj/suitstorage.dmi deleted file mode 100644 index a2f499f9fc..0000000000 Binary files a/icons/obj/suitstorage.dmi and /dev/null differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 44e4c618b3..f83ad770bd 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 21ba4dd9a8..d54a4e1e41 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/icons/obj/zippo.dmi b/icons/obj/zippo.dmi deleted file mode 100644 index 17288a981a..0000000000 Binary files a/icons/obj/zippo.dmi and /dev/null differ diff --git a/icons/obj/zippo_ch.dmi b/icons/obj/zippo_ch.dmi new file mode 100644 index 0000000000..98a028f4b2 Binary files /dev/null and b/icons/obj/zippo_ch.dmi differ diff --git a/icons/turf/flooring/decals.dmi b/icons/turf/flooring/decals.dmi index c98b77736c..261235765e 100644 Binary files a/icons/turf/flooring/decals.dmi and b/icons/turf/flooring/decals.dmi differ diff --git a/icons/turf/flooring/decals_old.dmi b/icons/turf/flooring/decals_old.dmi deleted file mode 100644 index c3441b5714..0000000000 Binary files a/icons/turf/flooring/decals_old.dmi and /dev/null differ diff --git a/icons/turf/flooring/decals_vr.dmi b/icons/turf/flooring/decals_vr.dmi index af18f8d6c5..37573c591b 100644 Binary files a/icons/turf/flooring/decals_vr.dmi and b/icons/turf/flooring/decals_vr.dmi differ diff --git a/ingame_manuals/malf_ai.html b/ingame_manuals/malf_ai.html index 65424f24ed..ff44c57e76 100644 --- a/ingame_manuals/malf_ai.html +++ b/ingame_manuals/malf_ai.html @@ -3,12 +3,12 @@ This guide contains most important OOC information for malfunctioning AIs.

    Goal


    -As malfunctioning AI, your primary goal is to overtake station's systems. To do this, use software "Basic Encryption Hack" on APCs (right click on APC and select Basic Encryption Hack). Please note that hacked APCs have distinctive blue error screen, that tends to attract attention. Rememember that malfunctioning AI is antagonist, so read server rules for antagonists. While hacking APCs is your official goal, feel free to create custom goal, as long as it is fun for everyone.
    +As malfunctioning AI, your primary goal is to overtake station's systems. To do this, use software "Basic Encryption Hack" on APCs (right click on APC and select Basic Encryption Hack). Please note that hacked APCs have distinctive blue error screen, that tends to attract attention. Remember that malfunctioning AI is antagonist, so read server rules for antagonists. While hacking APCs is your official goal, feel free to create custom goal, as long as it is fun for everyone.

    Hardware


    As malfunctioning AI, you may select one hardware piece to help you. Remember that once you select hardware piece, you cannot select another one, so choose wisely! Hardware may be selected by clicking "Select Hardware" button in Hardware tab. Following is list of possible hardware pieces:
    APU Generator - Auxiliary Power Unit which allows you to operate even without external power. However, running on APU will stop your CPU time generation, and temporarily disable most of your abilities. APU is also somewhat vulnerable to physical damage, and will fail if your core hardware integrity drops below 50%.
    -Turrets Focus Enhancer - Removes safeties on installed turrets, boosting their rate of fire, health and enabling nano-regeneration module. This however increases power usage considerably, espicially when regenerating damage.
    +Turrets Focus Enhancer - Removes safeties on installed turrets, boosting their rate of fire, health and enabling nano-regeneration module. This however increases power usage considerably, especially when regenerating damage.
    Secondary Processor Unit - Simple upgrade that increases your CPU time generation by 50%. Useful if you need to speed up your research.
    Secondary Memory Bank - Doubles amount of maximal CPU time you may store. This is useful if you need to use lots of abilities in short amount of time.
    Self-Destruct Explosives - Large blocks of C4 are attached to your physical core. This C4 has 15 second timer, and may be activated by special button that appears in your Hardware tab. This self-destruct will remain active, even if you are destroyed. If timer reaches 0 your core explodes in strong explosion. Obviously, this destroys you, as well as anyone nearby.
    @@ -19,4 +19,4 @@ Software are abilities that have to be unlocked via research menu (Hardware tab) Interdiction - Sabotage-oriented abilities. T1 ability allows you to recall emergency shuttle. Higher level abilities allow you to unlock cyborgs even without access to robotics console, and T4 ability allows you to hack other AIs to slave them under your control.
    Manipulation - Physical-oriented abilities. T1 ability allows you to break few lights, and rarely even APCs. T2 ability allows you to apply upgrade of your choice to camera, or reactivate broken camera. T3 ability allows you to create weak forcefield, that holds air, but won't last for long. And T4 ability allows you to overload machines, detonating them in weak explosion.

    End


    -If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff. \ No newline at end of file +If you still have some questions, either check the wiki, ask on IRC, or adminhelp and ask your friendly administration staff. diff --git a/maps/atoll/atoll_objs.dm b/maps/atoll/atoll_objs.dm index 32ab2c07f9..3f04c540d3 100644 --- a/maps/atoll/atoll_objs.dm +++ b/maps/atoll/atoll_objs.dm @@ -255,7 +255,7 @@ name = "Falls Monolith - The Song" desc = "Her song cannot end. If her song ends, then we end. We cannot outlive a missing song. We cannot \ live with the mourning of our fell makers. We will die. But the life on this wanderstar will go on. \ - Who will it live for then? We primaries are the only ones with the lorehalldeals to acknowledge it's beauty." + Who will it live for then? We primaries are the only ones with the mindset to acknowledge it's beauty." value = CATALOGUER_REWARD_TRIVIAL /datum/category_item/catalogue/anomalous/mono5 diff --git a/maps/atoll/atoll_turfs.dm b/maps/atoll/atoll_turfs.dm index 26bdc3419f..c7aa914aa7 100644 --- a/maps/atoll/atoll_turfs.dm +++ b/maps/atoll/atoll_turfs.dm @@ -26,7 +26,7 @@ /turf/simulated/floor/water/atoll name = "shallow water" - desc = "This water looks pretty shallow and calm. You'd almost feel bad for hopping in and disturbing it's serene flatness." + desc = "This water looks pretty shallow and calm. You'd almost feel bad for hopping in and disturbing its serene flatness." icon = 'maps/atoll/icons/turfs/water.dmi' icon_state = "shallow" under_state = "shallow" diff --git a/maps/atoll/falls.dmm b/maps/atoll/falls.dmm index 81d4a63efd..12ffc41bc6 100644 --- a/maps/atoll/falls.dmm +++ b/maps/atoll/falls.dmm @@ -6,6 +6,7 @@ "aD" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/obj/structure/flora/tree/atoll/mangrove{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "aE" = (/obj/structure/canopy_corner{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "aJ" = (/obj/effect/floor_decal/atoll/border{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"aM" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "aN" = (/obj/structure/flora/tree/atoll/mangrove,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "aO" = (/obj/structure/canopy/edge/north,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "aP" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -33,7 +34,7 @@ "cz" = (/obj/structure/canopy,/obj/structure/aqueduct/corner{dir = 9},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "cA" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang,/obj/effect/decal/shadow/silhouette/support,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "cE" = (/obj/structure/waterfall,/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"cG" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"cG" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/obj/effect/floor_decal/atoll/border{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "cH" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "cS" = (/obj/structure/aqueduct/pillar,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "cU" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -60,11 +61,13 @@ "ev" = (/obj/machinery/gateway{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ey" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "eA" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"eC" = (/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "eG" = (/obj/structure/waterfall,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "eJ" = (/obj/effect/floor_decal/atoll/border{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "eN" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "eX" = (/obj/structure/canopy/edge/south,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "fj" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"fq" = (/obj/effect/floor_decal/atoll/bronze{dir = 5},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "fu" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/waterfall/mist,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "fG" = (/obj/structure/railing/overhang,/obj/effect/decal/shadow/silhouette/support,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "fH" = (/obj/effect/floor_decal/atoll/power,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -75,6 +78,7 @@ "go" = (/obj/structure/canopy,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "gs" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "gv" = (/obj/structure/canopy,/obj/effect/blocker,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"gw" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "gx" = (/obj/structure/canopy/edge,/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "gy" = (/obj/effect/floor_decal/atoll/border{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "gz" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 40; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -96,7 +100,7 @@ "hz" = (/obj/structure/canopy,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "hI" = (/obj/structure/canopy,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "hQ" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) -"hV" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"hV" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "hW" = (/obj/structure/canopy/edge/south,/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "hX" = (/obj/structure/flora/tree/atoll/mangrove{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ic" = (/obj/structure/waterfall,/obj/effect/blocker,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -107,7 +111,9 @@ "il" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ir" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "it" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang,/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"iy" = (/obj/structure/aqueduct,/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "iz" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"iF" = (/obj/effect/blocker,/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "iJ" = (/obj/structure/canopy,/obj/structure/aqueduct/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "iN" = (/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "iS" = (/obj/effect/decal/shadow,/obj/effect/floor_decal/atoll/stairs,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -117,15 +123,18 @@ "jx" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "jD" = (/obj/effect/floor_decal/atoll/border{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "jE" = (/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"jF" = (/obj/structure/aqueduct{dir = 1},/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "jK" = (/obj/structure/waterfall,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "jM" = (/obj/effect/decal/shadow/floor,/obj/structure/waterfall,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "jO" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "jP" = (/obj/structure/canopy/edge/south,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"jW" = (/obj/structure/canopy/edge/south,/obj/vehicle/boat{icon_state = "boat"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"jT" = (/obj/structure/canopy/edge/north,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"jW" = (/obj/structure/canopy/edge/south,/obj/vehicle/boat{icon_state = "boat"; dir = 8},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "jX" = (/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "jZ" = (/obj/structure/canopy/edge/north,/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ka" = (/obj/structure/waterfall,/obj/structure/canopy_corner,/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "kh" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"km" = (/obj/effect/blocker,/obj/structure/canopy,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ko" = (/obj/effect/blocker,/obj/structure/canopy_corner{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "kO" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "kQ" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -134,6 +143,8 @@ "ld" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "lh" = (/obj/effect/floor_decal/atoll/border{dir = 4},/obj/structure/aqueduct,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ll" = (/obj/structure/railing/overhang/waterless,/obj/structure/flora/tree/atoll/mangrove{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"lq" = (/obj/effect/floor_decal/atoll/bronze{dir = 9},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"lu" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "lv" = (/obj/effect/blocker,/obj/structure/canopy,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "lH" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "lI" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -147,6 +158,7 @@ "lX" = (/obj/structure/waterfall/top,/obj/structure/canopy/edge,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "mh" = (/obj/effect/decal/shadow/silhouette/support,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "mo" = (/obj/structure/canopy/edge,/obj/effect/decal/godray,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"ms" = (/obj/effect/blocker,/obj/effect/floor_decal/atoll/bronze{dir = 9},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "mv" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "mC" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "mL" = (/obj/effect/blocker,/obj/structure/canopy/edge/north,/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -166,6 +178,7 @@ "nX" = (/obj/structure/canopy,/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "nY" = (/obj/structure/canopy/edge/north,/obj/effect/decal/godray{dir = 8},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ob" = (/obj/structure/monolith/fifth,/obj/effect/decal/godray,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"of" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "oi" = (/obj/structure/railing/overhang/waterless/under{dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "or" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 44; teleport_y = 50},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ov" = (/obj/effect/decal/shadow/silhouette,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -175,7 +188,8 @@ "oF" = (/obj/effect/floor_decal/atoll/border{dir = 5},/obj/structure/bed/chair/sofa/bench/marble,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "oK" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "oR" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) -"oV" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"oV" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"oW" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "pb" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "pj" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/decal/shadow,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "pl" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -184,6 +198,7 @@ "pA" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 15; teleport_y = 116},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "pV" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/canopy_corner{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "pX" = (/obj/effect/decal/shadow/silhouette,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"qa" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy_corner{dir = 1},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "qb" = (/obj/structure/monolith/fourth,/obj/effect/decal/godray,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "qk" = (/obj/effect/floor_decal/atoll/border{dir = 6},/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ql" = (/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) @@ -195,8 +210,9 @@ "qK" = (/obj/effect/floor_decal/atoll/border{dir = 6},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/step_trigger/teleporter/atoll{teleport_x = 32; teleport_y = 117},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "qS" = (/obj/structure/aqueduct/pillar{dir = 4},/obj/structure/canopy_corner{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "qW" = (/obj/structure/canopy_corner,/obj/structure/flora/tree/atoll/mangrove,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"qY" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"qY" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "rb" = (/obj/structure/canopy,/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"rc" = (/obj/structure/aqueduct,/obj/structure/aqueduct/pillar{dir = 1},/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "rg" = (/obj/effect/decal/shadow/floor,/obj/effect/decal/shadow/silhouette,/obj/structure/waterfall,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ri" = (/obj/structure/canopy,/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "rj" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -204,6 +220,7 @@ "rs" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "ru" = (/obj/effect/blocker,/obj/structure/canopy,/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ry" = (/obj/structure/canopy/edge/south,/obj/structure/railing/overhang,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"rB" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "rE" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "rH" = (/obj/effect/decal/shadow/silhouette,/obj/structure/railing/overhang/waterless,/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "rK" = (/obj/effect/floor_decal/atoll{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -213,28 +230,36 @@ "so" = (/obj/structure/railing/overhang/waterless,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "sr" = (/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "sE" = (/obj/effect/decal/shadow/floor,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) +"sH" = (/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "sI" = (/obj/structure/aqueduct,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "sN" = (/obj/structure/waterfall,/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "sU" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang,/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"sV" = (/obj/structure/canopy,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "sX" = (/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "sY" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "sZ" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "tf" = (/obj/structure/canopy_corner{dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"tl" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/border{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "to" = (/obj/structure/canopy/edge/south,/obj/structure/aqueduct/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tr" = (/obj/structure/waterfall/mist,/obj/structure/waterfall,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tt" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "tu" = (/obj/effect/decal/shadow/floor,/obj/structure/waterfall,/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"tz" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tB" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "tD" = (/obj/effect/decal/shadow/silhouette/pillar,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"tJ" = (/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "tM" = (/obj/structure/canopy/edge/right,/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tP" = (/obj/structure/canopy/edge/north,/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"tS" = (/obj/structure/canopy/edge/right,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tT" = (/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"tV" = (/obj/structure/aqueduct,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "tX" = (/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "tY" = (/obj/effect/floor_decal/atoll,/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ub" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "ud" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ug" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "ui" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/border{dir = 1},/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"uj" = (/obj/effect/blocker,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "uo" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "uv" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "uA" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) @@ -246,9 +271,11 @@ "vl" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "vm" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "vn" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"vp" = (/obj/effect/blocker,/obj/structure/aqueduct,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "vy" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "vI" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/canopy/edge,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "vK" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"vM" = (/obj/structure/aqueduct/pillar{dir = 4},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "vQ" = (/obj/structure/canopy,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "vT" = (/obj/effect/decal/shadow/silhouette,/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "vW" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -286,12 +313,14 @@ "yz" = (/obj/structure/waterfall/top,/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "yD" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "yE" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"yF" = (/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "yI" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border{dir = 9},/obj/effect/step_trigger/teleporter/atoll{teleport_x = 17; teleport_y = 124},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "yJ" = (/obj/effect/floor_decal/atoll/border{dir = 8},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "yM" = (/obj/structure/canopy,/obj/effect/blocker,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "yW" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 73; teleport_y = 50},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "zb" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "zc" = (/obj/machinery/gateway{dir = 5},/obj/effect/floor_decal/atoll/border{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"zd" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "zh" = (/obj/structure/canopy/edge,/obj/structure/canopy/edge/right,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "zk" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "zt" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -301,6 +330,7 @@ "zE" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "zN" = (/obj/structure/aqueduct/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "zO" = (/obj/structure/aqueduct/pillar,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"zR" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "zU" = (/obj/effect/blocker,/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "zY" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ae" = (/obj/effect/floor_decal/atoll/border,/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -322,10 +352,11 @@ "Bh" = (/obj/structure/railing/overhang,/obj/structure/flora/tree/atoll/mangrove,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Bo" = (/obj/structure/canopy/edge/south,/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "Bq" = (/obj/structure/waterfall,/obj/structure/canopy/edge,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"BA" = (/obj/structure/aqueduct,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "BB" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "BF" = (/obj/effect/floor_decal/atoll/border,/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "BH" = (/obj/structure/canopy,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"BL" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"BL" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Cb" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Cd" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Ce" = (/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -335,6 +366,7 @@ "Cr" = (/obj/structure/railing/overhang/waterless/under{dir = 1},/obj/structure/railing/overhang/waterless/under{dir = 4},/obj/structure/waterfall,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "Cs" = (/obj/structure/railing/overhang/waterless/under{dir = 1},/obj/structure/waterfall,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "Cw" = (/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"Cz" = (/obj/structure/aqueduct,/obj/structure/aqueduct/pillar{dir = 1},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "CH" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "CL" = (/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "CM" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) @@ -346,6 +378,7 @@ "Dl" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Do" = (/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Dp" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Dq" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Du" = (/obj/effect/floor_decal/atoll/border,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Dw" = (/obj/structure/canopy_corner,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Dy" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 12; teleport_y = 50},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -354,12 +387,13 @@ "DI" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "DJ" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "DM" = (/obj/structure/lightpost/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"DO" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "DV" = (/obj/structure/railing/overhang/waterless/under{dir = 1},/obj/structure/railing/overhang/waterless/under{dir = 8},/obj/structure/waterfall,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "Eb" = (/obj/effect/blocker,/obj/structure/canopy/edge,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ej" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Em" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ep" = (/obj/structure/canopy_corner{dir = 1},/obj/structure/flora/tree/atoll/mangrove,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"Eq" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/vehicle/boat{icon_state = "boat"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Eq" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/vehicle/boat{icon_state = "boat"; dir = 8},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Er" = (/obj/structure/bed/chair/sofa/bench/marble,/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Et" = (/obj/structure/railing/overhang,/obj/structure/flora/tree/atoll/mangrove{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ev" = (/obj/effect/floor_decal/atoll/border{dir = 8},/obj/structure/aqueduct,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -372,6 +406,7 @@ "EW" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "EY" = (/obj/effect/blocker,/obj/structure/canopy,/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Fb" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Ff" = (/obj/vehicle/boat{icon_state = "boat"; dir = 8},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Fg" = (/obj/effect/floor_decal/atoll{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Fr" = (/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Fw" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -399,6 +434,7 @@ "GG" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "GL" = (/obj/effect/floor_decal/atoll,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "GO" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"GP" = (/obj/structure/canopy,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ha" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Hb" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Hi" = (/obj/structure/waterfall,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) @@ -440,6 +476,7 @@ "Kx" = (/obj/structure/canopy/edge/south,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "KD" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 71; teleport_y = 82},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "KG" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 1},/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"KL" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "KM" = (/obj/structure/temple,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "KN" = (/obj/structure/monolith/first,/obj/effect/decal/godray,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "KT" = (/obj/effect/blocker,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/waterfall,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -447,6 +484,7 @@ "KZ" = (/obj/structure/aqueduct{dir = 8},/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Lb" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "Lc" = (/obj/structure/waterfall,/obj/effect/decal/shadow/floor,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"Lg" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Lj" = (/obj/structure/canopy,/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Lr" = (/obj/structure/canopy/edge/south,/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ls" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -472,7 +510,9 @@ "My" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "MD" = (/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "MM" = (/obj/effect/floor_decal/atoll/border{dir = 5},/obj/effect/floor_decal/atoll/bronze{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"MR" = (/obj/effect/blocker,/obj/structure/canopy_corner,/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Nf" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"Nh" = (/obj/effect/blocker,/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Nn" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "No" = (/obj/effect/decal/shadow/silhouette,/obj/structure/canopy,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ns" = (/obj/structure/canopy/edge/north,/obj/structure/canopy/edge/south,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -492,6 +532,7 @@ "OH" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "OI" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Pd" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Pe" = (/obj/structure/canopy_corner,/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Pk" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 100; teleport_y = 50},/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/border/invert{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Pm" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Pn" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -520,14 +561,16 @@ "Rd" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/obj/structure/railing/overhang/waterless,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "Rf" = (/obj/structure/aqueduct/pillar{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Rg" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/obj/effect/landmark,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"Rl" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Rn" = (/obj/structure/canopy_corner{dir = 4},/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Rw" = (/obj/structure/waterfall/top,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "RE" = (/obj/effect/decal/shadow,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 1},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) -"RF" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"RF" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "RG" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/godray{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "RR" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "RS" = (/obj/structure/canopy_corner,/turf/simulated/floor/water/atoll/sunk,/area/gateway/atoll/falls) "RV" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/blocker,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"RW" = (/obj/structure/aqueduct/pillar{dir = 1},/obj/structure/canopy_corner{dir = 8},/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Si" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Sk" = (/obj/effect/floor_decal/atoll/border/invert,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Sn" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -540,6 +583,7 @@ "SN" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border/invert{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "SO" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "SR" = (/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/decal/godray,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"Tb" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Td" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Tg" = (/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ti" = (/obj/structure/waterfall/top,/obj/structure/canopy/edge/south,/obj/structure/aqueduct{dir = 8},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) @@ -549,6 +593,7 @@ "TA" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "TD" = (/obj/structure/temple,/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "TF" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/canopy/edge/north,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"TH" = (/obj/structure/aqueduct{dir = 1},/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "TI" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border/invert{dir = 4},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "TM" = (/obj/structure/waterfall,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "TR" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 83; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -565,28 +610,31 @@ "Vb" = (/obj/machinery/gateway,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Vc" = (/obj/effect/floor_decal/atoll/bronze{dir = 6},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Vd" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/border{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) -"Ve" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/vehicle/boat{icon_state = "boat"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Ve" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Vg" = (/obj/effect/blocker,/obj/structure/canopy/edge/south,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Vk" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll{dir = 8},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"Vn" = (/obj/structure/aqueduct/pillar{dir = 4},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Vp" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/border{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Vs" = (/obj/effect/decal/shadow/silhouette,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Vx" = (/obj/effect/blocker,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "VM" = (/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "VQ" = (/obj/structure/canopy/edge,/obj/structure/canopy/edge/right,/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"VT" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"VT" = (/obj/structure/railing/overhang,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "VZ" = (/obj/structure/canopy_corner{dir = 1},/obj/structure/aqueduct,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Wc" = (/obj/effect/decal/shadow/silhouette,/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Wj" = (/obj/structure/canopy,/obj/structure/aqueduct{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Wk" = (/obj/structure/waterfall/top,/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"Wm" = (/obj/effect/blocker,/obj/structure/aqueduct{dir = 1},/obj/structure/canopy,/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Wp" = (/obj/effect/floor_decal/atoll/bronze{dir = 4},/obj/effect/floor_decal/atoll/bronze,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Ww" = (/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/border{dir = 1},/obj/effect/decal/godray{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "WA" = (/obj/effect/floor_decal/atoll{dir = 4},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "WK" = (/obj/effect/floor_decal/atoll/stairs,/obj/effect/decal/shadow,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "WM" = (/obj/effect/decal/shadow/floor,/obj/effect/floor_decal/atoll/border{dir = 4},/obj/effect/floor_decal/atoll/bronze{dir = 1},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) -"WP" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"WO" = (/obj/structure/canopy_corner{dir = 8},/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"WP" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/effect/decal/godray{dir = 1},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "WQ" = (/obj/structure/canopy_corner,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "WS" = (/obj/effect/floor_decal/atoll/border{dir = 6},/obj/structure/bed/chair/sofa/bench/marble{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) -"WV" = (/obj/vehicle/boat{icon_state = "boat"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"WV" = (/obj/vehicle/boat{icon_state = "boat"; dir = 4},/obj/item/weapon/oar,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "WW" = (/obj/effect/floor_decal/atoll/border{dir = 4},/obj/effect/floor_decal/atoll/border{dir = 8},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "WX" = (/obj/effect/floor_decal/atoll/bronze{dir = 8},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/bronze{dir = 1},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Xa" = (/obj/effect/floor_decal/atoll/border{dir = 10},/obj/structure/bed/chair/sofa/bench/marble{dir = 4},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) @@ -603,14 +651,18 @@ "XR" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 14; teleport_y = 117},/obj/effect/floor_decal/atoll/border/invert{dir = 1},/obj/effect/floor_decal/atoll/bronze,/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "XX" = (/obj/structure/railing/overhang/waterless{icon_state = "wbronze_railing0"; dir = 4},/obj/structure/canopy/edge,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ya" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/canopy/edge/north,/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"Yb" = (/obj/structure/canopy_corner{dir = 8},/obj/structure/railing/overhang/waterless,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Ym" = (/obj/effect/floor_decal/atoll/border/invert{dir = 8},/obj/effect/floor_decal/atoll/border{dir = 5},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Yn" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/effect/decal/shadow/silhouette/support,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Yv" = (/obj/effect/step_trigger/teleporter/atoll{teleport_x = 57; teleport_y = 50},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) "Yw" = (/obj/structure/waterfall,/obj/structure/aqueduct{dir = 4},/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) +"Yy" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/effect/decal/shadow/silhouette/pillar{dir = 4},/obj/structure/canopy/edge/right,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "YC" = (/obj/structure/waterfall,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) +"YE" = (/obj/effect/decal/shadow/silhouette/support,/obj/structure/canopy,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "YG" = (/obj/structure/flora/tree/atoll/mangrove{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "YH" = (/obj/structure/canopy/edge/north,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 4},/obj/effect/decal/shadow/silhouette/support,/obj/effect/decal/godray{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "YK" = (/obj/machinery/gateway{dir = 9},/obj/effect/floor_decal/atoll/border{dir = 9},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"YL" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/canopy_corner{dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Za" = (/obj/structure/waterfall,/obj/structure/waterfall/mist,/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Zb" = (/obj/structure/flora/tree/atoll/mangrove{dir = 4},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "Zf" = (/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 8},/obj/structure/railing/overhang{icon_state = "bronze_railing0"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) @@ -625,7 +677,8 @@ "ZM" = (/obj/effect/decal/shadow{icon_state = "wall_shadow"; dir = 1},/obj/structure/railing/overhang/waterless,/obj/effect/blocker,/turf/simulated/floor/atoll/vertical,/area/gateway/atoll/falls) "ZN" = (/obj/structure/aqueduct/pillar{dir = 4},/obj/structure/canopy_corner{dir = 8},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) "ZP" = (/obj/structure/waterfall,/obj/structure/aqueduct{dir = 8},/obj/structure/waterfall/mist,/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) -"ZQ" = (/obj/effect/floor_decal/atoll/bronze{dir = 10},/obj/effect/floor_decal/atoll/border/invert,/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"ZQ" = (/obj/effect/floor_decal/atoll/border/invert,/obj/effect/floor_decal/atoll/bronze{dir = 10},/turf/simulated/floor/atoll,/area/gateway/atoll/falls) +"ZX" = (/obj/structure/canopy_corner{dir = 1},/obj/effect/decal/shadow/silhouette{icon_state = "silhouette"; dir = 1},/turf/simulated/floor/water/atoll,/area/gateway/atoll/falls) (1,1,1) = {" FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLjhhFrFrWQqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnlaVMPnqnqnqnqn @@ -641,56 +694,56 @@ FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrBqHiHiHiHiHiHiHiHiHiGoHiHiHiHiHi FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrvcHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoZoqyhjVMVMVMGhhpsNGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoHiHiHiHiHiHiHiHiKcGoHiHiHiHiHi WjWjWjWjWjWjNuWjWjWjWjWjWjWjWjWjWjFrFrFrFrFrFrFrFrcEjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiHiGojKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGOqyFgciGqGqGqFgcihpxsjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiHiGojKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKGoHiHiHiHiHiHiHiHiKcGojKjKjKjKjK nXnXnXnXnXnXEYnXGvnXnXnXGvnXnXnXGvczFrFrFrFrFrFrFrAhwrwrwrwrwrwrwrwrGoHiHiHiHiHiHiHiHiHiGowrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrGOaWGLxogditgdgSrKaJxstrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrtrGoHiHiHiHiHiHiHiHiHiGowrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrGoHiHiHiHiHiHiHiHiKcGowrwrwrwrwr -FrFrFrFrFrFrlPFriJFrFrFriJFrFrFriJFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGOaWWWPnlaKNPnHaWWaJxsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiKcGoqnqnqnqnqn -FrFrFrFrFrFrlPFriJFrLTaEiJFrFrFrHshIhIFrFrFrFrFrFrzCtXtXqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGOaWFgaDgIsUgIPHciaJxsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiKcGoqnqnqnqnqn -FrFrFrFrFrFrlPLTQoLrWQqntoaEFrBHXRWwkOaRFrFrFrFrFrzCjxjxqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnHDaWGLrKGqGqGqGLrKaJpjqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiKcUZqnqnqnqnqn -FrFrFrFrFrFrlPzCmhFrFrWQFVhuFrBHSKLMHQaRFrFrFrFrLTqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnubaWiNjDjDjDjDjDvmaJnDqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKicCMqnqnqnqnqn -FrFrFrFrFrFrlPWQhuFrFrFrFrFrFrBHHMAuvWaRFxLyaEFrzCqnqntXtXqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnpXGfDbaAdGVMaAdGGfDbovqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrGEVsqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrLTUrUrUraEBHpmtfFrzCqnqnjxsoqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnqnqngIgIgIgIgIqnqnqnqnqnqnqnqnqnjxREREWKiSREiSWKREREjxqnqnqnqnqnqnqnqnqngIgIgIgIgIqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnozjxqnqnqnqnqn -FrFrFrFrFrFrlPFrFrhIhIFrFrFrFrzCGoGoGohuFrQmFrFrzCqnqngActMtqnqnqnqnqnqnTvqntXqnqnqnqnqnqnqnqnqnqnladjDuDuDuoFmvgIgIgIgIgIgIgIgIgICMCMBBxHCMxHBBCMCMgIgIgIgIgIgIgIgIgIPddjDuDuDuoFPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrBHFgciaRFrFrFrzCUZUZUZFrFrCMaEFrzCqnYGqnREqnqnZbqnqnqnlRfHEjjxqnqnqnqnqnqnqnqnqnqnlaaWZEQqIJGhDuhjRRvlvlvlvlErLDVMhchctBWMXqkhCbhchcVMRRErvlvlvlvlLDGhDuhjZEQqIJaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrBHGLrKaRFrFrFrWQCMCMCMaEFrbJhuFrzCqnTvTvVsqnTvTvTvTvhuFrUrFrzCqnqnqnqnqnqnqnqnqnqnlaaWCexIWpVMVMVMVMVMVMVMVMVMVMVMVMVMVMaJxzaWVMVMVMVMVMVMVMVMVMVMVMVMVMVMCeQeWpaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrREREFrhIhIhIhINTNTbJhuFrUcFrLTqngAFgcismgAdRgsxvMjaRFrUZFrWQqnqnqntXqnqnqnqnqnqnlaaWCHJkPmiNjDvmtTJkJkJkJkJkaPVMVMVMVMGhDuhjVMVMVMVMtTeNeNeNeNeNaPiNjDvmCHJkPmaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnYGqnqnaNqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrLTCMCMBHyIESGDMMUQUcUcFrFrFrFrzCqngAGLrKMtgApARgyEgUaRFrCMFrFrzCqnqnjxqnqnqnqnqnqnlaGfvmVMiNDbZfPCPCPCPCPCPCPCPCPCwFCHVMVMVMVMVMPmnAPCPCPCPCPCPCPCPCPCOIGfvmVMiNDbPnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrWQOuagBHVdBauiqKaRhIFrFrFrFrFrzCqnqnREREqngAXadwvnWSxFFrNohIFrzCqnqnqnqnqnqnqnqnqngIVTaWVMaJZfqnqnqnqnqnqnqnqnqnqnqnPCwFVMVMVMnAPCqnqnqnqnqnqnqnqnqnqnqnOIaWVMaJqYgIqnqnqnqnZbqnqnqnqnKMqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrUcUcFrREREREREBHfHaRFrFrFrLTqnqnqnVsFUllqnUrUrUrUrrbHbNCXuaRzCqnqnqnqnqnqnqnqntXVMGhhjVMGhPnqnqnqnqnqnqnRfqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnRfqnqnqnqnqnqnlahjVMGhhjVMtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxjxqnqnqnqnqnjxqnqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrNTNTniagFrQmaEFrFxFrzCqnqnqnzkDIEWMtUZUZUZUZFrDwZIVcaRzCqnqnqnqnqntXtXtXEyCwVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqnsEVMVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMVMtXtXtXtXtXtXtXtXtXtXtXqntXqnqntXqntXqnqnqnqnqnqnhXqnqnqntXqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrUcUcUcUcFrwfhuFxFxFrzCqnqnqnqnUrUrqwCMCMCMCMFrFrREREFrzCKMqnqnqnqntXtXtXsEVMVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqntXsEVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMsEtXjxtXtXtXtXtXtXtXtXjxqnjxtXqnjxqnjxtXqnqnqnqnqnqnqnqnqnjxqnqntXqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjxFrFxFxLTqnqnaNqnqnUZUZFrnbniWcagFrFrCMCMFrzCqnqnqntXqnjxjxjxjxPCOIvmVMiNPnqnqnqnqnqnqnKuqnqnqnqnqnlaVMtXsEqnqnqnqnqnqnKuqnqnqnqnqnqnlavmVMiNZfPCjxjxhXjxjxjxjxjxjxjxjxqnqnqnjxqnqnqnZbjxqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrWQhuFrFrLTqnqnqnqnqnqnCMCMFrDpDpDpDpFrFrniagFrzCYGqnqnjxqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnmhqnqnqnqnqnqnsETgtXhXqnqnqnqnqnmhqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnaNKMqnqnqnqnqnXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXLXFXFXFXFXFXF -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnVsvTFrFrFrFrFrFrFrDpDpFrzCqntXtXqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnKMqnZbqnqntXtXtXqnKMqnqnqnqnqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnYGMrqnsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSQSsXsXsXsXsXJS -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFxLTqnqnqnqnqnqntXqnjxjxjPaEFrFrFrFrFrFrFrLTqnqntXtXqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnqnqnqnqnqnqnqnlaVMtXjxqnqnqnqnqnqnqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnZbqnqnqnqnqnqnqnqnqnqnjxtXqnqnqnqntXqnqntXxOeeKMKuqnqnqnqnqnqnKuqnqnqnqnqnqnKuozqnqnqnqnqnKu -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnjxqntXqnqnqnjPjPjPjPjPjPjPqnqnqnjxjxqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqntXtXtXtXsEVMtXqnqntXtXtXqnqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqnqnqnKMqnqnqnaNqntXqnqnqnqnjxqntXjxxOeeqnmhqnqnqnqnqnqnmhqnqnqnqnqnqnmhozqnqnqnqnqnmh -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqntXqnqnqntXqnqnqnqnqnqnlaaWQzPnhXlabVaJPnqnqnqnqnqnqnqnjxtXtXtXjxsEVMtXtXVMtXjxqnYGqnqnqnqnlaaWQzPnZblabVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqntXjxqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFruKqnqnqnqnqnqnqnqnqnqnqnqnaNqngIqnqntXqnqnjxqnqnqnjxqnqnqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqngIqnqnqnjxjxgPqnZHgdjxjxgdjxqnqngIqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnjxqnqnxOeeqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrpVVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnjxqnqnqnqnqnqnqntXqnqnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrLTlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnaNqnqnqnjxqnqnqnqnqnlaXajDvmVMiNjDWSPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaXajDvmVMiNjDWSvYqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrWQlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnTzJOaWVMaJvywuwMwMwMwMWkVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMsYwMwMwMwMwuzbaWVMaJaUzYqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnlaVMsYwMwMwMwMwMwMwMyzRwwMwMwMWkVMPnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrPUVMbwHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlahjVMGhbwHiHiHiHiHimYVMsYwMwMwMwMwMWkVMsYwMwMwMwMwMWkVMbwHiHiHiHiHimYhjVMGhPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHixpYwHiHiHimYVMPnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrPUVMyDwrwrwrwrwrwrwrwrwrwrwrwrrEVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMyDwrwrwrwrwrrEVMbwHiHiHiHiHimYVMbwHiHiHiHiHimYVMyDwrwrwrwrwrrEVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMyDwrwrwrwrwrwrwrZPblwrwrwrrEVMPnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn +FrFrFrFrFrFrlPFriJFrFrFriJFrFrFriJFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGOaWWWPnlaKNPnHaWWaJxsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiKcGoqnqnqnqnqw +FrFrFrFrFrFrlPFriJFrLTaEiJFrFrFrHshIhIFrFrFrFrFrFrzCtXtXqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGOaWFgaDgIsUgIPHciaJxsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnGoHiHiHiHiHiHiHiHiHiGoqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnGoHiHiHiHiHiHiHiHiKcGoqnqnqnhuFr +FrFrFrFrFrFrlPLTQoLrWQqntoaEFrBHXRWwkOaRFrFrFrFrFrzCjxjxqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnHDaWGLrKGqGqGqGLrKaJpjqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiHiUZqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnUZHiHiHiHiHiHiHiHiKcUZqnqnhuFrFr +FrFrFrFrFrFrlPzCmhFrFrWQFVhuFrBHSKLMHQaRFrFrFrFrLTqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnubaWiNjDjDjDjDjDvmaJnDqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKjKCMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnCMjKjKjKjKjKjKjKjKicCMqndsFrFrFr +FrFrFrFrFrFrlPWQhuFrFrFrFrFrFrBHHMAuvWaRFrLyaEFrzCqnqntXtXqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnqnFfqnqnqnqnqnqnZbqnqnqnqnpXGfDbaAdGVMaAdGGfDbovqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrwrVsqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnVswrwrwrwrwrwrwrwrGEVsqndsFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrLTUrUrUraEBHpmtfFrzCqnqnjxsoqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnaNqngIgIgIgIgIqnqnqnqnqnqnqnqnqnjxREREWKiSREiSWKREREjxqnqnhXqnqnqnqnqnqngIgIgIgIgIqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqwqwqwqnqnqnqnqnozSiqwhuFrFrFr +FrFrFrFrFrFrlPFrFrhIhIFrFrFrFrzCGoGoGohuFrQmFrFrzCqnqngActMtqnqnqnqnqnqnTvqntXqnqnqnqnqnqnqnqnqnqnladjDuDuDuoFmvgIgIgIgIgIgIgIgIgICMCMBBxHCMxHBBCMCMgIgIgIgIgIgIgIgIgIPddjDuDuDuoFPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqwiiFrFrFrFrFrFr +FrFrFrFrFrFrlPFrBHFgciaRFrFrFrzCUZUZUZFrFrCMaEFrzCqnYGqnREqnqnZbqnqnqnlRfHEjjxqnqnqnqnqnqnqnqnqnqnlaaWZEQqIJGhDuhjRRvlvlvlvlErLDVMhchctBWMXqkhCbhchcVMRRErvlvlvlvlLDGhDuhjZEQqIJaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrFrFrPeqwhuFrlPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrBHGLrKaRFrFrFrWQCMCMCMaEFrbJhuFrzCqnTvTvVsqnTvTvTvTvhuFrUrFrzCqnqnqnqnqnqnqnqnqnqnlaaWCexIWpVMVMVMVMVMVMVMVMVMVMVMVMVMVMaJxzaWVMVMVMVMVMVMVMVMVMVMVMVMVMVMCeQeWpaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqndsFrLTaEFrFrBHLgaRFrFrkmhIhIFrFrFrFr +FrFrFrFrFrFrlPFrFrREREFrhIhIhIhINTNTbJhuFrUcFrLTqngAFgcismgAdRgsxvMjaRFrUZFrWQqnqnqntXqnqnqnqnqnqnlaaWCHJkPmiNjDvmtTJkJkJkJkJkaPVMVMVMVMGhDuhjVMVMVMVMtTeNeNeNeNeNaPiNjDvmCHJkPmaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnYGqnqnaNqnqnqnjxqnqnqndsFrWQqnjPaELTQmhIhIBHmsrBXuaRFrFrFr +FrFrFrFrFrFrlPFrLTCMCMBHyIESGDMMUQUcUcFrFrFrFrzCqngAGLrKMtgApARgyEgUaRFrCMFrFrzCqnqnjxhXqnqnqnqnqnlaGfvmVMiNDbZfPCTzgdgdgdgdgdzYPCwFCHVMVMVMVMVMPmnAPCTzgdgdgdgdgdzYPCOIGfvmVMiNDbPnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrWQqndsWQgwDqzRGPNhaMVcaRFrFrFr +FrFrFrFrFrFrlPFrWQOuagBHVdBauiqKaRhIFrFrFrFrFrzCqnqnREREqngAXadwvnWSxFFrNohIFrzCqnqnqnqnqnqnqnqnqngIVTaWVMaJztqnqnqnqnqnqnqnqnqnqnqnPCwFVMVMVMnAPCqnqnqnqnqnqnqnqnqnqnqnSJaWVMaJqYgIqnqnqnqnZbqnqnqnqnKMqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqntXqnqnqnqnqnqnaEFrFrWQqnaEUcQmQmFrwBUrUrFrFrFrFr +FrFrFrFrFrFrlPFrFrUcUcFrREREREREBHfHaRFrFrFrLTqnqnqnVsFUllqnUrUrUrUrrbHbNCXuaRzCqnqnqnqnqnqnqnqntXVMGhhjVMGhPnqnqnqnqnqnqnRfqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnRfqnqnqnqnqnqnlahjVMGhhjVMtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxjxqnqnqnqnqnjxqnqnKMqnqnqnqnaEFrFrWQhuFrCMCMFreCGoGoFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrNTNTniagFrQmaEFrFxFrzCqnqnqnzkDIEWMtUZUZUZUZFrDwZIVcaRzCqnqnqnqnqntXtXtXEyCwVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqnsEVMVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMVMtXtXtXtXtXtXtXtXtXtXtXqntXqnqntXqntXqnqnqnqnqnqnhXqnqnqntXqnqnqnqnTvYbFrFrFrLTVstSFriFUZUZFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrUcUcUcUcFrwfhuFxFxFrzCqnqnqnqnUrUrqwCMCMCMCMFrFrREREFrzCKMqnqnqnqntXtXtXsEVMVMVMVMVMPnqnqnqnqnqnqnzNqnqnqnqnqnqntXsEVMPnqnqnqnqnqnzNqnqnqnqnqnqnlaVMVMVMVMVMsEtXjxtXtXtXtXtXtXsHtXjxqnjxtXqnjxqnjxtXqnqnqnqnqnqnqnqnqnjxqnqntXgAzdLgWOFrFrWQaOZXFrujCMCMFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjxFrFxFxLTqnqnaNqnqnUZUZFrnbniWcagFrFrCMCMFrzCqnqnqntXqnjxjxjxjxPCOIvmVMiNPnqnqnqnqnqnqnKuqnqnqnqnqnlaVMtXsEqnqnqnqnqnqnKuqnqnqnqnqnqnlavmVMiNZfPCjxjxhXjxjxjxjxjxjxjxjxqnqnqnjxqnqnqnZbjxqnqnqnqnqnqnqnqnqnqnqnqnjxqnQmQmqnjPaEFrFrFrFrMRVstSFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrWQhuFrFrLTqnqnqnqnqnqnCMCMFrDpDpDpDpFrFrniagFrzCYGqnqnjxqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnmhqnqnqnqnqnqnsETgtXhXqnqnqnqnqnmhqnqnqnqnqngIPHaWVMaJmvgIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnaNKMqnqnqnqnqnXFXFXFXFXFXFXFjFjFXFXFRlTHOHIRWjWmtzqaTHTHTHTH +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnVsvTFrFrFrFrFrFrFrDpDpFrzCqntXtXqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnKMqnZbqnqntXtXtXqnKMqnqnqnqnqnqnqnqnqnladRDuhjVMGhDumNPnqnqnqnqnqnqnqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnYGMrqnsXJSsXsXsXsXsXtVrcsXsXiyBAycsXRWvpBABABABABACz +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFxLTqnqnqnqnqnqntXqnjxjxjPaEFrFrFrFrFrFrFrLTqnqntXtXqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnqnqnqnqnqnqnqnlajaVMjxqnqnqnqnqnqnqnqnqnqnqnlaaWtTeNeNeNaPaJPnqnqnqnZbqnqnqnqnqnqnqnqnqnqnjxtXqnqnqnqntXqnqntXxOeeKMKuqnqnqnqnqnjxVnqndsFrFrzCqnKuPAFrFrFrFrFrvM +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnjxqntXqnqnqnjPjPjPjPjPjPjPqnqnqnjxjxqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqntXtXtXtXsEVMtXqnqntXtXtXqnqnqnqnqnqnlaaWQzxogdgSbVaJPnqnqnqnqnqnqnqnqnqnKMqnqnqnaNqntXqnqnqnqnjxqntXjxxOeeqnmhqnqnqnqnqnqnmhqndsFrFrWQqnmhiiFrFrFrFrFrYE +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqntXqnqnqntXqnqnqnqnqnqnlaaWQzPnhXlabVaJPnqnqnqnqnqnqnqnjxtXtXtXjxsEVMtXtXVMtXjxqnYGqnqnqnqnlaaWQzPnZblabVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqntXjxqnxOeeqnqnqnqnqnqnqnqnqnqndsFrFrFrWQhulPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFruKqnqnqnqnqnqnqnqnqnqnqnqnaNqngIqnqntXqnqnjxqnqnqnjxqnqnqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqngIqnqnqnjxjxgPqnZHgdjxjxgdjxqnqngIqnqnqnqnlaaWQzmvgIPHbVaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnjxqnqnxOeeqnqnqnqngIqnqnqnqnqnqnaEFrFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrpVVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnjxqnqnqnqnqnqnqntXqnqnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaaWRRvlvlvlLDaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrLTlaVMPnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnaNqnqnqnjxqnqnqnqnqnlaXajDvmVMiNjDWSPnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMPnqnqnqnlaXajDvmVMiNjDWSvYqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMPnqnqnqnqnqnqnqnxOeeqnqnqnlaVMPnqnqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrWQlaVMsYwMwMwMwMwMwMwMwMwMwMwMwMWkVMPnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnTzJOaWVMaJvywuwMwMwMwMWkVMPnqnqnqnqnqnlaVMPnqnqnqnqnqnlaVMsYwMwMwMwMwuzbaWVMaJaUzYqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnlaVMsYwMwMwMwMwMwMwMyzRwwMwMwMWkVMPnqnqnqnqnqnqnqnjPjPaElPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrPUVMbwHiHiHiHiHiHiHiHiHiHiHiHimYVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlahjVMGhbwHiHiHiHiHimYVMsYwMwMwMwMwMWkVMsYwMwMwMwMwMWkVMbwHiHiHiHiHimYhjVMGhPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMbwHiHiHiHiHiHiHixpYwHiHiHimYVMPnqnqnqnqnqnqnqnqnqndslPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrPUVMyDwrwrwrwrwrwrwrwrwrwrwrwrrEVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMyDwrwrwrwrwrrEVMbwHiHiHiHiHimYVMbwHiHiHiHiHimYVMyDwrwrwrwrwrrEVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMyDwrwrwrwrwrwrwrZPblwrwrwrrEVMPnqnqnqnqnqnqnqnqnqnqnVgjPjPjPjPjPjP FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrvIVMMtqnqnqnqnqnqnqnqnqnqnqnqngAVMsYwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMdGVMaAqnqnqnqnqnqngAVMyDwrwrwrwrwrrEVMyDwrwrwrwrwrrEVMMtqnqnqnqnqnqndGVMaAwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMWkVMMtqnqnqnqnqnqnqnxOeeqnqnqngAVMsYwMwMwMwMwMwMwMwMwMwMGawMwMwMwMwMwM FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrBqREqnqnqnqnqnqnqnqnqnqnqnqnqnqnREHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiuWQmuWqnqnqnqnqnqnqnQmqnqnqnqnqnqnqnQmqnqnqnqnqnqnqnQmqnqnqnqnZbqnqnuWQmuWHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiREqnqnqnqnqnqnqnqnxOeeqnqnqnqnREHiHiHiHiHiHiHiHiHiHiHiPNHiHiHiHiHiHi FrFrFrFrFrFrlPFrFrFrFrFxFxFrFrAhCMqnqwqwqnqnqnqnqnqnqnqnqnqnqnCMwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrZFuWCMuWPnqnhXqnqnqnqnCMqnqnqnqnZbqnqnCMqnqnqnqnqnqnqnCMqnqnqnqnqnqnlauWCMuWTdwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrCMqnqnqnqnqnqnqnqnxOeeqnqnqnqnCMwrwrwrwrwrwrwrwrwrwrwrGEwrwrwrwrwrwr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrzCVshuFrFrWQqwqnqnqnqnqnqnqnqnqnVsqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMXqVMPnqnqnqnqnqnqnVsqnqnqnqnqnqnqnVsqnqnqnqnhXqnqnVsqnqnqnqnqnqnlaVMXqVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnVsqnqnqnqnqnqnqnqnxOeeqnqnqnqnVsqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn FrFrFrFrFrFrlPFrFrFrFrFrFrFrLTqnAXFrFrFrFrFrWQqwqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMlNVMPnqnqnqnqnqnqnjxqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnjxqnqnqnqnqnqnlaVMlNVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjxqnqnqnqnqnqnqnqnxOeeqnqnqnqnjxqnqnqnqnqnqnqnqnqnqnqnzUqnqnqnqnqwhu FrFrFrFrFrFrlPFrFrFrFrFrFrLTqndsFrFrLTaEFrFrFrFrWQqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMLsVMPnqnZbqnqnqnqnqnqnqnqnqnqnqngIgIgIhXqnqnqnqnqnqnqnqnqnqnqnqnlaVMfjVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhulPWQqnqnhuFrFr -FrFrFrFrFrFrlPFrFrFrFrFrFrzCqndsFrFrWQqwjPaEFrFrFrzCqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnPdtTBLaPieqnqnqnqnqnaNqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnhXqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrlPFrWQhuFrFrFr -FrFrFrFrFrFrgvFrFrFrFrFrLTqnqndsFrFrFrFrWQhuFrFrFrzCqnqnqnqnqnqntXjxtXqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnYGPdtTPmxaCHaPieqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrFrLTqnqnqnqnaEFrFrFrFrFrFrFrLTqnqnKMqnqnqnqwaOqwaOqwqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnhXqnqnlaVMWpwPqnQtCeVMPnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnaEFrFrFrLTjPjPqnqnqnqnqnqnhuFrFxFrFrFrWQqnqnqnqnqnhXqnqnqnqnqnqnqnlaVMVMtTPnqnYGqnqnqnqnqnqnqnqnlaVMWpPnqnlaCeVMPnqnZbqnqnqnqnqnqnqnqnlaaPVMVMPnqnaNqnqnqnqnqnqnqnhXqnqnqnqnqwqwqwqnqnqnqnqnaNqnqnqnxOeeqnhXqnqnqnqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnjPjPjPqnqnqnqnYGqnqnqnhuFrFxFxFrFrFrFrWQqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMWpieqnqnqnqnqnqnqnqnqnqnlaVMWpPnyvlaCeVMPnqnqnqnqnqnqnqnqnqnqnPdCeVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnlaaPVMRRIJiegIgIgIgIgIgIgIgIEtPdjaWpmvqnPHCecGiegIgIgIgIgIgIgIAKgIPdZELDVMtTPnqnqnqnqnqnqnqnqnqwqwqwqwhuFrFrFrFrFrWQqwqwqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnlabVVMVMRRvlLDVMVMiNjDvmVMVMVMVMVMRRIJfjZELDVMVMVMVMVMiNjDvmVMVMRRvlLDVMVMWpPnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnxOeeqnqnqnqnqntXjxqnhXqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrFrzCqnqnqnqnqnqnqnqnaNqnqnqwqwqnqnqwqwqnaEFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnlaWXaPVMVMVMVMVMVMaJfHaWVMVMVMVMVMVMRRQqLDVMVMVMVMVMVMaJfHaWVMVMVMVMVMVMVMdKPnqnqnqnqnhXqnqnhuFrFrFrFrFrFrLTaEFrFrFrFrFrWQqnqnqnqnxOeeqnZbqnqnqntXqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrLTqnqnqnqnqnqnqnqnqnqwqwhuFrFrWQhuFrFrWQqnjPaEFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnqnqnqnwFNxeNaPVMVMVMVMGhDuhjVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMGhDuhjVMVMVMVMtTJkdKZfqnqnqnqnqnqnqndsFrFrFrFrLTjPjPqnqnaEFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqnjxqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqnqnhuFrFrFrFrFrFrFrFrFrFrWQqnqnjPjPjPqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnPCPCPCPCPCPCPCPCPCPCPCPCPCPCPCwFVMVMVMnAPCPCPCPCPCPCPCPCPCPCPCPCPCPCPCqnqnqnqnqnqnqnqnhuFrFrFrFrWQqnqnYGqndsFrFrFrFrFrzCYGqnqnxOeeqnqnqnqnqntXtXqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPHVMVMVMmvqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrWQaNqnqndsFrFrFrFrFrzCqnqnqnxOeeqnqnaNqnqntXtXqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnPHVMVMVMVMVMmvqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnZbqnqnqndsFrFrFrFrFrFrFrmMqwqwhuFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXjxqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnaNqnqnqnjxjxqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMMhEmCwVMVMPnqnqnqnqnqnqnqnqnqwqwqwqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr -FrFrFrFrFrFrgvFrLTqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqwqwqwqnqnqwqwqnqnqngIlaFgxozYgITzgSciPngIaNqnqnqnqnqndsFrFrFrWQqnqnqnqnqnqnqnZbqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrzCqndsFrFrWQqwjPaEFrFrFrzCqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnqnqnqnFfqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnPdTbBLtlieqnqnqnqnqnaNqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnhXqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrlPFrWQhuFrFrFr +FrFrFrFrFrFrgvFrFrFrFrFrLTqnqndsFrFrFrFrWQhuFrFrFrzCqnqnqnqnqnqntXjxtXqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnYGPdTbVcxaoWtlieqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrFrFrFrLTqnqnqnqnaEFrFrFrFrFrFrFrLTqnqnKMqnqnqnqwaOqwaOqwqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnhXqnqnlaqyDOwPqnQtofhpPnqnqnqnqnqnqnqnqnqnqnlaVMVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnKMqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnaEFrFrFrLTjPjPqnqnqnqnqnqnhuFrFxFrFrFrWQqnqnqnqnqnhXqnqnqnqnqnqnqnlaVMVMtTPnqnYGqnqnqnqnqnqnqnqnlaaWWpPnqnlaCeaJPnqnZbqnqnqnqnqnqnqnqnlaaPVMVMPnqnaNqnqnqnqnqnqnqnhXqnqnqnqnqwqwqwqnqnqnqnqnaNqnqnqnxOeeqnhXqnqnqnqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnjPjPjPqnqnqnqnYGqnqnqnhuFrFxFxFrFrFrFrWQqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMWpieqnqnqnqnqnqnqnqnqnqnlaaWWpPnyvlaCeaJPnqnqnqnqnqnqnqnqnqnqnPdCeVMVMPnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrWQqnqnqnqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqnlaaPVMRRfqiegIgIgIgIgIgIgIgIEtPdyFWpmvqnPHCecGiegIgIgIgIgIgIgIAKgIPdlqLDVMtTPnqnWVqnqnqnqnqnqnqwqwqwqwhuFrFrFrFrFrWQqwqwqnqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqngIqnlabVVMVMRRvlLDVMVMVpdyYmVMVMVMGhhjRRIJfjZELDGhhjVMVMVMVpdyYmVMVMRRvlLDVMVMWpPnqngIqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnxOeeqnqnqnqnqntXjxqnhXqnqndsFrFrFrFrlPFrFrLTaEFrFr +FrFrFrFrFrFrgvFrFrFrzCqnqnqnqnqnqnqnqnaNqnqnqwqwqnqnqwqwqnaEFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnlaDMPnlaWXaPVMVMVMVMVMVMWWfHXmVMVMVMVMVMVMRRQqLDVMVMVMVMVMVMWWfHXmVMVMVMVMVMVMVMdKPnlaDMPnqnhXqnqnhuFrFrFrFrFrFrLTaEFrFrFrFrFrWQqnqnqnqnxOeeqnZbqnqnqntXqnqnqnqnqndsFrFrFrFrlPFrLTqndsFrFr +FrFrFrFrFrFrgvFrFrLTqnqnqnqnqnqnqnqnqnqwqwhuFrFrWQhuFrFrWQqnjPaEFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnirqnqnQtNxeNaPVMVMVMVMJiGqDoVMVMVMVMVMVMVMVMVMVMVMVMVMVMVMJiGqDoVMVMVMVMtTJkdKztqnqnirqnqnqnqndsFrFrFrFrLTjPjPqnqnaEFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqnjxqnqnqnqnqndsFrFrLTaElPFrzCqnhuFrFr +FrFrFrFrFrFrgvFrFrzCqnqnqnhXqnqnqnqnhuFrFrFrFrFrFrFrFrFrFrWQqnqnjPjPjPqnqnqnqnqnqnqnqntXqnqnqnqnqnqnqnqnPCPCPCPCPCTzgdgdgdgdgdzYPCPCPCwFVMVMVMnAPCPCPCTzgdgdgdgdgdzYPCPCPCPCPCqnqnqnqnqnqnqnqnhuFrFrFrFrWQqnqnYGqndsFrFrFrFrFrzCYGqnqnxOeeqnqnqnqnqntXtXqnqnqnqndsFrFrWQdslPLTqndsFrFrFr +FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXjxqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPHVMVMVMmvqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrWQaNqnqndsFrFrFrFrFrzCqnqnqnxOeeqnqnaNqnqntXtXqnqnqnqndsFrFrFrzCVgqnqndsFrFrFr +FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnqnqnqnqntXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnPHVMVMVMVMVMmvqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnZbqnqnqndsFrFrFrFrFrFrFrmMqwqwhuFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXjxqnqnqnqndsFrFrFrWQzUqwqwhuFrFrFr +FrFrFrFrFrFrgvFrFrzCqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnqnqnqnaNqnqnqnjxjxFfKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaVMVMMhEmCwVMVMPnqnqnqnqnqnqnqnqnqwqwqwqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqnaEFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrgvFrLTqnqnqnqnqnZbqnqnqnaEFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqwqwqwqnqnqwqwqnqnqngIlaFgxozYgITzgSciPngIaNqnqnqnqnqndsFrFrFrWQqnqnqnqnqnqnqnZbqnqnaEFrFrFrFrFrFrFrFrFrFrFrFrFrLTqnqnqnqnxOeeqnqnqnqnqntXtXqnqnqnqnqndsFrFrFrlPFrFrFrFrFrFr FrFrFrFrFrFrgvFrzCqnqnqnqnqnqnqnqnqnqnjPaEFrFrFrFrFrFrLTjPqnqntXqnqnqntXtXqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnhuFrFrFrWQhuFrFrWQqnlaDMPndWqnlafHPnqndWlaDMPnqnqnqnqnqwhuFrFrFrFrzCqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnZbqnqnxOeeqnqnqnqnqnjxtXqnqnZbqnqnqnaEFrFrlPFrFrFrFrFrFr -FrFxFrFrFrFrlPLTqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrLTqnqnqntXjxtXtXtXtXtXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnirlaGLmvgIirgIPHrKPnirqnqnqnighuFrFrFrFrFrFrzCYGqnqnqnqnqnqnqnqnqnjPjPjPaEFrFrFrFrFrFrLTjPjPqnqnqnqnqnxOeeqnqnqnqnqnqnjxqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr -FrFxFrFrFxFrkoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrFrLTqnqnqnqnjxqnjxjxjxjxjxjxqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrzCqnqnlaGfvmCwfjKDiNDbPnqnqnqndsFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjPaEFrFrLTjPqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrlPFrFrFrFrFrFr +FrFxFrFrFrFrlPLTqnqnqnqnYGqnqnqnqnqnqnqnqnaEFrFrFrFrLTqnqnqntXjxtXtXtXtXtXtXqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrFrFrFrFrFrzCqnirlaGLmvgIirgIPHrKPnirqnqnqnighuFrFrFrFrFrFrzCYGqnqnqnqnqnqnqnqnqnjPjPjPaEFrFrFrFrFrFrLTjPjPqnqnqnqnqnxOeeqnqnqnqnqnqnjxqnqnqnqnqnqndsFrFrlPFrFrFrFrFrFr +FrFxFrFrFxFrkoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrFrLTqnqnqnqnjxqnjxjxjxjxjxjxqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnaEFrFrFrFrFrFrFrFrzCqnqnlaGfvmCwfjKDiNDbPnqnqnWVdsFrFrFrFrFrFrLTjPqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjPaEFrFrLTjPqnqnqnqnqnqnqnqnxOeeqnqnqnqnqnqnqnqnqnqnqnqnqnqnaEFrlPFrFrFrFrFrFr WjPPWjWjWjOHXLXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFeXeXXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFeXIRWjWjWjOHeXeXXFXFXFXFIcLEizANSkqkqEXFXFXFXFoBWjWjWjWjWjWjSFXFXFXFXFXFXFXFXFXFXFEwXFXFXFXFXFXFXFeXeXXFXFXFXFXFXFXFXFXFXFqnKMqnhXqnqnqnqnYGqnqnqnqnaNqnqndsFrlPFrFrFrFrFrFr nXIZnXcjnXycQSsXJSsXsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXFFFFZBsXsXsXsXsXsXJSsXGGEvsIlhzEsXJSsXsXsXsXQsnXnXudFFFFsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXsXsXsXsXsXJSsXdgqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaElPFrFrFrFrFrFr FriJFrFrLTqnozqnzNqnqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnPHaWVMaJmvqnzNqnqnqnqnzNjPjPqnqnqnZbzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnzNqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndslPFrFrFrFrFrFr @@ -712,23 +765,23 @@ HiHiHiHiHiHiPNHiUZGoGoGoUZHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHi HiHiHiHiHiHiPNHiCMUZUZUZCMHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiCMCMCMCMCMHiHiHiHiHiHiHiHiBBBBBBGoBBBBBBHiHiHiHiHiHiHiHiCMCMCMCMCMHiHiHiHiHiHiHiHiHiHiHiHimWmWmWHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiCMUZUZUZCMHiPNHiHiHiHiHiHi mWmWmWuojKjKdkjMhcCMCMCMhcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLchchchchchcLcLcLcLcLcLcLcLcFBhcXMUZlHhcSLLcLcjMjMjMjMLcLchchchchchcLcLcLcLcLcLcLcLcLcLcLcLcmWmWmWLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcLcjMhcCMCMCMhcLcKTjKjKYCmWmWmW fufufuwrwrwrGEUsVMhchchcVMZaSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMPCPCPCPCPCSMSMSMSMSMSMSMADARVMAyCMgyVMeJZaSMSMSMSMSMSMSMPCPCPCPCPCSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMSMUsVMhchchcVMZaGEwrwrwrSMSMSM -WQqnqnqnqnqnozqnPCPCPCPCPCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyFQgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPCPCPCPCPCqnozqnqnqnqnqnqn -FrzCqnqnqnqnozqngIgIqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyNzgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqngIgIqnqnozqnqnqnqnqnqn -FrWQqnqnqnqnozlaFgciPnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyLsgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnYGqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnZbqnlaFgciPnqnozqnqnqnqnqnqn -FrFrWQqnqnqnozlaGLrKPnqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqngIEtgIqnqnqnqnqnqnqnqnqnqngIgIgIgIqnqnqnqnqnqnqnqnlaARVMMgAebqVMeJPnqnqnqnqnqnqnqnqngIgIgIgIYGqnqnqnqnqnqnqnqnqngIgIgIqnirqnqnqnaNqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnlaGLrKPnqnozqnqnqnqnqnqn -FrFrFrWQqnqnozqnTzzYgIgIqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnaNqnqnKMqnqnqnqngIPdcUvlnQiegIqnqnqnqnqnqnqnlaFgqyDuhpieqnqnqnqnqnqnqnPHVdApcfdTApdThwmvqnqnqnqnqnqnqnPHqyDuhpciPnqnqnqnqnqnqnqngIPHcUvlnQmvgIqnKMqnqnqnqnqnqnKMqnqnqnYGqnqnKMqnqnqnqnqnqnqnqnqnqngIgITzzYqnqnozqnqnqnqnqnqn -FrFrFrFrzCqnozqnqnPdvlvlieqnqnqnqnqnqntXqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnlaqyDuDuDuDuDuhpPnqnqnqnqnqnqnqnQtaWVMGhhpPnqnqngIqnqnlaZEVMiNDbIkGfvmVMIJPnqnqngIqnqnlaqyhjVMaJwPqnqnqnqnqnqntXlaqyDuDuDuDuDuhpPnqnZbqnqnhXqnqnqntXtXtXqnqnqnqnqnZbqnqnhXqnqnaNqnPHqyhpmvqnqnqnozqnqnqnqnqnqn -FrFrFrFrzCqnozqnlaVMQzwLgzPnqnqnqnqnqntXtXqnqnqntXqnjxqnqnqnqnqntXqnqnqnqnlaDyCwVMVMVMCwQpPntXqnqnqnqnqnqnHaorCwCweaPnqnlafHPnqnlaYvCwaJwPqnQtaWCwTRPnqnlafHPnqnlayWCwCwajPnqnqnqnqnqnZbjxlahdCwVMVMVMCwboPnqntXqntXqnqnqnqnjxtXjxaNqnqntXqnqntXqnqnqnqnqnlaPkPpSNDzPnqnqnozqnqnqnqnqnqn -FrFrFrLTqnqnozqnqnrjeNeNFwqnqnqnqnqnqnjxjxqnqnqntXqnYGqnqnqnqnqnjxqntXqnqnlaGfjDjDjDjDjDDbPnjxqnqnqnqnqnqnPHaWVMiNDbPnqnqnirqnqnlaZQvmaJmvqnPHaWiNoVPnqnqnirqnqnlaGfvmVMaJmvqnqnqnqnqnqnqnlaGfjDjDjDjDjDDbPnqntXtXjxqnqntXqnhXjxqntXqntXjxtXqnjxqnqnqnqnqnqncHGfDbCnqnqnqnozqnqnqnqnqnqn -FrFrLTqnqnqnozqngIgIIFPCqnqnKMqnqnqnqnqnqnZbqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnTzuveAJkduMuzYqnqnqnKMqnqnqnlaGLGfjDDbnAqnqnqnqnqnqnqnSJaWGhoFfjdjhjaJztqnqnqnqnqnqnqnOIGfjDDbrKPnKMqnqnqnqnqnqnTzJOeAJkduaUzYqnqngPjxqnqnqnjxqnqnqnqnjxqnjxqnjxqnqnqnKMqnqnqnhXqnPCPCgIgIgIqnozqnqnqnqnqnqn -FrFrWQqnqnqnozlaVpdyYmPnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIZbqnqnqnqnqngIqnPCPCPCqnqnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnlaaWVMGhDuhjVMaJPnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnqnZbPCPCPCqngIqnqnqnqnqnqngIqnqnqnqnZbqngIqnqnqnqnqnqngIqnqnqnqnqnqnlatTJkaPPnozqnqnqnqnqnqn -FrFrFrzCqnqnozlaWWXKXmPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWtTJkVMJkaPaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnlaWpDMCePnozqnqnqnqnqnqn -FrFrFrzCqnqnozlaJiGqDoPnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpoKQqoKCeaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnirqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnYGqnqnqnirqnqnqnqnqnqnlaRRQqLDPnozqnqnqnqnqnqn -FrFrLTqnqnqnozqnTzgdzYqnqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpmvirPHCeaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnTDqnqnqnqnqnqnKMqnaNqnqnqnqnKMqnqnqnqnqnqnqnqnqnhXqnqnTzgdzYqnozqnqnqnqnqnqn -FrFrzCqnqnqnozqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWVMpbDFEWVMaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrFrzCqnqnqnozqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdaWWpztgISJCeaJieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -FrLTqnqnqnqnozqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdMghjWpeyeNeyCeGhItieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn -LTqnqnqnqnqnozqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlabVVMVMRRQqVMQqLDVMVMWpPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnozqnqnqnqnqnqn +qwqwqnqnqwqwozqnPCPCPCPCPCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyFQgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPCPCPCPCPCqnozqwqwqwqwqwqw +FrFrWQhuFrFrihqngIgIqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnFflaARVMAyNzgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqnqngIgIqnqwiiFrFrFrFrFrFr +FrFrFrFrFrFrlPPUFgciPnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaARVMAyLsgyVMeJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnYGqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnZbqnlaFgciNUFrlPFrFrLTaEFrFr +FrFrFrFrFrFrlPPUGLrKPnqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqngIEtgIqnqnqnqnqnqnqnqnqnqngIgIgIgIqnqnqnqnqnqnqnqnlaARVMMgAebqVMeJPnqnqnqnqnqnqnqnqngIgIgIgIYGqnqnqnqnqnqnqnqnqngIgIgIqnirqnqnqnaNqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnlaGLrKYLFrlPLTjPqndsFrFr +FrFrFrFrFrFrlPWQTzzYgIgIqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnaNqnqnKMqnqnqnqngIPdcUvlnQiegIqnqnqnqnqnqnqnlaFgqyDuhpieqnqnqnqnqnqnqnPHVdApcfdTApdThwmvqnqnqnqnqnqnqnPHqyDuhpciPnqnqnqnqnqnqnqngIPHcUvlnQmvgIqnKMqnqnqnqnqnqnKMqnqnqnYGqnqnKMqnqnqnqnqnqnqnqnqnqngIgITzYyFrFrlPzCqnqnhuFrFr +FrFrFrLTaEFrlPFrzCPdvlvlieqnqnqnqnqnqntXqnqnqnqnqnqntXqnqnqnqnqnqnqnqnqnqnlaqyDuDuDuDuDuhpPnqnqnqnqnqnqnqnQtaWVMGhhpPnqnqngIFfqnlaZEVMiNDbIkGfvmVMIJPnqnqngIqnqnlaqyhjVMaJwPqnqnqnqnqnqntXlaqyDuDuDuDuDuhpPnqnZbqnqnhXqnqnqntXtXtXqnqnqnqnqnZbqnqnhXqnqnaNqnPHqyhpmvdsFrFrkoqnqndsFrFrFr +FrFrFrzCqnaElPFrPUVMQzwLgzPnqnqnqnqnqntXtXqnqnqntXqnjxqnqnqnqnqntXqnqnqnqnlaDyCwVMVMVMCwQpPntXqnqnqnqnqnqnHaorCwCweaPnqnlafHPnqnlaYvCwaJwPqnQtaWCwTRPnqnlafHPnqnlayWCwCwajPnqnqnqnqnqnZbjxlahdCwVMVMVMCwboPnqntXqntXqnqnqnqnjxtXjxaNqnqntXqnqntXqnqnqnqnqnlaPkPpSNDzNUFrFrihqnqndsFrFrFr +FrFrFrzCqnhulPFrzCrjeNeNFwqnqnqnqnqnqnjxjxqnqnqntXqnYGqnqnqnqnqnjxqntXqnqnlaGfjDjDjDjDjDDbPnjxqnqnqnqnqnqnPHaWVMiNDbPnqnqnirqnqnlaZQvmaJmvqnPHaWiNoVPnqnqnirqnqnlaGfvmVMaJmvqnqnqnqnqnqnqnlaGfjDjDjDjDjDDbPnqntXtXjxqnqntXqnhXjxqntXqntXjxtXqnjxqnqnqnqnqnqncHGfDbCnqnaEFrlPWQqnqnaEFrFr +FrFrFrWQhuFrlPLTgIgIIFPCqnqnKMqnqnqnqnqnqnZbqnqnjxqnqnqnqnqnqnqnqnqnjxqnqnqnTzuveAJkduMuzYqnqnqnKMqnqnqnlaGLGfjDDbnAqnqnqnqnqnqnqnSJaWGhoFfjdjhjaJztqnqnqnqnqnqnqnOIGfjDDbrKPnKMqnqnqnqnqnqnTzJOeAJkduaUzYqnqngPjxqnqnqnjxqnqnqnqnjxqnjxqnjxqnqnqnKMqnqnqnhXqnPCPCgIgIgIaEruFrzCqnqnaEFr +FrFrFrFrFrFrlPPUVpdyYmPnqnqnqnqnqngIqnqnqnqnqnqngIqnqnqnqnqnqngIZbqnqnqnqnqngIqnPCPCPCqnqnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnlaaWVMGhDuhjVMaJPnqnqnqnqnqnqnqnqnTzgdgdzYqnqnqnqnqnqnqnqnqnZbPCPCPCqngIWVqnqnqnqnqngIqnqnqnqnZbqngIqnqnqnqnqnqngIqnqnqnqnqnqnlatTJkaPNUlPFrzCqnqnhuFr +FrFrFrFrFrFrkolaWWXKXmPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWtTJkVMJkaPaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnlaDMPnqnqnqnqnqnlaWpDMCeNUlPFrWQqwhuFrFr +FrFrFrFrFrFrihlaJiGqDoPnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnirqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpoKQqoKCeaJPnqnWVqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnirqnqnaNqnqnqnirqnqnqnqnqnqnirqnqnYGqnqnqnirqnqnqnqnqnqnlaRRQqLDYLlPFrFrFrFrFrFr +FrFrLTaEFrFrlPzCTzgdzYqnqnqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnKMqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWWpmvirPHCeaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnTDqnqnqnqnqnqnKMqnaNqnqnqnqnKMqnqnqnqnqnqnqnqnqnhXqnqnTzgdKLFrlPFrFrFrFrFrFr +FrFrWQqnaEFrlPzCqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlaaWVMpbDFEWVMaJPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnZbqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnaNqnqnqnqnqnqnqnqnhuFrFrlPFrFrFrFrFrFr +FrFrFrWQhuFrlPzCqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdaWWpztgISJCeaJieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhXqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnhuFrFrFrlPFrFrFrFrFrFr +FrFrFrFrFrFrkoqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnPdMghjWpeyeNeyCeGhItieqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqndsFrFrFrFrlPFrFrFrFrFrFr +jPjPjPjPjPjPozqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnlabVVMVMRRQqVMQqLDVMVMWpPnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnYGqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnjPjPjPjPVgjPjPjPjPjPjP wMwMwMwMwMwMGawMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwEJkGlNneNeNeNGlNnJkvKwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMwMGawMwMwMwMwMwM HiHiHiHiHiHiPNHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGoREBBBBREREREBBBBREGoHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiPNHiHiHiHiHiHi HiHiHiHiHiHiPNHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiGOVkhcTIdYdYdYhQhcafxsHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiHiPNHiHiHiHiHiHi @@ -743,23 +796,23 @@ FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTjPjPjPjPjPjPjPjPqnqnqnaEFrFrFrLTjPjP FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrLTjPjPjPjPqnqnqnqnqnqwqwqwqnqnqnqnhuFrFrFrzCqnqwqwqnqndsFrFrFrFrzCqnhuFrFrFrFrzCqnqnEpFrFrFrFrOaaWaJPnqnlaDMPnqnlaaWaJNUFrFrFrWQchqwqndsFrFrFrFrLTjPjPjPqnqnqntXtXqnqndsFrFrFrFrFrWQhuFrLTjPjPjPqwqwqngAVxVxVxVMVMMtllFTFTFTTvgAVMVMVxVxVxRVqnaEFrFrFrFr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrzCqwqwqnqnqwqwqnqnhuFrFrFrWQqnqndsFrFrFrFrgxdsFrFrWQqndsFrFrFrFrzCdsFrFrFrFrFrzCqnhuFrFrFrFrFrOaaWaJPnqnqntDqnqnlaaWaJNUFrFrFrFryqFrWQdsFrFrFrFrzCqntXqnqwcuqwaOtXqnqndsFrFrFrFrFrFrFrLTqnqnqndsFrFrzCjXVxMbREREREgAFgGqGqGqciMtREREREAAVxPRqnhuFrFrFrFr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrLTdsFrFrWQbWFrFrzChuFrFrFrFryqzCqndsFrFrFrLTlTdsFrFrFrzCdsFrLTBojPqndsFrFrFrFrLTqndsFrFrFrFrFrFrOaaWaJPnqnqnqnqnqnlaaWaJNUFrFrFrFrFrFrFrzCjPjPjPjPqntXjxhuFrHPFrFrKYqnqndsFrFrFrFrFrFrFrzCqnqnqndsFrFrXXVxVxUkCMGxCMgAWWMbNfAAWWMtCMGxCMsZVxVxmCFrFrFrFrFr -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrzCdsFrFrFrFrFrFrEKFrFrFrFrFrLTqntXqnjPaEFrWQqndsFrFrLTqnqnjPqnMDtXqndsFrFrFrFrzCqndsFrFrLTClClClPHaWaJPnqnqnqnqnqnlaaWaJmvJEJEJEaEFrFrFrzCqnqnqnqnqnjxqnFrFrEKFrFrWQtXqndsFrFrFrFrFrFrFrWQqnqnqnhuFrFrXXVxMbVspXDMovgAWWSOobLLWWMtpXDMovVsAAVxmCFrLTaEFrFr -FrFrFrFrFrLTPAFrLTaEFrFrFrFrFrzCdsFrFrFrFrFrFrEKFrFrFrFrFrzCqnjxqnqndsFrFrzCqnaEFrWQqwqwqnqnjxjxqwhuFrFrFrFrzCqnqnjPjWlaCeiNjDdqhjaJPnqnqngIqnqnlaaWGhCdjDvmQzVejPjPjPqnqntXqnqntXqnhuFrFrEKFrFrFrCLqndsFrFrFrFrFrFrFrFrWQqwhuFrFrFrXXVxDejxjxREjxgAWWsmJUzkWWMtjxREjxjxNLVxmCFrzCdsFrFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrzCdsFrFrFrFrFrFrEKFrFrFrFrFrLTqntXqnjPaEFrWQqndsFrFrLTqnqnjPqnMDtXqndsFrFrFrFrzCqndsFrFrLTClClClPHaWaJPnqnqnqnqnqnlaaWaJmvJEJEJEaEFrFrFrzCqnqnqnqnqnjxdsFrFrEKFrFrWQtXqndsFrFrFrFrFrFrFrWQqnqnqnhuFrFrXXVxMbVspXDMovgAWWSOobLLWWMtpXDMovVsAAVxmCFrLTaEFrFr +FrFrFrFrFrLTPAFrLTaEFrFrFrFrFrzCdsFrFrFrFrFrFrEKFrFrFrFrFrzCqnjxqnqndsFrFrzCqnaEFrWQqwqwqnqnjxjxqwhuFrFrFrFrzCqnqnjPjWlaCeiNjDdqhjaJPnqnqngIqnqnlaaWGhCdjDvmQzVejPjPjPqnqntXqnqntXqwhuFrFrEKFrFrFrCLqndsFrFrFrFrFrFrFrFrWQqwhuFrFrFrXXVxDejxjxREjxgAWWsmJUzkWWMtjxREjxjxNLVxmCFrzCdsFrFr FrFrFrFrFrWQozryqndsFrFrFrFrFrWQdsFrFrFrFrFrFrEKFrFrFrFrFrzCqnqntXqndsFrFrzCqndsFrFrFrFrWQqnqndsFrFrFrLTjPjPqnsrqnqnqnEqCeaJfHaWVMaJPnqnlaDMPnqnlaaWVMaJfHaWQzWPsrqnqnqnqnjxtXqnUiFrFrFruUeoFrFrFrFrzCtXaEFrFrFrFrFrFrFrFrFrFrFrFrLTgAVxVMMtqnVsqngAWWgWrHjXWWMtqnVsqngAVMVxMtjPqndsFrFx FrFrFrFrFrhzEbqbPnqnhWaEFrFrriFrEKFrFrFrLTNsNshuFrFrFrLTjPgIPdbVjxqndsFrFrWQqndsFrFrFrFrFrWQjphuFrFrFrWQqnqnqnqnqnqwqwEqCeGhDuoRvmaJPnqnqntDqnqnlaaWiNwxDuhjQzVeJqqwqwRcqntXtXqndsFrFrFrRSeoFrFrFrFrWQjxtXjPjPjPjPaEFrFrFrFrFrFrLTqnqnAGVMMtaNjxqngAGLGqGqGqrKMtqnjxqngAVMRdqnqnqwqnaEFr FrFrFrFrFrLTozOiqndsFrzCjPaEFrLTdsFrFrFrVQFrFrFrFrFrFrWQlaZEQqsEjEqnqnaEFrFrzCdsFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnqndsFrFrWQFbgCJuuvaWaJPnqnqnqnqnqnlaaWaJaUgdYaTFhuFrFrFrzCqnjxtXqndsFrFrFrUcMkFrFrFrFrFrzCtXtXtXtXqndsFrFrFrFrFrFrWQqngAVxVMMtqnqnqnqnREuWuWuWREqnqnqnqngAVMVxMtdsFrzCdsFr FrFrFrFrFrWQiiFrWQhuFrWQqwqwdaqwhuFrFrFrEKFrFrFrFrFrFrFrOatteNtXMDsrtXqnrRrRqndsFrFrFrFrFrFrFrFrFrFrFrFrWQjZqnqndsFrFrFrFrFrFrOaaWaJPnqnqnqnqnqnlaaWaJPndsFrFrFrFrFrFrWQqnqwaOqndsFrFrFrFrzCjPjPaEFrFrWQaOaOaOlWqndsFrFrFrFrFrFrFrFrXXVxMbqnqnqnqnqnVsuWuWuWVsqnqnqnqnqnAAVxMtqnjPqndsFr -FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrrbEKFrFrFrFrFrFrFrWQgCgdtXtXtXjxdsUcUczCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqndsFrFrLTaEFrFrOaaWaJPnqnqngIqnqnlaaWaJPnhuFrFrFrFrFrFrFrEKFrFrzCqnNsrRrRrRqnqnqnqnaEFrFrFrFrFrUcWQqnjPjPjPjPjPjPjPjPgAVxDeqnqnqnqnqnplhVjDRFjOqnqnqnqnqnNLVxMtqnqnqnhuFr +FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrrbEKFrFrFrFrFrFrFrWQgCgdtXtXtXjxdsUcUczCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqndsFrFrLTaEFrFrOaaWaJPnqnqngIqnqnlaaWaJPnhuFrFrFrFrFrFrFrEKFrFrzCqnNsrRrRrRqnqnqnqnaEFrFrFrFrFrUcWQqnjPjPjPjPjPjPjPjPgAVxDeqnqnqnqnqnplhVApRFjOqnqnqnqnqnNLVxMtqnqnqnhuFr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrrbWQhWaEFrFrFrFrFrFrFrqWjxjxtXqnqnaEFrzCdsFrFrFrFrFrFrFrFrFrFrFrFrFrFrzCqnqnjPjPqndsFrFrOaaWaJPnqnlaDMPnqnlaaWaJNUFrFrFrFrFrFrFrFrEKFrFrzCdsFrUcUcUczCqnRcqnqnaEFrFrFrFrFrFrzCqnqnqntXtXqnqntXgAVxVMMtKMqnqnqnlaeJfHgyPnKMqnqnqngAVMVxMtqnqnhuFrFr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrhzFrriEKFrFrFrFrFrFrFrFrWQqnjxqwqwhuFrzCdsFrFrLTaEFrFrFrFrFrFrFrFrFrFrzCqnqnqnqnjphuFrLTlaaWaJmvqnqntDqnqnPHaWaJNUFrFrFrFrFrFrFrFrEKFrFrWQdsFrFrFrFrWQqnjEqnqndsFrFrFrFrFrLTqnqnqnqnjxlWlWlWaOqnAGVMMtqnqnqnqnRGPBBFHmPnqnqnqnqngAVMRdqnqnhuFrFrFx FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrEKFrFrFrFrFrFrFrFrFrzCdsFrFrFrFrzCdsFrLTqndsFrFrFrFrFrFrFrFrFrFrWQqwtXqndsFrFrFrWQlayJaJcimvgIgIgIPHFgaWJgNUFrFrFrFrFrFrLTjPdsFrFrFrzCaEFrFrFrFryuqnqnqwhuFrFrFrFrFrzCsrqnqwqwhuUcUcUcFrXXVxVMMtqngIqnqnlaGBsaNDPnqnqngIqngAVMVxMthuFrFrFrFr FrFrFrFrFrFrlPFrFrFrFrFrFrFrFrFrFrFrFrFrLTNshuFrFrFrFrFrFrFrFrFrzCdsFrFrLTjPqnqnJztXqnqnjPjPjPjPjPJzaEFrFrFrFrFrKYtXeoFrFrFrFrOaaWGhDuDuhpfHqyDuDuhjaJPnaEFrFrFrFrFrzCqnhuFrFrFrzCqnaEFrFrFrWQlWhuFrFrFrFrFrLTjPqnRcUJFrFrFrFrFrFrLTgAVxMbqnlaDMPnqnlanWSRLzPnqnlaDMPnqnAAVxmCFrFrFrFrFr WjWjWjWjWjWjNuWjOHeXeXIRWjWjWjWjWjWjWjWjzhWjWjWjWjWjWjWjWjWjFrFrgxqnhWhWqwqwqwqwldtXqnqwqwlWchqwqwjxdsFrFrFrFrFrzCjxUiFrFrFrLTlaGfjDjDjDdwGqvnjDjDjDDbPndsFrFrFrFrFrzCdsFrFrFrFrWQqnqnaEFrFrFrUcFrFrFrFrFrFrzCqnqnqwhuFrFrFrFrFrLTqngAVxDeTvTvtDTvTvTvAWKGbKTvOxTvtDTvTvNLVxmCFrFrFrFrFr nXnXGvnXnXnXEYnXMisXsXVZnXnXnXGvnXnXnXnXzuGvnXnXnXnXnXnXGvnXEzFrmodsFrFrFrFrFrFrUcKYdsFrFrUcFrFrFrzCdsFrFrFrFrFrzCqndsFrFrFrWQqnPCPCPCPCPCPCPCPCPCPCPCqnhuFrFrFrFrFresdsFrFrFrFrFrzCqnqnjPjPjPaEFrFrFrLTjPjPqnqndsFrFrFrFrFrFrFrqnqnuAVxVxVxVxxRVxVxVxVxxRVxVxVxVxxRVxVxVxVxmCFrFrFrFrFr -FrFrcSFrFrFrlPFrFKaNdsFrLTClClxKClClaEFrEKiJFrFrFrLTClaEiJFrRnKxjEdsFrFrFrFrFrFrFrzCdsFrFrFrFrFrFrzCqnaEFrFrLTjPqnqndsFrFrFrFrzCqnqwqwqnqnWVqnqwqwqwqwhuFrFrFrFrFrFrXzdsFrFrFrFrFrWQqntXtXtXjEqnJzJzJzqnqnqnqwqwhuFrFrFrFrFrFrLTqnqwtXUrUrUrPJTvPJUrUrPJTvPJUrUrPJTvPJUrUrIeqnaEFrFrFrFr -FrLTICaEFrFrlPLTzNqnhuFrOaugVMzOVMAPbbFrzCDfFrFrFrOafHNUiJFrKZeeqnqnaEFrFrLTjPjPjPqnhuFrFrLTjPjPjPqnqnqnjPjPqnqnqnqndsFrFrLTjPqnhuFrFrWQqnqndsFrFrFrFrFrFrFrFrFrFrFrFrEKFrLTjPaEFrFrWQaOaOlWHXlWlWlWaOqwqwhuFrFrFrFrFrLTaEFrLTqnhuFrqlUZUZfTVxVxVxCjfTVxVxVxCjfTVxVxVxCjUZHUqnqnaEFrFrFr -FrzCKuhuFrFrlPWQKudsFrFrOabVVMMvVMWpPnNsqnKujPNsNschSnqnZNFrmSeeqnqnqnjPjPqnqnqnqndsFrFrLTqnqwqwqwqwqwqwqwqwqwqwqwqwhuFrFrzCqnhuFrFrFrOfzCqnqnjPjPjPjPjPjPjPJzCPFrFrFrEKFrgxqndsFrFrFrFrFrUcUcUcUcUcFrFrFrFrFrLTaEFrFrWQqnjPtXdsFrFrqlCMCMCMUrUrUrCMCMUrUrUrCMCMUrUrUrCMCMLbqnqnqnaEFrFr -FrWQlKFrFrFrlPFrwidsFrFrWQartPYHnYilhuFrWQFVhuFrFrFrFrbBlKyqLjzDqwqwlWlWlIqwjpqwqwhuFrFrWQEpFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrzChuFrFrFrFrFrWQqwqnqnqwqnqnqnqnqwaOlWrRrRrRlWrRkQqwhuFrFrFrFrFrFrFrLTjPaEFrFrFrFrLTqnqnaEFrFrWQqnjxdsFrFrKYVsVsVsGoGoGoVsVsGoGoGoVsVsGoGoGoVsVsnsqnqnqnqnaEFr +FrFrcSFrFrFrlPFrFKaNdsFrLTClClxKClClaEFrEKiJFrFrFrLTClaEiJFrRnKxjEdsFrFrFrFrFrFrFrzCdsFrFrFrFrFrFrzCqnaEFrFrLTjPqnqndsFrFrFrFrzCqnqwqwqnqnWVqnqwqwqwqwhuFrFrFrFrFrFrXzdsFrFrFrFrFrWQqntXtXtXjEqnJzJzJzqngIgIqwqwhuFrFrFrFrFrFrLTqnqwtXUrUrUrPJTvPJUrUrPJTvPJUrUrPJTvPJUrUrIeqnaEFrFrFrFr +FrLTICaEFrFrlPLTzNqnhuFrOaugVMzOVMAPbbFrzCDfFrFrFrOafHNUiJFrKZeeqnqnaEFrFrLTjPjPjPqnhuFrFrLTjPjPjPqnqntXjPjPqnqnqnqndsFrFrLTjPqnhuFrFrWQqnqndsFrFrFrFrFrFrFrFrFrFrFrFrEKFrLTjPaEFrFrWQaOaOlWHXlWlWlWaOlujTtJsVFrFrFrFrLTaEFrLTqnhuFrqlUZUZfTVxVxVxCjfTVxVxVxCjfTVxVxVxCjUZHUqnqnaEFrFrFr +FrzCKuhuFrFrlPWQKudsFrFrOabVVMMvVMWpPnNsqnKujPNsNschSnqnZNFrmSeeqnqnqnjPjPqnqnqnqndsFrFrLTqnqwqwqwqwqwaOlWqwqwqwqwqwhuFrFrzCqnhuFrFrFrOfzCqnqnjPjPjPjPjPjPjPJzCPFrFrFrEKFrgxqndsFrFrFrFrFrUcUcUcUcUcFrFrgovQFrLTaEFrFrWQqnjPtXdsFrFrqlCMCMCMUrUrUrCMCMUrUrUrCMCMUrUrUrCMCMLbqnqnqnaEFrFr +FrWQlKFrFrFrlPFrwidsFrFrWQartPYHnYilhuFrWQFVhuFrFrFrFrbBlKyqLjzDqwqwlWlWlIqwjpqwqwhuFrFrWQEpFrFrFrFrFrFrUcFrFrFrFrFrFrFrFrzChuFrFryqFrFrWQqwKMqnqwqnqnqnqnqwaOlWrRrRrRlWrRkQqwhuFrFrFrFrFrFrFrLTjPaEFrFrFrFrLTqnqnaEFrFrWQqnjxdsFrFrKYVsVsVsGoGoGoVsVsGoGoGoVsVsGoGoGoVsVsnsqnqnqnqnaEFr FrFrFrFrFrFrlPLTqnqnaEFrFrFrgoFOvQFrFrLTaEFrFrFrFrFrFrFrFrFrLjhhFrFrUcUcFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTdsFrFrFrFrFrFrFrFrWQhuFrWQlIqwhuFrFrUcUcUcUcUcUcFrFrFrFrFrFrFrFrFrFrWQqwqwjPaEFrFrWQlIqwqnaEFrFrWQqwhuFrFrWQSiSiSijujujuSiSijujujuSiSijujujuSiSiqCqwqwqwqwhuFr FrFrFrFrFrFrlPihmLzUiilPlPlPlPlPlPkoVgoziilPlPlPlPlPlPlPlPlPAilvlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihiilPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPihozlPlPrulPlPihJalPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPlPFrFrFrFrFrFr FrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrWQqwhuFrFrFrFrFrFrFrFrFrFrLjhhFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrLTjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrtMFrFrFrFrFrFrzCjPjPjPaEFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFrFr diff --git a/maps/atoll/icons/objs/bronze_overhang.dmi b/maps/atoll/icons/objs/bronze_overhang.dmi index 155f011dc2..dbab2ba8a8 100644 Binary files a/maps/atoll/icons/objs/bronze_overhang.dmi and b/maps/atoll/icons/objs/bronze_overhang.dmi differ diff --git a/maps/atoll/sounds/lakeamb.ogg b/maps/atoll/sounds/lakeamb.ogg index 61b49f566d..63492ec254 100644 Binary files a/maps/atoll/sounds/lakeamb.ogg and b/maps/atoll/sounds/lakeamb.ogg differ diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index 216068633c..8e3aca2347 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -1562,14 +1562,14 @@ dir = 1; pixel_y = -24 }, -/obj/item/weapon/ore/bluespace_crystal/artificial{ +/obj/item/weapon/bluespace_crystal/artificial{ pixel_x = 7; pixel_y = 7 }, -/obj/item/weapon/ore/bluespace_crystal/artificial{ +/obj/item/weapon/bluespace_crystal/artificial{ pixel_y = 7 }, -/obj/item/weapon/ore/bluespace_crystal/artificial{ +/obj/item/weapon/bluespace_crystal/artificial{ pixel_x = -7; pixel_y = 7 }, diff --git a/maps/southern_cross/southern_cross-13.dmm b/maps/southern_cross/southern_cross-13.dmm index f3b597b513..34f87f7710 100644 --- a/maps/southern_cross/southern_cross-13.dmm +++ b/maps/southern_cross/southern_cross-13.dmm @@ -7,7 +7,11 @@ "ai" = ( /obj/structure/catwalk, /obj/structure/catwalk, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "aC" = ( /obj/effect/floor_decal/corner/paleblue/diagonal, @@ -43,7 +47,11 @@ /area/surface/outside/valley/river) "cW" = ( /obj/random/maintenance/engineering, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "cX" = ( /obj/effect/zone_divider, @@ -61,7 +69,11 @@ "eA" = ( /obj/structure/catwalk, /mob/living/simple_mob/mechanical/combat_drone/event, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "eI" = ( /mob/living/simple_mob/mechanical/combat_drone/event, @@ -73,7 +85,11 @@ "fo" = ( /obj/effect/floor_decal/corner/yellow/diagonal, /obj/item/weapon/cell/super, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "fD" = ( /obj/effect/floor_decal/corner/green/diagonal, @@ -81,7 +97,11 @@ dir = 1; health = 1e+006 }, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "gw" = ( /obj/effect/zone_divider, @@ -92,7 +112,11 @@ "gS" = ( /obj/effect/floor_decal/corner/red/diagonal, /mob/living/simple_mob/mechanical/combat_drone/event, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "hx" = ( /obj/structure/railing{ @@ -107,7 +131,11 @@ /area/surface/outside/valley/walls) "hU" = ( /obj/effect/floor_decal/corner/green/diagonal, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "ic" = ( /obj/machinery/door/airlock, @@ -120,13 +148,21 @@ /area/surface/outside/valley/river) "iQ" = ( /obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "ja" = ( /obj/structure/table/standard, /obj/random/maintenance/research, /obj/effect/floor_decal/corner/yellow/diagonal, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "jc" = ( /obj/structure/bed/chair/comfy/black, @@ -165,7 +201,11 @@ /area/surface/outpost/unfinished) "lr" = ( /obj/structure/door_assembly, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "lt" = ( /turf/simulated/floor/wood{ @@ -173,9 +213,12 @@ }, /area/surface/outside/valley/inner) "lw" = ( -/obj/random/maintenance/engineering, -/turf/simulated/floor/tiled, -/area/surface/outpost/unfinished) +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, +/area/surface/outside/valley/inner) "lD" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 @@ -198,7 +241,11 @@ /area/surface/outpost/unfinished) "ot" = ( /obj/item/frame/apc, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "oI" = ( /obj/structure/railing{ @@ -219,7 +266,11 @@ /obj/structure/frame{ anchored = 1 }, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "py" = ( /obj/effect/floor_decal/corner/paleblue/diagonal, @@ -240,7 +291,11 @@ "qQ" = ( /obj/effect/zone_divider, /obj/structure/catwalk, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "rK" = ( /turf/simulated/floor/water, @@ -256,7 +311,11 @@ "sX" = ( /obj/structure/catwalk, /obj/item/weapon/storage/backpack/dufflebag/syndie, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "tv" = ( /obj/structure/railing{ @@ -268,7 +327,11 @@ "tP" = ( /obj/effect/floor_decal/corner/red/diagonal, /obj/structure/bed/chair/office/dark, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "ul" = ( /obj/structure/bed/double/padded, @@ -297,7 +360,11 @@ /obj/effect/floor_decal/corner/red/diagonal, /obj/structure/table/standard, /obj/item/weapon/storage/backpack/dufflebag/syndie/ammo, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "xd" = ( /obj/effect/zone_divider, @@ -324,7 +391,11 @@ /obj/effect/floor_decal/corner/green/diagonal, /obj/structure/table/standard, /obj/random/maintenance/research, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "xQ" = ( /obj/structure/bed/chair/comfy/black{ @@ -356,7 +427,11 @@ /obj/structure/fireaxecabinet{ pixel_y = 32 }, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "zF" = ( /obj/structure/bed/chair/comfy/black{ @@ -367,7 +442,11 @@ "zT" = ( /obj/machinery/telecomms/relay/preset/southerncross/valley, /obj/structure/cable, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Ad" = ( /obj/effect/zone_divider, @@ -393,7 +472,11 @@ /area/surface/outpost/unfinished) "Bv" = ( /mob/living/simple_mob/mechanical/combat_drone/event, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "BS" = ( /turf/simulated/floor/water/deep{ @@ -410,12 +493,20 @@ d2 = 2; icon_state = "0-2" }, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "CH" = ( /obj/effect/floor_decal/corner/yellow/diagonal, /obj/item/weapon/module/power_control, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "DA" = ( /obj/effect/map_effect/portal/line/side_b{ @@ -428,7 +519,11 @@ /obj/effect/floor_decal/corner/red/diagonal, /obj/structure/closet/secure_closet/guncabinet, /obj/random/energy/sec, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "DP" = ( /obj/structure/bed/double/padded, @@ -441,7 +536,11 @@ dir = 1; health = 1e+006 }, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "EA" = ( /turf/simulated/floor/wood, @@ -497,18 +596,30 @@ "GW" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "HM" = ( /turf/simulated/floor/outdoors/dirt/sif/planetuse, /area/surface/outside/valley/inner) "HP" = ( /obj/structure/catwalk, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Ip" = ( /obj/structure/grille, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "IN" = ( /obj/effect/zone_divider, @@ -534,7 +645,11 @@ /area/surface/outpost/unfinished) "Lr" = ( /obj/item/weapon/cell/super/empty, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "LA" = ( /obj/effect/floor_decal/corner/paleblue/diagonal, @@ -557,18 +672,30 @@ /turf/simulated/floor/wood, /area/surface/outpost/unfinished) "Oq" = ( -/mob/living/simple_mob/mechanical/combat_drone/event, -/turf/simulated/floor/tiled, +/obj/structure/girder, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "OY" = ( /obj/effect/floor_decal/corner/red/diagonal, /obj/structure/closet/secure_closet/guncabinet, /obj/random/energy, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Pk" = ( /obj/structure/girder/reinforced, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Qy" = ( /obj/structure/table/bench/wooden, @@ -586,11 +713,19 @@ "Rl" = ( /obj/effect/floor_decal/corner/yellow/diagonal, /obj/random/maintenance/engineering, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Rn" = ( /obj/item/device/multitool, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Rs" = ( /obj/effect/zone_divider, @@ -617,16 +752,28 @@ /area/surface/outside/valley/edge) "TR" = ( /obj/effect/floor_decal/corner/yellow/diagonal, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "TX" = ( -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "Uf" = ( /obj/effect/floor_decal/corner/red/diagonal, /obj/structure/table/standard, /obj/random/maintenance/security, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "UG" = ( /obj/structure/cable{ @@ -634,7 +781,11 @@ d2 = 2; icon_state = "1-2" }, -/turf/simulated/floor/plating, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) "WK" = ( /obj/effect/map_effect/portal/line/side_b{ @@ -663,7 +814,11 @@ /obj/structure/table/standard, /obj/random/maintenance/research, /obj/random/maintenance/research, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/surface/outpost/unfinished) (1,1,1) = {" @@ -3621,7 +3776,7 @@ TX TX TX TX -Oq +Bv TX TX TX @@ -3646,14 +3801,14 @@ HP Fh TX TX -lR -lR -lR -lR -lR -lR -lR -lw +TX +TX +TX +TX +TX +TX +TX +cW TX TX TX @@ -3872,17 +4027,17 @@ HM HM HM Fh -lR TX TX TX TX TX -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX +TX TX TX TX @@ -3901,14 +4056,14 @@ HP eA HP HP -Jb +lr +TX TX TX TX -lR Bv -lR -lR +TX +TX TX TX TX @@ -4131,17 +4286,17 @@ HM HM Pk cW -lR TX TX TX -lR -lR -lR +TX +TX +TX +TX cW -lR -lR -lR +TX +TX +TX TX TX Fh @@ -4173,8 +4328,8 @@ TX TX TX TX -lR -lR +TX +TX HM HM HM @@ -4388,13 +4543,13 @@ HM HM HM Pk -lR -lR +TX +TX TX Zd Zd Zd -ze +Oq Zd Zd Zd @@ -4423,16 +4578,16 @@ ic Zd Zd Zd -ze +Oq Zd -ze -ze +Oq +Oq Zd Zd TX TX -lR -lR +TX +TX HM HM HM @@ -4646,16 +4801,16 @@ HM HM HM Fh -lR +TX Bv TX Zd -lR -lR -lR +TX +TX +TX cW -lR -lR +TX +TX fD hU hU @@ -4689,7 +4844,7 @@ TR Zd TX Bv -lR +TX Pk HM HM @@ -4904,16 +5059,16 @@ Rk HM HM Fh -lR +TX TX TX Zd -lR -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX +TX Ee hU hU @@ -4938,16 +5093,16 @@ TR Rl TR TR -lR -lR -lR +TX +TX +TX TR Rl TR Zd TX -lR -lR +TX +TX Pk HM HM @@ -5166,14 +5321,14 @@ TX TX TX Zd -lR -lR +TX +TX Lr -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX hU xE Fh @@ -5193,20 +5348,20 @@ rK rK Fh TR -lR -lR -lR +TX +TX +TX Bv TX -lR -lR +TX +TX TR ja Zd TX TX -lR -lR +TX +TX HM HM HM @@ -5424,15 +5579,15 @@ TX TX TX Zd -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX Bv -lR -lR -lR +TX +TX +TX hU Fh rK @@ -5455,16 +5610,16 @@ UG UG zT Rn -lR -lR +TX +TX cW -lR +TX TR ze TX TX TX -lR +TX HM HM Rk @@ -5683,14 +5838,14 @@ TX TX Zd cW -lR -lR -lR -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX +TX +TX +TX hU Fh rK @@ -5708,15 +5863,15 @@ rU rK rK Fh -lR -lR +TX +TX ot cW -lR -lR -lR -lR -lR +TX +TX +TX +TX +TX CH Zd TX @@ -5943,10 +6098,10 @@ Fh Fh GW GW -lR +TX Ip Ip -lR +TX GW Pk Fh @@ -5966,14 +6121,14 @@ rU rK rK Fh -lR +TX GW -lR +TX Pk GW GW Pk -lR +TX Ip Fh Fh @@ -6194,7 +6349,7 @@ Rk Rk Rk Rk -Rk +lw Rk Rk Rk diff --git a/maps/southern_cross/southern_cross-2.dmm b/maps/southern_cross/southern_cross-2.dmm index 3e431a53ec..865b3e2a35 100644 --- a/maps/southern_cross/southern_cross-2.dmm +++ b/maps/southern_cross/southern_cross-2.dmm @@ -11031,12 +11031,12 @@ /turf/simulated/floor/tiled, /area/engineering/workshop) "aIg" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/vending/loadout/uniform, +/obj/effect/floor_decal/borderfloorwhite/corner, +/obj/effect/floor_decal/corner/lime/bordercorner, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/vending/loadout/overwear, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "aIj" = ( @@ -28667,6 +28667,13 @@ }, /turf/simulated/floor/tiled, /area/security/lobby) +"bJA" = ( +/obj/effect/floor_decal/steeldecal/steel_decals10, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/medical/cryo/autoresleeve) "bJF" = ( /turf/simulated/wall, /area/maintenance/emergencyeva) @@ -44798,6 +44805,12 @@ }, /turf/simulated/floor/plating, /area/medical/patient_a) +"drW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/hallway/secondary/seconddeck/research_medical) "dsj" = ( /obj/structure/cable{ d1 = 1; @@ -44967,6 +44980,11 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/cryo/station) +"dww" = ( +/obj/machinery/hologram/holopad, +/obj/effect/floor_decal/industrial/outline/grey, +/turf/simulated/floor/tiled/dark, +/area/medical/cryo/autoresleeve) "dwx" = ( /obj/structure/table/marble, /obj/machinery/chemical_dispenser/bar_soft/full, @@ -45909,6 +45927,13 @@ }, /turf/simulated/floor/tiled, /area/hallway/primary/seconddeck/ascenter) +"eag" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/wall, +/area/maintenance/research_medical) "eaB" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/tiled/dark, @@ -48176,6 +48201,18 @@ }, /turf/simulated/floor/plating, /area/storage/emergency_storage/seconddeck/fs_emergency) +"fkF" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 8; + pixel_y = -2; + pixel_x = -7; + name = "Lost & found disposal outlet" + }, +/turf/simulated/wall/r_wall, +/area/medical/virology) "fld" = ( /obj/effect/floor_decal/industrial/warning/corner{ dir = 4 @@ -48748,6 +48785,13 @@ }, /turf/simulated/floor/tiled/white, /area/rnd/mixing) +"fAQ" = ( +/obj/structure/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/maintenance/research_medical) "fBa" = ( /obj/machinery/smartfridge/produce, /turf/simulated/wall, @@ -49153,6 +49197,10 @@ /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/tiled, /area/engineering/hallway/engineer_hallway) +"fKc" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/maintenance/research_medical) "fKl" = ( /obj/machinery/door/firedoor/border_only, /obj/effect/wingrille_spawn/reinforced, @@ -52223,6 +52271,13 @@ }, /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) +"htb" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plating, +/area/maintenance/research_medical) "hti" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -53033,6 +53088,16 @@ /obj/machinery/shield_diffuser, /turf/simulated/floor/tiled/techfloor/grid, /area/rnd/mixing) +"hMW" = ( +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/basic{ + dir = 4 + }, +/obj/structure/curtain/open/shower/medical, +/turf/simulated/floor/tiled/freezer, +/area/medical/cryo/autoresleeve) "hNm" = ( /obj/machinery/atmospherics/pipe/manifold/visible/black{ dir = 1 @@ -55939,6 +56004,7 @@ name = "Autoresleeving Bay"; req_one_access = null }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "jnX" = ( @@ -56016,14 +56082,31 @@ /turf/simulated/floor/tiled/monotile, /area/hallway/primary/seconddeck/aft) "jqu" = ( -/obj/machinery/firealarm{ +/obj/machinery/power/apc{ dir = 8; + name = "west bump"; pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/effect/floor_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lime/bordercorner{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -36; + dir = 4; + pixel_y = 6 + }, +/obj/machinery/button/windowtint{ + id = "autoresleevingtint"; + pixel_x = -35; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "jqw" = ( @@ -61808,8 +61891,22 @@ /turf/simulated/floor/tiled, /area/teleporter) "mFk" = ( -/obj/machinery/vending/loadout, -/turf/simulated/floor/tiled/white, +/obj/structure/table/rack/shelf/steel{ + pixel_y = -3 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/department/cargo{ + pixel_y = -32; + name = "Resleeving lost & found bin"; + desc = "NT is not responsible for personal items left or lost on SouthernCross. Any lost and found inquiries can be made at the HoP front desk." + }, +/obj/random/maintenance/clean, +/obj/random/maintenance/engineering, +/obj/random/junk, +/obj/structure/curtain/black, +/turf/simulated/floor/tiled/steel_dirty, /area/medical/cryo/autoresleeve) "mFN" = ( /obj/structure/cable/green{ @@ -64704,6 +64801,11 @@ /turf/simulated/wall, /area/rnd/workshop) "olj" = ( +/obj/structure/sign/redcross{ + pixel_y = 32; + name = "Autoresleeving"; + icon_state = "bluecross2" + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "olr" = ( @@ -64753,12 +64855,15 @@ /area/quartermaster/warehouse) "omu" = ( /obj/structure/table/glass, -/obj/item/weapon/folder/white, -/obj/item/weapon/pen, -/obj/item/device/radio/intercom{ - dir = 1; - name = "Station Intercom (General)"; - pixel_y = 21 +/obj/effect/floor_decal/borderfloorwhite{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 1 + }, +/obj/structure/flora/pottedplant/sticky{ + name = "Roberto"; + pixel_y = 18 }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) @@ -64773,11 +64878,19 @@ /area/library) "ond" = ( /obj/structure/table/glass, +/obj/item/weapon/folder/white, +/obj/item/weapon/pen, +/obj/machinery/alarm{ + pixel_y = 23 + }, /obj/machinery/light{ dir = 1 }, -/obj/machinery/alarm{ - pixel_y = 23 +/obj/effect/floor_decal/borderfloorwhite{ + dir = 1 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 1 }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) @@ -64793,8 +64906,14 @@ /turf/simulated/floor, /area/engineering/engine_room) "ooQ" = ( -/obj/machinery/vending/loadout/uniform, -/turf/simulated/floor/tiled/white, +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/basic{ + dir = 8 + }, +/obj/structure/curtain/open/shower/medical, +/turf/simulated/floor/tiled/freezer, /area/medical/cryo/autoresleeve) "ooT" = ( /turf/simulated/wall/r_wall, @@ -66264,13 +66383,19 @@ /turf/simulated/floor/tiled/white, /area/medical/medbay) "pfJ" = ( -/obj/machinery/camera/network/medbay{ - c_tag = "MED - Autoresleeving Bay"; - dir = 4 - }, -/obj/machinery/atm{ +/obj/machinery/vending/wallmed1{ + name = "Emergency NanoMed"; pixel_x = -28 }, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 8 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "pfT" = ( @@ -66368,18 +66493,17 @@ /turf/simulated/floor/tiled/white, /area/medical/virology) "pix" = ( -/obj/structure/cable/green{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/light_switch{ - pixel_x = -24 +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 5 }, -/obj/machinery/newscaster{ - pixel_x = -36 +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) @@ -67499,9 +67623,12 @@ /turf/simulated/floor/tiled/techmaint, /area/medical/cryo) "pNa" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 8 }, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 1 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "pNf" = ( @@ -69728,6 +69855,10 @@ /turf/simulated/floor/plating, /area/hallway/secondary/entry/D3) "rev" = ( +/obj/machinery/door/window/westleft{ + name = "Shower"; + dir = 1 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "reH" = ( @@ -70744,6 +70875,13 @@ /obj/effect/floor_decal/corner/pink/border, /turf/simulated/floor/tiled/white, /area/medical/patient_a) +"rIU" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/wall, +/area/maintenance/research_medical) "rIW" = ( /obj/structure/cable{ d2 = 2; @@ -71039,23 +71177,31 @@ /turf/simulated/floor/tiled/dark, /area/rnd/workshop) "rRk" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/vending/loadout/clothing, +/obj/structure/window/reinforced{ + dir = 4; + health = 1e+006 + }, +/obj/machinery/light, +/obj/effect/floor_decal/borderfloorwhite, +/obj/effect/floor_decal/corner/lime/border, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/vending/loadout/loadout_misc, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "rRD" = ( -/obj/structure/cable/green{ - d2 = 8; - icon_state = "0-8" +/obj/structure/table/rack/shelf/steel{ + pixel_y = -3 }, -/obj/machinery/power/apc/super{ - pixel_y = -24 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/simulated/floor/tiled/white, +/obj/random/maintenance/clean, +/obj/random/maintenance/engineering, +/obj/random/thermalponcho, +/obj/structure/curtain/black, +/turf/simulated/floor/tiled/steel_dirty, /area/medical/cryo/autoresleeve) "rRH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -71876,16 +72022,16 @@ /turf/unsimulated/mask, /area/hallway/primary/seconddeck/starboard) "sqI" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/machinery/vending/wallmed1{ - name = "Emergency NanoMed"; +/obj/machinery/atm{ pixel_x = -28 }, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 8 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "sqJ" = ( @@ -73505,6 +73651,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "toM" = ( @@ -74406,11 +74556,11 @@ /turf/space, /area/shuttle/arrival/station) "tUA" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/simulated/floor/tiled/white, -/area/medical/cryo/autoresleeve) +/turf/simulated/floor/plating, +/area/maintenance/research_medical) "tVa" = ( /obj/machinery/camera/network/second_deck{ c_tag = "Second Deck - Port Hallway 4"; @@ -75112,7 +75262,20 @@ /turf/simulated/floor, /area/maintenance/cargo) "uoF" = ( -/obj/machinery/vending/loadout/gadget, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 4 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 4 + }, +/obj/machinery/door/window/westright{ + name = "Shower"; + dir = 1; + pixel_y = 0 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "uoP" = ( @@ -75513,6 +75676,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "uAF" = ( @@ -75828,6 +75992,14 @@ }, /turf/simulated/floor/tiled/white, /area/medical/virology) +"uHn" = ( +/obj/structure/catwalk, +/obj/random/junk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/maintenance/research_medical) "uHz" = ( /obj/structure/table/glass, /obj/item/weapon/storage/lockbox/vials, @@ -76555,7 +76727,19 @@ /turf/simulated/floor/tiled/hydro, /area/hydroponics) "vhy" = ( -/obj/machinery/vending/loadout/accessory, +/obj/machinery/newscaster{ + pixel_x = 29 + }, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 4 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 4 + }, +/obj/machinery/door/window/westright{ + dir = 2; + pixel_y = 1 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "vhB" = ( @@ -77157,6 +77341,10 @@ dir = 4 }, /obj/random/junk, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/plating, /area/maintenance/research_medical) "vCe" = ( @@ -77206,6 +77394,9 @@ name = "Medbay Emergency Lockdown Shutters"; opacity = 0 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/dark, /area/hallway/secondary/seconddeck/research_medical) "vDJ" = ( @@ -77259,6 +77450,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/dark, /area/hallway/secondary/seconddeck/research_medical) "vEe" = ( @@ -77309,6 +77503,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/dark, /area/hallway/secondary/seconddeck/research_medical) "vGd" = ( @@ -77380,6 +77577,9 @@ "vHd" = ( /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/paleblue/border, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vHe" = ( @@ -77412,6 +77612,9 @@ /obj/structure/cable/green, /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/paleblue/border, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vIn" = ( @@ -77448,6 +77651,9 @@ /obj/machinery/status_display{ pixel_y = -32 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vID" = ( @@ -77464,6 +77670,9 @@ /obj/effect/floor_decal/corner/paleblue/bordercorner{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vIX" = ( @@ -77480,6 +77689,9 @@ /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vJh" = ( @@ -77491,6 +77703,10 @@ dir = 4 }, /obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/seconddeck/research_medical) "vJC" = ( @@ -77583,7 +77799,21 @@ /turf/simulated/floor/tiled/white, /area/medical/virology) "vLw" = ( -/obj/machinery/vending/loadout/clothing, +/obj/machinery/camera/network/medbay{ + c_tag = "MED - Autoresleeving Bay"; + dir = 8 + }, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 4 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 21 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "vMl" = ( @@ -78837,6 +79067,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/medical/medbay2) +"wAi" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + dir = 2; + pixel_y = 1 + }, +/turf/simulated/floor/tiled/white, +/area/medical/cryo/autoresleeve) "wAw" = ( /obj/structure/table/glass, /turf/simulated/floor/carpet/sblucarpet, @@ -79866,6 +80106,15 @@ /area/hallway/primary/seconddeck/starboard) "xeV" = ( /obj/effect/floor_decal/industrial/warning, +/obj/machinery/disposal/wall/cleaner{ + dir = 8; + pixel_y = 0; + pixel_x = 35; + name = "Resleeving lost & found bin" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/tiled/dark, /area/hallway/primary/seconddeck/starboard) "xfb" = ( @@ -80001,6 +80250,7 @@ /area/maintenance/research_medical) "xiX" = ( /obj/random/junk, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/research_medical) "xjv" = ( @@ -80246,6 +80496,12 @@ /area/medical/medical_restroom) "xpf" = ( /obj/machinery/transhuman/autoresleever, +/obj/effect/floor_decal/borderfloorwhite{ + dir = 9 + }, +/obj/effect/floor_decal/corner/lime/border{ + dir = 9 + }, /turf/simulated/floor/tiled/white, /area/medical/cryo/autoresleeve) "xpv" = ( @@ -81400,6 +81656,9 @@ /obj/structure/loot_pile/surface/medicine_cabinet{ pixel_y = 25 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/research_medical) "xZK" = ( @@ -81526,6 +81785,9 @@ "ydn" = ( /obj/machinery/light/small, /obj/structure/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/research_medical) "ydH" = ( @@ -81533,6 +81795,9 @@ /obj/structure/loot_pile/surface/medicine_cabinet/fresh{ pixel_y = 25 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/research_medical) "yet" = ( @@ -81551,6 +81816,9 @@ "yeN" = ( /obj/structure/catwalk, /obj/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/plating, /area/maintenance/research_medical) "yfl" = ( @@ -126203,8 +126471,8 @@ tdm uhW tdm wqL -xhM -xhM +eag +rIU eCW ufJ wKQ @@ -126720,7 +126988,7 @@ ukV vAp wrf xhM -rJB +tUA eCW sSp pjG @@ -127236,7 +127504,7 @@ upp vAS sqd pzW -qHW +fAQ eCW seX pjG @@ -127494,7 +127762,7 @@ sql sql sql pzW -qHW +fAQ eCW mCf gjl @@ -127752,7 +128020,7 @@ sql sql sql pzW -qJk +uHn eCW mEB mEB @@ -128010,7 +128278,7 @@ sql sql sql pzW -qHW +fAQ jpX vRU hPZ @@ -128268,7 +128536,7 @@ sql sql sql pzW -qHW +fAQ jpX tHW tAA @@ -128526,7 +128794,7 @@ sql sql sql pzW -qHW +fAQ jpX ijR xnd @@ -129298,9 +129566,9 @@ srU srU uqP vBP -rJB +fKc xiX -rJB +htb rEl vIn oSv @@ -129555,7 +129823,7 @@ rMh ooT tfF uqR -ooT +drW ooT xkS ygz @@ -130587,7 +130855,7 @@ rPK cuT ooT uwj -ooT +drW wuH xom xom @@ -132386,9 +132654,9 @@ liq mmE cXZ omu -pfT +qQJ +bJA pMv -tUA aIg dqr toU @@ -132644,9 +132912,9 @@ liq mnf cXZ ond -rev +pfT +dww pMv -tUA rRk opM opM @@ -132904,7 +133172,7 @@ cXZ ooQ rev pNa -qQJ +wAi rRD opM tpH @@ -133159,7 +133427,7 @@ eTf ecy cXZ cXZ -dqr +hMW uoF vLw vhy @@ -133416,12 +133684,12 @@ cXZ aaa aaa aaa -ngt opM opM opM opM opM +fkF opM opM uEF diff --git a/maps/southern_cross/southern_cross-8.dmm b/maps/southern_cross/southern_cross-8.dmm index dbe7b850ab..35f10e17de 100644 --- a/maps/southern_cross/southern_cross-8.dmm +++ b/maps/southern_cross/southern_cross-8.dmm @@ -610,6 +610,21 @@ icon_state = "dark" }, /area/syndicate_station) +"acI" = ( +/obj/machinery/washing_machine{ + pixel_y = 28 + }, +/obj/structure/table/steel, +/obj/item/weapon/storage/laundry_basket, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"acK" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = -3 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "acP" = ( /obj/structure/table/rack, /turf/unsimulated/floor{ @@ -664,11 +679,19 @@ /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) "aex" = ( -/obj/structure/table/bench/sifwooden/padded, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/toy/plushie/borgplushie/scrubpuppy, +/obj/item/toy/plushie/nymph{ + pixel_y = -13; + pixel_x = -14 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/reinforced, +/area/shadekin) +"aeN" = ( +/obj/machinery/door/airlock/angled_tgmc/medical_glass{ + name = "Bathroom" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, /area/shadekin) "afq" = ( /obj/machinery/door/blast/regular{ @@ -701,12 +724,25 @@ /obj/machinery/vending/boozeomat, /turf/simulated/shuttle/wall/dark, /area/shuttle/administration) +"ahW" = ( +/obj/item/weapon/stool/padded, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "aib" = ( /obj/machinery/mech_recharger, /turf/unsimulated/floor{ icon_state = "dark" }, /area/syndicate_mothership/elite_squad) +"aid" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "aij" = ( /obj/effect/floor_decal/corner/red{ dir = 6 @@ -751,6 +787,12 @@ icon_state = "vault" }, /area/centcom/specops) +"ajM" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "akg" = ( /obj/structure/table/rack, /obj/item/weapon/rig/ert/assetprotection, @@ -828,6 +870,23 @@ /obj/machinery/computer/scan_consolenew, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"apM" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/bronze, +/area/shadekin) +"aqj" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/obj/structure/flora/pottedplant/flower{ + pixel_y = 10; + name = "Rosola" + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "arj" = ( /obj/effect/floor_decal/sign/small_5{ icon = 'icons/turf/flooring/decals.dmi' @@ -846,6 +905,24 @@ icon_state = "dark" }, /area/centcom/security) +"asG" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) +"asI" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) +"auh" = ( +/obj/machinery/door/airlock/angled_tgmc/pod, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "aup" = ( /obj/structure/closet, /obj/item/clothing/suit/wizrobe/magusred, @@ -914,6 +991,17 @@ name = "snow" }, /area/ninja_dojo/dojo) +"avb" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"avh" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "awg" = ( /obj/structure/table/steel_reinforced, /turf/unsimulated/floor{ @@ -986,15 +1074,22 @@ /turf/simulated/floor/holofloor/wood, /area/holodeck/source_chess) "ayP" = ( -/obj/structure/toilet/prison, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/milspec/sterile, +/obj/structure/table/rack/shelf/steel, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "azl" = ( /turf/simulated/shuttle/wall/hard_corner, /area/shuttle/escape/centcom) +"azA" = ( +/obj/item/weapon/bedsheet/greendouble, +/obj/item/weapon/bedsheet/hosdouble{ + pixel_y = 5; + pixel_x = 7 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "azD" = ( /obj/structure/table/rack, /obj/structure/window/reinforced{ @@ -1048,6 +1143,10 @@ icon_state = "dark" }, /area/centcom/creed) +"aDf" = ( +/obj/random/trash, +/turf/simulated/floor, +/area/shadekin) "aDx" = ( /obj/machinery/bodyscanner{ dir = 8 @@ -1148,6 +1247,10 @@ icon_state = "vault" }, /area/shuttle/trade) +"aJi" = ( +/obj/structure/table/rack/shelf/steel, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "aJs" = ( /obj/structure/window/reinforced, /obj/machinery/door/blast/shutters{ @@ -1185,6 +1288,10 @@ icon_state = "vault" }, /area/wizard_station) +"aLm" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "aMC" = ( /obj/effect/landmark{ name = "prisonwarp" @@ -1194,12 +1301,31 @@ name = "plating" }, /area/prison/solitary) +"aMF" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/random/junk, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "aMH" = ( /obj/structure/flight_right{ dir = 4 }, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"aNj" = ( +/obj/structure/table/marble, +/obj/structure/sink/countertop{ + pixel_y = 11 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "aNu" = ( /obj/structure/table/rack, /obj/item/device/megaphone, @@ -1212,18 +1338,40 @@ icon_state = "dark" }, /area/syndicate_station) +"aNI" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"aOJ" = ( +/obj/structure/flora/tree/jungle_small, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "aOK" = ( /turf/unsimulated/floor{ icon_state = "freezerfloor" }, /area/centcom/specops) "aOW" = ( -/obj/structure/closet/secure_closet/freezer/fridge{ - locked = 0 +/obj/structure/table/rack/gun_rack/steel, +/obj/item/clothing/under/wedding/bride_red{ + pixel_y = -1; + pixel_x = 3 }, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/clothing/under/wedding/bride_purple{ + pixel_y = 1; + pixel_x = -6 }, +/obj/item/clothing/under/wedding/bride_orange{ + pixel_y = 10; + pixel_x = 5 + }, +/obj/item/clothing/under/wedding/bride_blue{ + pixel_y = 8; + pixel_x = -5 + }, +/obj/effect/floor_decal/milspec/cargo, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "aPq" = ( @@ -1254,6 +1402,11 @@ icon_state = "lino" }, /area/centcom/bar) +"aQp" = ( +/obj/machinery/vending/event/gadget, +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, +/area/shadekin) "aQu" = ( /turf/unsimulated/floor{ icon_state = "dark" @@ -1277,6 +1430,27 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_chess) +"aQJ" = ( +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ + pixel_x = 3 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "aQM" = ( /obj/structure/toilet, /obj/machinery/light/small{ @@ -1296,6 +1470,17 @@ icon_state = "dark" }, /area/syndicate_station) +"aSc" = ( +/obj/item/toy/plushie/basset{ + pixel_y = 3; + pixel_x = 2 + }, +/obj/item/toy/plushie/spider{ + pixel_y = 21; + pixel_x = 14 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "aSL" = ( /obj/structure/bed/chair/wood/wings{ dir = 1 @@ -1339,6 +1524,12 @@ }, /turf/simulated/floor/airless, /area/shuttle/syndicate_elite/mothership) +"aUk" = ( +/obj/machinery/door/airlock/angled_tgmc/maintenance{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "aUC" = ( /turf/simulated/shuttle/wall/voidcraft/green, /area/shuttle/ninja) @@ -1359,6 +1550,20 @@ color = "teal" }, /area/holodeck/source_chess) +"aVy" = ( +/obj/machinery/vending/sovietvend, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"aVA" = ( +/obj/structure/window/basic{ + dir = 8 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "aWB" = ( /obj/machinery/light{ dir = 8 @@ -1389,18 +1594,30 @@ icon_state = "vault" }, /area/wizard_station) +"aWY" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"aXs" = ( +/obj/effect/floor_decal/spline/fancy{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/wood/alt, +/area/shadekin) "aYN" = ( /obj/effect/overlay/palmtree_r, /obj/effect/overlay/coconut, /turf/unsimulated/beach/sand, /area/beach) "aYO" = ( -/obj/item/weapon/bedsheet/browndouble, -/obj/item/weapon/bedsheet/hopdouble{ - pixel_y = -11; - pixel_x = 7 +/obj/effect/floor_decal/techfloor{ + dir = 4 }, -/turf/simulated/floor/carpet/blucarpet, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "aZj" = ( /obj/structure/inflatable, @@ -1425,6 +1642,18 @@ name = "plating" }, /area/centcom/specops) +"aZK" = ( +/obj/random/trash, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) +"baw" = ( +/obj/structure/lattice, +/obj/machinery/light/small/emergency/flicker{ + dir = 8 + }, +/turf/unsimulated/floor/dark, +/area/shadekin) "bay" = ( /obj/machinery/vending/medical, /turf/unsimulated/floor{ @@ -1443,6 +1672,17 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"bbP" = ( +/mob/living/simple_mob/animal/sif/glitterfly/rare, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) +"bcb" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bcg" = ( /obj/effect/wingrille_spawn/reinforced/crescent, /turf/unsimulated/floor{ @@ -1468,6 +1708,12 @@ icon_state = "lino" }, /area/wizard_station) +"bdw" = ( +/obj/structure/bed/chair/bay/chair/padded/red/bignest{ + name = "large shadekin nest" + }, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "bdD" = ( /obj/effect/floor_decal/industrial/warning, /obj/effect/floor_decal/sign/dock/two, @@ -1501,6 +1747,17 @@ name = "Shuttle Bay Blast Door" }, /area/centcom/evac) +"beU" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "beV" = ( /turf/unsimulated/floor{ icon_state = "plating"; @@ -1527,6 +1784,13 @@ icon_state = "steel" }, /area/centcom/bar) +"bfZ" = ( +/obj/machinery/vending/boozeomat{ + pixel_y = 16 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bge" = ( /obj/structure/table/rack, /obj/item/weapon/storage/box/handcuffs{ @@ -1545,6 +1809,51 @@ icon_state = "floor_red" }, /area/centcom/evac) +"bgS" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"bhm" = ( +/obj/structure/table/marble, +/obj/item/weapon/reagent_containers/dropper{ + pixel_y = 5; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/measuring_cup{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"bhL" = ( +/obj/structure/table/marble, +/obj/effect/floor_decal/corner/black/diagonal, +/obj/item/weapon/reagent_containers/dropper{ + pixel_y = 5; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/measuring_cup{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) "bhX" = ( /turf/simulated/wall/tgmc/window/darkwall/reinf, /area/shadekin) @@ -1554,6 +1863,12 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"bjU" = ( +/obj/structure/bed/chair/bay/chair/padded/red/bignest{ + name = "large shadekin nest" + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "bjX" = ( /obj/structure/table/standard, /obj/item/weapon/storage/firstaid/o2{ @@ -1607,6 +1922,13 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"bmp" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "bmz" = ( /obj/machinery/door/airlock/hatch, /turf/unsimulated/floor{ @@ -1639,6 +1961,12 @@ }, /turf/simulated/floor/holofloor/wmarble, /area/holodeck/source_chess) +"bnU" = ( +/obj/effect/floor_decal/techfloor{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "boo" = ( /obj/item/weapon/stool/padded, /turf/unsimulated/floor{ @@ -1693,6 +2021,10 @@ icon_state = "white" }, /area/centcom/medical) +"bps" = ( +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "bpv" = ( /obj/item/toy/chess/bishop_white{ color = "teal" @@ -1712,6 +2044,16 @@ icon_state = "vault" }, /area/centcom/specops) +"bqs" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8; + name = "Room 5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "bqx" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 6 @@ -1730,6 +2072,20 @@ /obj/machinery/recharge_station, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"brR" = ( +/obj/item/weapon/reagent_containers/food/drinks/shaker, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bsF" = ( /obj/machinery/door/airlock/centcom{ name = "General Access"; @@ -1792,6 +2148,15 @@ icon_state = "freezerfloor" }, /area/centcom/specops) +"bvF" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bvJ" = ( /obj/machinery/door/airlock/glass_security{ name = "Airlock"; @@ -1811,6 +2176,16 @@ }, /turf/simulated/floor/wood/sif, /area/shadekin) +"bws" = ( +/obj/structure/table/marble, +/obj/item/weapon/material/knife/butch, +/obj/item/weapon/material/kitchen/rollingpin{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "byl" = ( /obj/effect/wingrille_spawn/reinforced, /turf/unsimulated/floor{ @@ -1818,20 +2193,26 @@ name = "plating" }, /area/syndicate_mothership/elite_squad) +"bzh" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bzt" = ( /obj/structure/bed/roller, /turf/simulated/shuttle/floor/white, /area/centcom/evac) "bzK" = ( -/obj/structure/table/rack/shelf/steel, -/obj/structure/window/reinforced/survival_pod{ - dir = 4; - opacity = 1 +/obj/structure/table/bench/marble{ + color = "#2b2b2b" }, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/flora/pottedplant/largebush{ + pixel_y = 10; + name = "Altuda" }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/bronze, /area/shadekin) "bzO" = ( /turf/simulated/shuttle/wall/dark/no_join, @@ -1871,11 +2252,8 @@ }, /area/centcom/medical) "bAY" = ( -/obj/machinery/appliance/cooker/fryer, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/effect/floor_decal/milspec/color/black, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "bBn" = ( /obj/machinery/computer/cloning, @@ -1896,6 +2274,13 @@ name = "plating" }, /area/centcom/specops) +"bCK" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet, +/area/shadekin) "bDI" = ( /turf/unsimulated/floor{ icon_state = "carpet" @@ -1924,6 +2309,13 @@ name = "Sealed Door" }, /area/centcom/main_hall) +"bFJ" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "bFO" = ( /obj/effect/wingrille_spawn/reinforced/crescent, /turf/unsimulated/floor{ @@ -1960,16 +2352,19 @@ /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) "bGH" = ( -/obj/structure/table/glass, -/obj/effect/floor_decal/rust{ - color = "black" - }, +/obj/machinery/appliance/cooker/grill, +/obj/effect/floor_decal/techfloor, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "bGM" = ( /obj/structure/table/reinforced, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"bHb" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/reagent_dispensers/fueltank/high, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "bHc" = ( /obj/effect/floor_decal/carpet{ dir = 5 @@ -1993,6 +2388,13 @@ /obj/effect/overlay/coconut, /turf/unsimulated/beach/sand, /area/beach) +"bIF" = ( +/obj/machinery/vending/cart, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "bIK" = ( /obj/effect/floor_decal/corner/white{ dir = 1 @@ -2118,6 +2520,13 @@ /obj/item/poster, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"bLP" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "bMh" = ( /obj/structure/table/rack, /obj/item/device/flashlight/flare, @@ -2170,6 +2579,19 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"bQc" = ( +/obj/effect/floor_decal/corner/black/diagonal, +/obj/item/weapon/stool/padded, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"bQw" = ( +/obj/structure/closet/crate/wooden, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/internal_organ, +/obj/random/internal_organ, +/obj/random/internal_organ, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "bQG" = ( /obj/machinery/door/airlock/hatch, /turf/unsimulated/floor{ @@ -2226,6 +2648,10 @@ icon_state = "vault" }, /area/centcom/specops) +"bST" = ( +/obj/machinery/vending/event/clothing, +/turf/simulated/floor/reinforced, +/area/shadekin) "bTc" = ( /obj/item/toy/chess/knight_white{ color = "teal" @@ -2240,6 +2666,10 @@ }, /turf/simulated/floor/holofloor/wmarble, /area/holodeck/source_chess) +"bUI" = ( +/obj/effect/floor_decal/milspec/color/white, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "bUQ" = ( /turf/unsimulated/floor{ dir = 1; @@ -2313,6 +2743,23 @@ icon_state = "steel" }, /area/centcom/bar) +"bWz" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) +"bWH" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "bXY" = ( /obj/machinery/door/airlock/external{ req_access = list(150) @@ -2321,6 +2768,15 @@ icon_state = "dark" }, /area/syndicate_mothership/elite_squad) +"bYA" = ( +/obj/structure/closet/crate/hydroponics, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor, +/area/shadekin) "bYM" = ( /obj/structure/sign/directions/cargo{ dir = 1 @@ -2364,6 +2820,17 @@ icon_state = "dark" }, /area/centcom/specops) +"bZr" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/hosdouble, +/turf/simulated/floor/carpet/retro, +/area/shadekin) +"bZU" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "bZX" = ( /obj/structure/shuttle/engine/heater{ dir = 8 @@ -2393,6 +2860,14 @@ /obj/structure/bed/padded, /turf/simulated/shuttle/floor/red, /area/shuttle/skipjack) +"cci" = ( +/obj/item/toy/plushie/carp/silent, +/obj/item/toy/plushie/crab{ + pixel_x = -11; + pixel_y = 5 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "ccn" = ( /obj/machinery/door/airlock/external{ req_access = list(150) @@ -2411,6 +2886,13 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) +"cdV" = ( +/obj/machinery/vending/emergencyfood/filled, +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "cdW" = ( /obj/machinery/media/jukebox, /turf/unsimulated/floor{ @@ -2432,6 +2914,66 @@ }, /turf/simulated/shuttle/floor/skipjack, /area/shuttle/syndicate_elite/mothership) +"ceo" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) +"cfm" = ( +/obj/item/toy/plushie/borgplushie/drake/jani, +/obj/item/toy/plushie/green_fox{ + pixel_y = 9; + pixel_x = 14 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"cfr" = ( +/obj/item/weapon/reagent_containers/food/drinks/soymilk, +/obj/item/weapon/reagent_containers/food/drinks/soymilk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/bottle/milk, +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallchocmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallmilk, +/obj/item/weapon/reagent_containers/food/drinks/smallmilk, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice{ + pixel_y = -3; + pixel_x = -9 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice{ + pixel_y = -3; + pixel_x = -9 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice{ + pixel_y = -3; + pixel_x = -9 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream{ + pixel_y = -4; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream{ + pixel_y = -4; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cream{ + pixel_y = -4; + pixel_x = -4 + }, +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "cfJ" = ( /obj/item/weapon/paper_bin, /obj/item/weapon/pen, @@ -2512,6 +3054,13 @@ icon_state = "wood" }, /area/centcom/bar) +"ckp" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "cku" = ( /turf/unsimulated/floor{ icon_state = "lino" @@ -2531,6 +3080,14 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"cmw" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "cmS" = ( /obj/machinery/door/airlock/external{ frequency = null; @@ -2551,6 +3108,21 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"cnL" = ( +/obj/effect/floor_decal/techfloor, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/structure/extinguisher_cabinet{ + dir = 1; + pixel_y = -30 + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "cpo" = ( /obj/structure/bed/chair/comfy/black, /turf/simulated/shuttle/floor/black, @@ -2605,6 +3177,11 @@ icon_state = "white" }, /area/centcom/medical) +"csC" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "csG" = ( /turf/simulated/shuttle/floor, /area/shuttle/transport1/centcom) @@ -2634,6 +3211,10 @@ icon_state = "dark" }, /area/centcom/specops) +"cus" = ( +/obj/structure/flora/log2, +/turf/simulated/floor/water/hotspring, +/area/shadekin) "cuP" = ( /obj/effect/decal/cleanable/cobweb2{ icon_state = "spiderling"; @@ -2652,6 +3233,27 @@ icon_state = "freezerfloor" }, /area/centcom/specops) +"cvy" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) +"cwn" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"cwo" = ( +/obj/item/toy/plushie/carp/void, +/obj/item/toy/plushie/lizard{ + pixel_y = -9; + pixel_x = 6 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "cwv" = ( /obj/machinery/embedded_controller/radio/docking_port_multi{ child_names_txt = "Airlock One;Airlock Two"; @@ -2703,11 +3305,11 @@ }, /area/centcom/command) "cym" = ( -/obj/machinery/recharge_station, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/table/marble{ + color = "#2b2b2b" }, -/turf/simulated/floor/tiled/milspec/sterile, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "cyv" = ( /obj/structure/bed/padded, @@ -2715,10 +3317,9 @@ /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) "cyx" = ( -/obj/machinery/door/airlock/angled_bay/standard/color/engineering{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel_ridged, +/obj/structure/closet/crate/laundry, +/obj/effect/floor_decal/milspec/cargo, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "cyR" = ( /obj/effect/floor_decal/sign/small_a{ @@ -2726,6 +3327,10 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_chess) +"czr" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "czP" = ( /obj/structure/table/reinforced, /obj/item/weapon/pinpointer/advpinpointer, @@ -2796,6 +3401,14 @@ icon_state = "dark" }, /area/centcom/command) +"cDg" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cDl" = ( /obj/structure/table/rack, /obj/item/weapon/pinpointer/shuttle/merc, @@ -2815,11 +3428,19 @@ }, /area/syndicate_station) "cDx" = ( -/obj/machinery/appliance/cooker/grill, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/milspec/stripe{ + dir = 4 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"cDB" = ( +/obj/machinery/icecream_vat, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 5 + }, +/turf/simulated/floor/tiled/freezer, /area/shadekin) "cEh" = ( /obj/effect/floor_decal/corner/white/diagonal, @@ -2851,6 +3472,32 @@ icon_state = "steel" }, /area/centcom/bar) +"cFG" = ( +/obj/structure/table/rack/shelf/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/misc, +/obj/random/maintenance/misc, +/obj/random/maintenance/misc, +/obj/random/maintenance/misc, +/obj/random/maintenance/misc, +/obj/random/maintenance/misc, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"cFL" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 5 + }, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/sign/electricshock{ + pixel_y = 32; + name = "Shockunura!"; + desc = "Shockingly isn't it? Live Music festival. Septober-23-1900. Electronic music to shock your senses~" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cFQ" = ( /obj/structure/table/rack, /obj/item/clothing/accessory/storage/brown_vest, @@ -2893,6 +3540,19 @@ icon_state = "dark" }, /area/syndicate_station) +"cIi" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/obj/effect/floor_decal/emblem/itgdauntless{ + pixel_y = -32; + name = "Dauntless Boots"; + desc = "Tired of your footwear breaking down with time? Why bother buying something that will eventually erode when you can realy on the Dauntless footwear. Now in gunmetal black!" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cII" = ( /obj/item/device/multitool, /obj/item/weapon/reagent_containers/spray/cleaner, @@ -2977,6 +3637,11 @@ icon_state = "vault" }, /area/wizard_station) +"cKg" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cKC" = ( /obj/structure/bed/chair, /turf/simulated/shuttle/floor/black, @@ -2989,6 +3654,13 @@ icon_state = "dark" }, /area/wizard_station) +"cKH" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 5 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cLh" = ( /obj/structure/bed/chair/office/dark, /turf/unsimulated/floor{ @@ -3018,6 +3690,13 @@ /obj/structure/flora/grass/both, /turf/simulated/floor/holofloor/snow, /area/holodeck/source_snowfield) +"cMS" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "cNE" = ( /obj/effect/floor_decal/sign/small_b{ icon = 'icons/turf/flooring/decals.dmi' @@ -3059,6 +3738,20 @@ icon_state = "lino" }, /area/tdome/tdomeadmin) +"cPT" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) +"cQp" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "cQG" = ( /obj/structure/bookcase, /turf/unsimulated/floor{ @@ -3066,12 +3759,20 @@ icon_state = "wood" }, /area/wizard_station) +"cQP" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "cQW" = ( /obj/effect/floor_decal/corner/red{ dir = 10 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) +"cSg" = ( +/obj/effect/catwalk_plated/techmaint, +/turf/simulated/floor, +/area/shadekin) "cSz" = ( /obj/effect/wingrille_spawn/reinforced/crescent, /turf/unsimulated/floor{ @@ -3123,6 +3824,11 @@ icon_state = "freezerfloor" }, /area/centcom/command) +"cVL" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/lapvend, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "cVU" = ( /obj/effect/floor_decal/industrial/warning{ dir = 9 @@ -3132,6 +3838,10 @@ icon_state = "vault" }, /area/centcom/terminal) +"cWu" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "cWy" = ( /obj/structure/sink{ dir = 8; @@ -3203,6 +3913,10 @@ icon_state = "dark" }, /area/tdome) +"dar" = ( +/obj/item/toy/plushie/squid/mint, +/turf/simulated/floor/reinforced, +/area/shadekin) "daD" = ( /obj/structure/undies_wardrobe, /turf/unsimulated/floor{ @@ -3220,6 +3934,34 @@ /obj/item/weapon/reagent_containers/glass/bucket, /turf/simulated/shuttle/plating, /area/centcom/evac) +"dbz" = ( +/obj/machinery/camera/network/civilian{ + c_tag = "CIV - Kitchen Cold Room"; + dir = 1 + }, +/obj/structure/closet/chefcloset, +/obj/item/glass_jar, +/obj/item/device/retail_scanner/civilian, +/obj/item/weapon/soap/nanotrasen, +/obj/item/device/destTagger{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/weapon/packageWrap, +/obj/item/weapon/packageWrap, +/obj/item/weapon/packageWrap, +/obj/item/clothing/gloves/sterile/latex, +/obj/item/clothing/gloves/sterile/latex, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "dcc" = ( /obj/structure/holostool, /obj/effect/floor_decal/carpet{ @@ -3245,6 +3987,13 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"dcP" = ( +/obj/machinery/door/airlock/angled_tgmc/personal, +/obj/effect/floor_decal/milspec/color/white/half{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "ddi" = ( /obj/item/robot_parts/l_leg, /turf/unsimulated/floor{ @@ -3258,6 +4007,17 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_theatre) +"ddW" = ( +/obj/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/basic, +/obj/machinery/door/window/southright{ + dir = 8 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "deb" = ( /obj/structure/toilet, /turf/unsimulated/floor{ @@ -3314,6 +4074,26 @@ icon_state = "vault" }, /area/centcom/specops) +"dhL" = ( +/obj/structure/table/marble, +/obj/structure/sink/countertop{ + pixel_y = 11 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"dhM" = ( +/obj/item/weapon/bedsheet/double{ + pixel_y = -3; + pixel_x = -9 + }, +/obj/item/weapon/bedsheet/hosdouble{ + pixel_y = -4; + pixel_x = 10 + }, +/obj/item/toy/plushie/fluff, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "dja" = ( /turf/simulated/shuttle/wall, /area/shuttle/transport1/centcom) @@ -3325,6 +4105,13 @@ icon_state = "dark" }, /area/centcom/security) +"dkR" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/green, +/area/shadekin) "dlR" = ( /obj/effect/floor_decal/industrial/loading{ dir = 4 @@ -3353,6 +4140,52 @@ name = "plating" }, /area/skipjack_station) +"dmL" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/fancy/crayons{ + pixel_x = 11; + pixel_y = -3 + }, +/obj/item/weapon/storage/fancy/markers{ + pixel_x = 11; + pixel_y = 6 + }, +/obj/item/weapon/pen/multi{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/item/weapon/pen/multi{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/weapon/pen/multi{ + pixel_x = -6; + pixel_y = 7 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"dne" = ( +/obj/item/device/flashlight/lamp{ + pixel_y = 17; + pixel_x = -11 + }, +/obj/machinery/cash_register/civilian{ + dir = 4 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"dnv" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "dnP" = ( /obj/structure/table/rack, /obj/item/clothing/accessory/holster/waist, @@ -3367,14 +4200,38 @@ icon_state = "vault" }, /area/centcom/specops) +"dpC" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "dqg" = ( /obj/effect/shuttle_landmark/southern_cross/transport1_offsite, /turf/simulated/shuttle/floor, /area/shuttle/transport1/centcom) +"dqq" = ( +/obj/structure/table/standard, +/obj/random/soap, +/obj/random/soap, +/obj/effect/floor_decal/milspec/color/white, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "dqA" = ( /obj/machinery/door/airlock/glass, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"dqP" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8; + name = "Room 6" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "drY" = ( /obj/item/weapon/gun/energy/sonic, /turf/unsimulated/floor{ @@ -3475,6 +4332,19 @@ icon_state = "white" }, /area/centcom/medical) +"dyy" = ( +/obj/machinery/chemical_dispenser/bar_soft/full{ + dir = 8; + pixel_x = 13 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "dyT" = ( /obj/item/weapon/gun/launcher/spikethrower, /turf/unsimulated/floor{ @@ -3544,12 +4414,69 @@ icon_state = "wood" }, /area/wizard_station) +"dBt" = ( +/obj/structure/toilet/prison, +/obj/effect/floor_decal/milspec/color/white, +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "dBF" = ( /obj/effect/floor_decal/corner/red{ dir = 5 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"dBL" = ( +/obj/machinery/microwave{ + pixel_x = 2; + pixel_y = 21 + }, +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = -2; + pixel_x = 8 + }, +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = 2; + pixel_x = 8 + }, +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = 7; + pixel_x = 8 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"dBP" = ( +/obj/structure/bed/double/padded{ + pixel_y = 25; + pixel_x = 10 + }, +/obj/structure/bed/double/padded{ + pixel_x = 10 + }, +/obj/item/weapon/bedsheet/mimedouble{ + pixel_y = 27; + pixel_x = 10 + }, +/obj/item/weapon/bedsheet/mimedouble{ + pixel_y = 0; + pixel_x = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) +"dBV" = ( +/obj/effect/floor_decal/corner/green/diagonal, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) "dCb" = ( /obj/structure/table/rack, /obj/item/clothing/suit/storage/vest/heavy/merc{ @@ -3576,6 +4503,12 @@ icon_state = "dark" }, /area/syndicate_mothership/elite_squad) +"dCC" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "dCZ" = ( /obj/item/device/radio/intercom/specops{ pixel_y = -21 @@ -3610,13 +4543,19 @@ }, /area/wizard_station) "dFU" = ( -/obj/structure/table/marble, -/obj/item/weapon/material/knife/butch, -/obj/item/weapon/material/kitchen/rollingpin, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/toy/redbutton, +/obj/structure/table/wooden_reinforced, +/turf/simulated/floor/wood/sif, +/area/shadekin) +"dGf" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" }, -/turf/simulated/floor/tiled/techmaint, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/turf/simulated/floor/carpet/gaycarpet, /area/shadekin) "dGh" = ( /obj/structure/table/rack, @@ -3656,12 +4595,36 @@ icon_state = "dark" }, /area/centcom/security) +"dGT" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 6 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "dHj" = ( /obj/effect/floor_decal/corner/green/full{ dir = 8 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"dHk" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"dHs" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/random/junk, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "dHC" = ( /obj/machinery/door/airlock/external{ frequency = 1380; @@ -3721,6 +4684,17 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"dLV" = ( +/turf/simulated/shuttle/wall/dark/hard_corner, +/area/space) +"dMe" = ( +/obj/structure/kitchenspike, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 9 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "dNm" = ( /obj/item/weapon/tool/wrench, /turf/unsimulated/floor{ @@ -3853,10 +4827,17 @@ /turf/simulated/floor/holofloor/wood, /area/holodeck/source_courtroom) "dRZ" = ( -/obj/machinery/door/airlock/angled_bay/standard/color/common{ - dir = 4 +/obj/effect/floor_decal/emblem/itgdauntless{ + dir = 8; + pixel_y = -32; + name = "Dauntless Boots"; + desc = "Tired of your footwear breaking down with time? Why bother buying something that will eventually erode when you can realy on the Dauntless footwear. Now in gunmetal black!" }, -/turf/simulated/floor/tiled/steel_ridged, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"dSp" = ( +/obj/item/toy/plushie/farwa, +/turf/simulated/floor/reinforced, /area/shadekin) "dTr" = ( /obj/machinery/telecomms/relay/preset/southerncross/transit, @@ -3887,10 +4868,12 @@ }, /area/centcom/main_hall) "dUU" = ( -/obj/structure/bed/chair/bay/chair/padded/red/bignest{ - name = "large shadekin nest" +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel{ + dir = 4; + name = "Arrivals" }, -/turf/simulated/floor/carpet/gaycarpet, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techfloor/grid, /area/shadekin) "dVc" = ( /obj/effect/floor_decal/carpet{ @@ -3940,6 +4923,10 @@ name = "plating" }, /area/ninja_dojo/dojo) +"dWg" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "dWi" = ( /obj/effect/floor_decal/industrial/hatch/yellow, /turf/unsimulated/floor{ @@ -3952,6 +4939,20 @@ }, /turf/unsimulated/beach/sand, /area/beach) +"dWy" = ( +/obj/machinery/vending/snlvend, +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, +/area/shadekin) +"dWG" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "dWK" = ( /obj/item/stack/medical/ointment, /obj/item/stack/medical/ointment, @@ -3961,6 +4962,12 @@ icon_state = "lino" }, /area/tdome/tdomeadmin) +"dXi" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "dXk" = ( /obj/machinery/door/blast/regular{ id = "CREED"; @@ -3970,6 +4977,10 @@ icon_state = "steel" }, /area/centcom/command) +"dYi" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet, +/area/shadekin) "dYs" = ( /obj/machinery/door/airlock/hatch{ req_access = list(150) @@ -4043,11 +5054,26 @@ /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/supply) "eay" = ( -/obj/machinery/portable_atmospherics/hydroponics, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/itgdauntless{ + dir = 1; + pixel_y = -32; + name = "Internal Tactical Gear"; + desc = "Why bother with bags, when you the tools can be a part of you. ITG, effortless draw." }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"eaF" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) +"eci" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/sblucarpet, /area/shadekin) "ecF" = ( /obj/machinery/door/airlock{ @@ -4057,6 +5083,14 @@ icon_state = "freezerfloor" }, /area/centcom/specops) +"ecS" = ( +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/brown, +/area/shadekin) +"edw" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "edK" = ( /obj/effect/decal/cleanable/blood, /turf/unsimulated/floor{ @@ -4134,6 +5168,10 @@ icon_state = "dark" }, /area/wizard_station) +"ehg" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "ehy" = ( /obj/machinery/door/window/northright{ name = "Cargo Hold"; @@ -4141,6 +5179,15 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"eim" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 0; + dir = 4; + pixel_x = -6 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "ejt" = ( /obj/structure/table/woodentable{ dir = 5 @@ -4169,8 +5216,20 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/merchant) +"eke" = ( +/obj/structure/table/marble, +/obj/machinery/microwave{ + pixel_y = 19 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "eld" = ( -/turf/simulated/floor/plating, +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "emm" = ( /turf/simulated/floor/carpet/tealcarpet, @@ -4215,6 +5274,14 @@ icon_state = "vault" }, /area/centcom/specops) +"eoa" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "eos" = ( /obj/structure/table/rack, /obj/item/weapon/gun/energy/taser, @@ -4253,6 +5320,20 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"epg" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/turf/unsimulated/floor/dark, +/area/shadekin) +"epi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "epW" = ( /obj/vehicle/train/trolley, /turf/simulated/shuttle/floor/black, @@ -4312,10 +5393,22 @@ icon_state = "dark" }, /area/centcom/specops) +"esV" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/toy/eight_ball, +/turf/simulated/floor/wood/alt, +/area/shadekin) "euj" = ( /obj/structure/closet/secure_closet/personal, /turf/simulated/shuttle/floor, /area/centcom/evac) +"euq" = ( +/obj/structure/closet, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor, +/area/shadekin) "evp" = ( /obj/machinery/computer/teleporter{ dir = 2 @@ -4336,6 +5429,36 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"ewk" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) +"ewn" = ( +/obj/structure/table/standard, +/obj/item/weapon/storage/rollingpapers/blunt{ + pixel_y = 1; + pixel_x = -6 + }, +/obj/item/weapon/storage/rollingpapers{ + pixel_y = 0; + pixel_x = 8 + }, +/obj/item/weapon/storage/rollingpapers/blunt{ + pixel_y = 4; + pixel_x = -6 + }, +/obj/item/weapon/storage/rollingpapers{ + pixel_y = 3; + pixel_x = 8 + }, +/obj/item/weapon/storage/rollingpapers{ + pixel_y = 6; + pixel_x = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "ews" = ( /obj/structure/table/steel_reinforced, /obj/item/clothing/gloves/black, @@ -4421,11 +5544,22 @@ }, /area/ninja_dojo/dojo) "eAT" = ( -/obj/machinery/vending/hydronutrients, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/vending/event/costume, +/turf/simulated/floor/reinforced, +/area/shadekin) +"eBq" = ( +/obj/item/toy/baseball, +/turf/simulated/floor/reinforced, +/area/shadekin) +"eBr" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 }, -/turf/simulated/floor/tiled/techmaint, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/wood/sif, /area/shadekin) "eBX" = ( /obj/machinery/door/airlock/external{ @@ -4458,10 +5592,7 @@ /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/ninja) "eEJ" = ( -/mob/living/simple_mob/animal/passive/cat/kitten{ - name = "Enola" - }, -/turf/space, +/turf/unsimulated/floor/dark, /area/space) "eEM" = ( /turf/simulated/floor/carpet/gaycarpet, @@ -4476,6 +5607,17 @@ /obj/machinery/teleport/station, /turf/simulated/shuttle/plating, /area/shuttle/ninja) +"eGj" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) +"eGk" = ( +/obj/machinery/appliance/cooker/fryer, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "eGl" = ( /obj/machinery/door/airlock/external{ frequency = 1380; @@ -4487,6 +5629,14 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"eGz" = ( +/obj/item/weapon/bedsheet/greendouble, +/obj/item/weapon/bedsheet/hosdouble{ + pixel_y = 5; + pixel_x = 7 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "eGJ" = ( /obj/item/robot_parts/r_arm, /turf/unsimulated/floor{ @@ -4554,11 +5704,8 @@ }, /area/centcom/bar) "eLE" = ( -/obj/machinery/biogenerator, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/machinery/vending/event/food/ingredients, +/turf/simulated/floor/reinforced, /area/shadekin) "eMB" = ( /obj/structure/table/standard, @@ -4582,9 +5729,27 @@ icon_state = "steel" }, /area/centcom/living) +"eOs" = ( +/obj/structure/sink/kitchen{ + pixel_y = -18 + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "eOK" = ( /turf/simulated/shuttle/plating, /area/shuttle/escape_pod1/centcom) +"eOM" = ( +/obj/item/weapon/bedsheet/double{ + pixel_y = -3; + pixel_x = -9 + }, +/obj/item/weapon/bedsheet/hosdouble{ + pixel_y = -4; + pixel_x = 10 + }, +/obj/item/toy/plushie/fluff, +/turf/simulated/floor/carpet/green, +/area/shadekin) "eOY" = ( /obj/machinery/door/airlock/glass{ name = "Dock" @@ -4593,12 +5758,14 @@ icon_state = "steel" }, /area/centcom/terminal) +"eOZ" = ( +/obj/item/weapon/stool/padded, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "ePc" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/structure/sign/painting/public, +/turf/simulated/wall/tgmc/chigusa, /area/shadekin) "ePl" = ( /obj/machinery/atmospherics/portables_connector, @@ -4686,6 +5853,15 @@ icon_state = "vault" }, /area/centcom/specops) +"eQU" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "eRa" = ( /obj/effect/forcefield{ desc = "You can't get in. Heh."; @@ -4730,12 +5906,26 @@ }, /area/centcom/terminal) "eSU" = ( -/obj/structure/table/marble, -/obj/machinery/reagentgrinder, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/techfloor, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"eTi" = ( +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/effect/floor_decal/corner/black/diagonal, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"eTC" = ( +/obj/machinery/appliance/cooker/oven, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, /area/shadekin) "eTP" = ( /obj/effect/floor_decal/industrial/warning{ @@ -4819,13 +6009,8 @@ }, /area/centcom/security) "faE" = ( -/obj/structure/closet/secure_closet/hydroponics{ - locked = 0 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/machinery/vending/donksoft, +/turf/simulated/floor/reinforced, /area/shadekin) "faN" = ( /obj/structure/table/standard, @@ -4834,6 +6019,13 @@ icon_state = "wood" }, /area/skipjack_station) +"fbI" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "fcb" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/unsimulated/floor{ @@ -4854,6 +6046,11 @@ icon_state = "freezerfloor" }, /area/skipjack_station) +"fcH" = ( +/obj/random/obstruction, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) "feu" = ( /obj/machinery/shower{ dir = 1 @@ -4877,6 +6074,26 @@ name = "plating" }, /area/skipjack_station) +"ffE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) +"ffK" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) +"fgA" = ( +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "fgE" = ( /obj/structure/window/reinforced{ dir = 4 @@ -4944,6 +6161,10 @@ icon_state = "carpet" }, /area/centcom/command) +"fny" = ( +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "fnY" = ( /obj/structure/table/rack, /obj/item/weapon/melee/energy/sword, @@ -4951,6 +6172,13 @@ icon_state = "dark" }, /area/centcom/specops) +"foa" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 6 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "fps" = ( /obj/structure/bed/chair{ dir = 4 @@ -4970,6 +6198,19 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"fqr" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"fqz" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "fqC" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ dir = 4; @@ -4982,6 +6223,15 @@ /obj/effect/shuttle_landmark/southern_cross/merchant_offsite, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"fro" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/stellardelight/center{ + pixel_y = 32; + name = "Stellar Delight Cruise"; + desc = "Vacation? Consider our Stellar Delight Cruise! Drift away to a galactic paradise with all of your needs covered while discovering the most beautiful spots of the milkyway." + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "frQ" = ( /obj/structure/window/reinforced/survival_pod{ dir = 4; @@ -4989,6 +6239,16 @@ }, /turf/unsimulated/floor/dark, /area/shadekin) +"fsD" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "fti" = ( /obj/fiftyspawner/rods, /turf/unsimulated/floor{ @@ -5005,6 +6265,13 @@ icon_state = "steel" }, /area/centcom/bar) +"fuU" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/mob/living/simple_mob/animal/sif/glitterfly/rare, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "fvh" = ( /obj/structure/table/reinforced, /obj/item/weapon/paper_bin, @@ -5016,6 +6283,15 @@ icon_state = "dark" }, /area/centcom/security) +"fvv" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/machinery/light{ + dir = 4; + light_color = "#DDFFD3"; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "fvD" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/unsimulated/floor{ @@ -5042,6 +6318,22 @@ }, /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/response_ship) +"fxx" = ( +/obj/item/toy/plushie/girly_corgi{ + pixel_y = 7; + pixel_x = -12 + }, +/obj/item/toy/plushie/squid/blue{ + pixel_y = -8; + pixel_x = 7 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"fxD" = ( +/obj/structure/closet/crate/hydroponics, +/obj/random/maintenance, +/turf/simulated/floor, +/area/shadekin) "fxL" = ( /obj/item/clothing/mask/gas/swat/vox, /turf/unsimulated/floor{ @@ -5082,6 +6374,14 @@ "fAw" = ( /turf/simulated/shuttle/wall/hard_corner, /area/shuttle/supply) +"fAI" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain/open/shower, +/obj/random/soap, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "fAS" = ( /turf/unsimulated/beach/sand{ icon_state = "beach" @@ -5098,9 +6398,15 @@ }, /area/wizard_station) "fBC" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lamp/green, -/turf/simulated/floor/wood/sif, +/obj/structure/bed/double{ + pixel_y = 0; + pixel_x = 10 + }, +/obj/item/weapon/bedsheet/browndouble{ + pixel_y = 0; + pixel_x = 10 + }, +/turf/simulated/floor/carpet/turcarpet, /area/shadekin) "fDt" = ( /obj/machinery/shower{ @@ -5152,20 +6458,11 @@ /turf/simulated/shuttle/plating, /area/centcom/evac) "fGQ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 +/obj/effect/floor_decal/milspec/monotile, +/obj/effect/floor_decal/milspec/stripe{ + dir = 4 }, -/obj/structure/mirror{ - dir = 4; - pixel_x = -28; - pixel_y = 8 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/milspec/sterile, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "fHO" = ( /obj/machinery/atm{ @@ -5173,6 +6470,16 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"fHP" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8; + name = "Room 1" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "fIh" = ( /obj/effect/floor_decal/corner/red{ dir = 5 @@ -5203,7 +6510,20 @@ }, /area/syndicate_station) "fJc" = ( -/turf/simulated/floor/wood/alt/broken, +/obj/effect/floor_decal/milspec/stripe{ + dir = 4 + }, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"fJh" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "fJi" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -5237,6 +6557,11 @@ "fKq" = ( /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"fKz" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "fME" = ( /obj/structure/table/rack, /obj/item/clothing/suit/armor/vest/ert/command, @@ -5259,12 +6584,38 @@ icon_state = "vault" }, /area/centcom/specops) +"fMY" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/bronze, +/area/shadekin) "fNJ" = ( /obj/structure/undies_wardrobe, /turf/unsimulated/floor{ icon_state = "freezerfloor" }, /area/syndicate_station) +"fNL" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/obj/structure/flora/pottedplant/bamboo{ + pixel_y = 10; + name = "Brono" + }, +/turf/simulated/floor/carpet/brown, +/area/shadekin) +"fPF" = ( +/obj/effect/floor_decal/corner/brown/diagonal, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) "fQK" = ( /obj/structure/table/reinforced, /obj/item/weapon/tool/crowbar, @@ -5290,8 +6641,8 @@ }, /area/centcom/specops) "fRb" = ( -/obj/machinery/door/airlock/angled_bay/standard/color/common, -/turf/simulated/floor/tiled/steel_ridged, +/obj/structure/table/rack/shelf/steel, +/turf/simulated/floor/carpet/green, /area/shadekin) "fRj" = ( /turf/unsimulated/wall, @@ -5336,6 +6687,17 @@ icon_state = "freezerfloor" }, /area/syndicate_station) +"fSM" = ( +/obj/structure/sign/clock, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) +"fSV" = ( +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "fSY" = ( /obj/structure/table/steel_reinforced, /obj/item/device/mmi/radio_enabled, @@ -5349,6 +6711,13 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"fTX" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "fVX" = ( /turf/unsimulated/wall{ icon = 'icons/obj/doors/Doormaint.dmi'; @@ -5392,6 +6761,17 @@ /obj/machinery/light, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"fXP" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "fXS" = ( /obj/structure/sign/electricshock, /turf/simulated/shuttle/wall/dark/hard_corner, @@ -5424,6 +6804,10 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"fZr" = ( +/obj/effect/floor_decal/milspec/cargo, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "fZx" = ( /obj/machinery/vending/engivend, /turf/unsimulated/floor{ @@ -5471,6 +6855,22 @@ name = "plating" }, /area/ninja_dojo/dojo) +"gbO" = ( +/obj/item/weapon/material/kitchen/rollingpin, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"gcg" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/yjunction, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "gcC" = ( /obj/machinery/pipedispenser/orderable, /turf/unsimulated/floor{ @@ -5478,9 +6878,32 @@ icon_state = "vault" }, /area/centcom/specops) +"gcV" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ + pixel_x = 3 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "gdn" = ( /turf/simulated/floor/holofloor/beach/water, /area/holodeck/source_beach) +"geM" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/bed/chair/bay/chair/padded/red/bignest{ + name = "large shadekin nest" + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "ggj" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/simulated/floor/holofloor/desert, @@ -5525,11 +6948,18 @@ }, /area/wizard_station) "ghs" = ( -/obj/structure/table/marble, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/bed/chair/oldsofa{ + dir = 1 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) +"ghB" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/toilet/prison{ + dir = 4; + name = "toilet" + }, +/turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "ghD" = ( /obj/effect/floor_decal/corner/white/diagonal, @@ -5567,6 +6997,22 @@ /obj/effect/map_helper/airlock/button/ext_button, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/ninja) +"gjv" = ( +/obj/item/toy/plushie/box{ + pixel_y = -6; + pixel_x = 5 + }, +/obj/item/toy/plushie/borgplushie/drake/eng{ + pixel_y = -8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"gjw" = ( +/mob/living/simple_mob/animal/passive/cat/kitten{ + name = "Enola" + }, +/turf/simulated/shuttle/wall/dark/hard_corner, +/area/space) "gjN" = ( /obj/machinery/airlock_sensor{ id_tag = null; @@ -5589,6 +7035,12 @@ /obj/machinery/meter, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/ninja) +"gko" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "gld" = ( /obj/structure/table/glass, /obj/item/weapon/reagent_containers/blood/OMinus, @@ -5602,6 +7054,18 @@ icon_state = "white" }, /area/centcom/medical) +"glC" = ( +/obj/item/toy/plushie/blue_fox, +/obj/item/toy/plushie/borgplushie/medihound{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/item/toy/plushie/slimeplushie{ + pixel_y = 15; + pixel_x = 14 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "glO" = ( /obj/structure/table/standard, /obj/item/weapon/storage/toolbox/electrical, @@ -5655,12 +7119,25 @@ }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/ninja) +"gok" = ( +/obj/structure/bed/chair/wood/wings{ + dir = 1 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "goE" = ( /obj/effect/floor_decal/industrial/warning/corner{ dir = 1 }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/ninja) +"goW" = ( +/obj/random/junk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor, +/area/shadekin) "gpo" = ( /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/ninja) @@ -5672,6 +7149,28 @@ /obj/machinery/door/airlock/glass, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"gsl" = ( +/obj/structure/closet/crate/hydroponics{ + desc = "All you need to start your own honey farm."; + name = "beekeeping crate" + }, +/obj/item/beehive_assembly, +/obj/item/bee_smoker, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/bee_pack, +/obj/item/weapon/tool/crowbar, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"gsq" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/turf/unsimulated/floor/dark, +/area/shadekin) "guJ" = ( /obj/machinery/light{ dir = 8 @@ -5682,6 +7181,11 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"guK" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/autolathe, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "gvn" = ( /obj/structure/table/steel_reinforced, /obj/item/weapon/storage/firstaid/adv{ @@ -5738,12 +7242,24 @@ icon_state = "vault" }, /area/centcom/bar) -"gxy" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/effect/floor_decal/rust{ - color = "black" +"gxa" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) +"gxy" = ( +/obj/item/toy/plushie/borgplushie/drake/mine, +/obj/item/toy/plushie/carp/ice{ + pixel_y = -5; + pixel_x = -7 + }, +/obj/item/toy/plushie/coffee_fox{ + pixel_x = 7; + pixel_y = 12 + }, +/turf/simulated/floor/reinforced, /area/shadekin) "gxT" = ( /obj/effect/landmark{ @@ -5757,6 +7273,10 @@ /obj/machinery/vending/coffee, /turf/simulated/shuttle/floor/yellow, /area/centcom/evac) +"gyC" = ( +/obj/structure/loot_pile/maint/junk, +/turf/simulated/floor, +/area/shadekin) "gyJ" = ( /obj/machinery/door/blast/regular{ id = "thunderdomeaxe"; @@ -5772,20 +7292,28 @@ icon_state = "wood" }, /area/skipjack_station) +"gzT" = ( +/obj/machinery/beehive, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "gAy" = ( /obj/structure/holostool, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"gBb" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "gBc" = ( -/obj/structure/table/rack/gun_rack/steel, -/obj/structure/window/reinforced/survival_pod{ - dir = 4; - opacity = 1 +/obj/structure/table/marble, +/obj/machinery/microwave{ + pixel_y = 19 }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, /area/shadekin) "gCg" = ( /obj/machinery/recharger/wallcharger{ @@ -5801,6 +7329,15 @@ icon_state = "dark" }, /area/centcom/specops) +"gCM" = ( +/obj/structure/table/rack/shelf/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/medical, +/obj/random/maintenance/medical, +/obj/random/maintenance/medical, +/obj/random/maintenance/medical, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "gCY" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/table/marble, @@ -5845,12 +7382,27 @@ /obj/effect/map_helper/airlock/door/int_door, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"gDN" = ( +/obj/item/weapon/bedsheet/browndouble, +/obj/item/weapon/bedsheet/hopdouble{ + pixel_y = -11; + pixel_x = 7 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "gDO" = ( /obj/structure/shuttle/engine/propulsion{ icon_state = "burst_r" }, /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/supply) +"gEf" = ( +/obj/item/toy/plushie/marble_fox{ + pixel_y = -8; + pixel_x = -17 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "gEr" = ( /obj/effect/floor_decal/corner/blue{ dir = 5 @@ -5941,6 +7493,20 @@ icon_state = "white" }, /area/skipjack_station) +"gIe" = ( +/obj/effect/floor_decal/emblem/black{ + name = "Hecate Guardian"; + desc = "Enough firepower to terminate a battlecruiser, never feel unsafe for the right prize!" + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) +"gIw" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor, +/area/shadekin) "gIK" = ( /obj/structure/kitchenspike, /turf/unsimulated/floor{ @@ -5966,6 +7532,31 @@ name = "Shuttle Bay Blast Door" }, /area/skipjack_station) +"gKE" = ( +/obj/effect/floor_decal/spline/fancy{ + dir = 1 + }, +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 0; + dir = 4; + pixel_x = -6 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) +"gKI" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + nightshift_enabled = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "gKZ" = ( /obj/structure/table/rack, /obj/item/ammo_magazine/m9mmt, @@ -6030,6 +7621,23 @@ icon_state = "dark" }, /area/syndicate_station) +"gON" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor/hole{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"gPr" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "gPu" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box/donut, @@ -6085,16 +7693,48 @@ /turf/simulated/shuttle/plating, /area/centcom/evac) "gRf" = ( -/obj/structure/bed/chair/bay/chair/padded/red/bignest{ - name = "large shadekin nest" +/obj/effect/floor_decal/spline/fancy{ + dir = 2; + icon_state = "spline_fancy_cee" }, -/turf/simulated/floor/carpet/green, +/obj/structure/flora/lily3, +/turf/simulated/floor/water/deep/pool, +/area/shadekin) +"gSa" = ( +/obj/effect/floor_decal/spline/fancy{ + dir = 1 + }, +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 0; + dir = 4; + pixel_x = -6 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) +"gSp" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light{ + dir = 4; + light_color = "#DDFFD3"; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "gTd" = ( /turf/unsimulated/floor{ icon_state = "freezerfloor" }, /area/syndicate_station) +"gTx" = ( +/obj/machinery/appliance/cooker/oven, +/obj/effect/floor_decal/corner/black/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "gTz" = ( /obj/effect/floor_decal/corner/white, /turf/unsimulated/floor{ @@ -6200,6 +7840,13 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"gWI" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) "gWP" = ( /obj/machinery/recharge_station, /turf/unsimulated/floor{ @@ -6262,6 +7909,20 @@ /obj/structure/flora/lily2, /turf/simulated/floor/water/deep/pool, /area/shadekin) +"hah" = ( +/obj/machinery/seed_storage/garden, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"haD" = ( +/obj/structure/closet/crate, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/research, +/obj/random/maintenance/research, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "hbs" = ( /obj/effect/floor_decal/carpet{ dir = 4 @@ -6290,6 +7951,19 @@ name = "plating" }, /area/wizard_station) +"hbJ" = ( +/obj/structure/bed/double/padded{ + pixel_y = 25 + }, +/obj/structure/bed/double/padded{ + pixel_y = 0 + }, +/obj/item/weapon/bedsheet/mimedouble{ + pixel_y = 26 + }, +/obj/item/weapon/bedsheet/mimedouble, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) "hcd" = ( /obj/structure/closet/secure_closet/security, /obj/effect/floor_decal/corner/red/full{ @@ -6300,11 +7974,10 @@ }, /area/centcom/security) "hcK" = ( -/obj/machinery/door/airlock/angled_tgmc/personal, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/simulated/floor/tiled/milspec/sterile, +/turf/simulated/floor/wood/alt/broken, /area/shadekin) "hdj" = ( /obj/machinery/computer/pod{ @@ -6333,6 +8006,20 @@ /obj/effect/map_helper/airlock/door/ext_door, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"hel" = ( +/obj/effect/floor_decal/milspec/monotile, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"hem" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/bed/chair/bay/chair/padded/red/bignest{ + name = "large shadekin nest" + }, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "heI" = ( /obj/structure/table/glass, /obj/structure/window/reinforced{ @@ -6367,6 +8054,14 @@ icon_state = "white" }, /area/centcom/medical) +"heO" = ( +/obj/item/toy/plushie/borgplushie/drake/trauma, +/obj/item/toy/plushie/squid/yellow{ + pixel_y = -7; + pixel_x = -15 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "heQ" = ( /obj/item/toy/chess/bishop_black, /turf/simulated/floor/holofloor/wmarble, @@ -6409,19 +8104,11 @@ }, /area/centcom/terminal) "hgO" = ( -/obj/structure/table/marble, -/obj/item/weapon/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 6 }, -/obj/item/weapon/reagent_containers/glass/beaker{ - pixel_x = 5 - }, -/obj/item/weapon/reagent_containers/food/condiment/enzyme, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "hhn" = ( /obj/structure/table/glass, @@ -6449,6 +8136,15 @@ icon_state = "dark" }, /area/centcom/specops) +"hjx" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/kitchen{ + locked = 0 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "hjU" = ( /obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ pixel_x = -6 @@ -6489,9 +8185,83 @@ icon_state = "steel" }, /area/centcom/bar) +"hlq" = ( +/obj/item/weapon/bedsheet/hopdouble{ + pixel_x = 7; + pixel_y = 11 + }, +/obj/item/weapon/bedsheet/browndouble{ + pixel_y = -2; + pixel_x = 15 + }, +/obj/item/weapon/bedsheet/piratedouble{ + pixel_y = 1; + pixel_x = -5 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) +"hlD" = ( +/obj/structure/undies_wardrobe, +/obj/item/weapon/towel/random{ + pixel_y = 10; + pixel_x = 5 + }, +/obj/item/weapon/towel/random{ + pixel_y = 15; + pixel_x = 5 + }, +/obj/item/weapon/towel/random{ + pixel_y = 10; + pixel_x = 5 + }, +/obj/item/weapon/towel/random{ + pixel_y = 9; + pixel_x = -7 + }, +/obj/item/weapon/towel/random{ + pixel_y = 15; + pixel_x = 5 + }, +/obj/item/weapon/towel/random{ + pixel_y = 15; + pixel_x = 5 + }, +/obj/item/weapon/towel/random{ + pixel_y = 14; + pixel_x = -7 + }, +/obj/item/weapon/towel/random{ + pixel_y = 9; + pixel_x = -7 + }, +/obj/item/weapon/towel/random{ + pixel_y = 9; + pixel_x = -7 + }, +/obj/item/weapon/towel/random{ + pixel_y = 14; + pixel_x = -7 + }, +/obj/item/weapon/towel/random{ + pixel_y = 14; + pixel_x = -7 + }, +/obj/machinery/light/small{ + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "hlJ" = ( /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_emptycourt) +"hlL" = ( +/obj/structure/flora/ausbushes/ppflowers, +/obj/effect/floor_decal/spline/fancy{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy, +/turf/simulated/floor/grass2, +/area/shadekin) "hlP" = ( /obj/machinery/access_button{ dir = 8; @@ -6513,6 +8283,20 @@ icon_state = "floor_red" }, /area/centcom/evac) +"hmy" = ( +/obj/machinery/chemical_dispenser/bar_alc/full{ + dir = 8; + pixel_y = 0; + pixel_x = 14 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "hmT" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -6559,6 +8343,23 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"hol" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) +"hop" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "hoC" = ( /turf/simulated/floor/weird_things/dark{ nitrogen = 93.7835; @@ -6686,7 +8487,11 @@ /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) "huK" = ( -/turf/simulated/floor/carpet/purple, +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "huM" = ( /turf/unsimulated/floor{ @@ -6852,6 +8657,9 @@ name = "plating" }, /area/wizard_station) +"hEP" = ( +/turf/simulated/floor/water/hotspring, +/area/shadekin) "hEQ" = ( /obj/machinery/door/window/northleft{ name = "Cargo Hold"; @@ -6875,6 +8683,22 @@ icon_state = "dark" }, /area/centcom/specops) +"hFG" = ( +/obj/item/toy/plushie/borgplushie/medihound, +/obj/item/toy/plushie/nukeplushie{ + pixel_y = 10; + pixel_x = 15 + }, +/obj/item/toy/plushie/snakeplushie{ + pixel_y = 9; + pixel_x = -9 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"hGu" = ( +/obj/machinery/beehive, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "hGO" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -6904,6 +8728,40 @@ }, /turf/simulated/floor/holofloor/lino, /area/holodeck/source_meetinghall) +"hHc" = ( +/obj/item/weapon/reagent_containers/food/condiment/small/sugar, +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/spicy{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"hIC" = ( +/obj/item/toy/plushie/black_cat, +/obj/item/toy/plushie/carp/electric{ + pixel_y = 7; + pixel_x = 4 + }, +/obj/item/toy/plushie/red_fox{ + pixel_y = 14; + pixel_x = 9 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"hIJ" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/dispenser, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "hIM" = ( /obj/structure/table/rack, /obj/item/ammo_magazine/ammo_box/b12g/pellet, @@ -7084,14 +8942,20 @@ /obj/structure/morgue, /turf/simulated/shuttle/floor/white, /area/centcom/evac) -"hRJ" = ( -/obj/structure/table/standard, -/obj/random/soap, -/obj/random/soap, -/obj/effect/floor_decal/rust{ - color = "black" +"hRE" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" }, -/turf/simulated/floor/tiled/milspec/sterile, +/obj/structure/bed/padded, +/obj/item/weapon/bedsheet/captain, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) +"hRJ" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/turf/simulated/floor/carpet/green, /area/shadekin) "hSz" = ( /obj/machinery/light{ @@ -7120,6 +8984,14 @@ icon_state = "vault" }, /area/centcom/specops) +"hTV" = ( +/obj/structure/kitchenspike, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "hUu" = ( /obj/machinery/light{ dir = 4 @@ -7129,6 +9001,12 @@ }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/ninja) +"hUC" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "hUS" = ( /obj/effect/landmark{ name = "voxstart" @@ -7153,6 +9031,12 @@ "hVd" = ( /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_boxingcourt) +"hVi" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "hVL" = ( /obj/machinery/door/airlock/medical, /turf/unsimulated/floor{ @@ -7184,6 +9068,19 @@ }, /turf/simulated/floor/wood/alt, /area/shadekin) +"hXb" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) +"hXA" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/table/reinforced, +/obj/fiftyspawner/glass, +/obj/fiftyspawner/glass, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "hYu" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 @@ -7268,6 +9165,18 @@ color = "teal" }, /area/holodeck/source_chess) +"icd" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "idf" = ( /obj/item/device/radio/intercom{ desc = "Talk through this. Evilly"; @@ -7314,6 +9223,10 @@ /obj/structure/holostool, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"ifb" = ( +/obj/machinery/vending/cola/soft, +/turf/simulated/floor/reinforced, +/area/shadekin) "ifX" = ( /turf/simulated/shuttle/plating, /area/shuttle/escape_pod5/centcom) @@ -7345,6 +9258,10 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/merchant) +"igG" = ( +/obj/machinery/vending/radren, +/turf/simulated/floor/reinforced, +/area/shadekin) "ihi" = ( /turf/simulated/floor/holofloor/wood, /area/holodeck/source_chess) @@ -7355,18 +9272,30 @@ /turf/simulated/shuttle/floor/red, /area/shuttle/administration) "ihW" = ( -/obj/structure/table/rack/shelf, -/obj/effect/floor_decal/rust{ - color = "black" - }, +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/milspec/cargo, /turf/simulated/floor/tiled/techmaint, /area/shadekin) +"iis" = ( +/obj/machinery/vending/event/food/safe, +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, +/area/shadekin) "iiH" = ( /obj/effect/floor_decal/corner/red{ dir = 5 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_boxingcourt) +"ijD" = ( +/obj/effect/floor_decal/milspec/stripe{ + dir = 9 + }, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "ijG" = ( /obj/effect/floor_decal/industrial/warning{ dir = 10 @@ -7398,6 +9327,16 @@ icon_state = "dark" }, /area/syndicate_station) +"ilG" = ( +/obj/machinery/door/window/southright{ + dir = 4 + }, +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light/small{ + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "imv" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box/bodybags{ @@ -7412,6 +9351,11 @@ /obj/effect/floor_decal/spline/fancy/wood/corner, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) +"inT" = ( +/obj/structure/table/bench/marble, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/carpet/green, +/area/shadekin) "inZ" = ( /obj/machinery/porta_turret/crescent, /obj/effect/floor_decal/industrial/hatch/yellow, @@ -7449,6 +9393,12 @@ }, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) +"ioS" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "ipT" = ( /obj/machinery/vending/security, /turf/unsimulated/floor{ @@ -7456,6 +9406,15 @@ icon_state = "vault" }, /area/centcom/specops) +"iqJ" = ( +/obj/machinery/door/airlock/angled_tgmc/maintenance{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "irb" = ( /obj/structure/flora/ausbushes/brflowers, /obj/effect/floor_decal/spline/fancy/wood, @@ -7500,6 +9459,16 @@ icon_state = "vault" }, /area/centcom/command) +"isj" = ( +/obj/structure/table/rack/gun_rack/steel, +/obj/structure/window/reinforced/survival_pod{ + dir = 4; + opacity = 1 + }, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/instrument, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "iti" = ( /obj/structure/table/rack, /obj/item/weapon/tank/jetpack/carbondioxide, @@ -7517,6 +9486,54 @@ icon_state = "dark" }, /area/syndicate_station) +"itl" = ( +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/glasses/square{ + pixel_y = -2 + }, +/obj/item/weapon/storage/box/glass_extras/straws{ + pixel_y = 7 + }, +/obj/item/weapon/packageWrap, +/obj/item/weapon/packageWrap, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppergrinder{ + pixel_y = 2; + pixel_x = 5 + }, +/obj/structure/curtain/open/bed, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"itH" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "itN" = ( /obj/structure/table/standard, /obj/effect/floor_decal/industrial/warning/corner{ @@ -7561,6 +9578,11 @@ icon_state = "steel" }, /area/centcom/bar) +"ivs" = ( +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "ivB" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/machinery/vending/dinnerware, @@ -7613,6 +9635,13 @@ icon_state = "freezerfloor" }, /area/syndicate_station) +"iwo" = ( +/obj/structure/curtain/open/shower, +/obj/machinery/shower{ + pixel_y = 16 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "iwL" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box/bodybags{ @@ -7633,6 +9662,10 @@ icon_state = "freezerfloor" }, /area/centcom/bar) +"ixI" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "ixP" = ( /obj/effect/floor_decal/carpet{ dir = 8 @@ -7647,13 +9680,7 @@ /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_theatre) "iye" = ( -/obj/structure/table/marble, -/obj/item/device/flashlight/lamp, -/obj/item/weapon/reagent_containers/food/drinks/teapot, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/unsimulated/elevator_shaft, /area/shadekin) "iyB" = ( /obj/machinery/door/airlock{ @@ -7663,6 +9690,16 @@ icon_state = "freezerfloor" }, /area/syndicate_station) +"iyX" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8; + name = "Room 2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "izq" = ( /obj/structure/toilet{ dir = 8 @@ -7699,9 +9736,29 @@ /obj/machinery/sleep_console, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"iAz" = ( +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/obj/effect/floor_decal/emblem/stellardelight{ + dir = 8; + pixel_y = 32; + name = "Stellar Delight Cruise"; + desc = "Vacation? Consider our Stellar Delight Cruise! Drift away to a galactic paradise with all of your needs covered while discovering the most beautiful spots of the milkyway." + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "iBf" = ( /turf/simulated/floor/airless, /area/shuttle/syndicate_elite/mothership) +"iBk" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 5 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "iBZ" = ( /obj/item/pizzabox/meat, /turf/simulated/shuttle/floor/red, @@ -7738,6 +9795,16 @@ icon_state = "vault" }, /area/centcom/specops) +"iDg" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 9 + }, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "iDH" = ( /obj/structure/table/steel_reinforced, /obj/item/device/paicard, @@ -7794,6 +9861,20 @@ icon_state = "white" }, /area/centcom/medical) +"iFK" = ( +/obj/machinery/chemical_dispenser/bar_coffee/full{ + dir = 8; + pixel_y = 0; + pixel_x = 14 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "iGP" = ( /obj/structure/bed/padded, /obj/item/weapon/bedsheet/blue, @@ -7801,6 +9882,9 @@ icon_state = "wood" }, /area/skipjack_station) +"iGQ" = ( +/turf/simulated/floor/carpet/brown, +/area/shadekin) "iHc" = ( /obj/machinery/door/airlock/glass, /turf/simulated/shuttle/floor, @@ -7843,6 +9927,13 @@ icon_state = "dark" }, /area/shuttle/trade) +"iIH" = ( +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel{ + dir = 8; + name = "Greenhouse" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "iJS" = ( /turf/simulated/shuttle/wall/no_join{ base_state = "orange"; @@ -7859,6 +9950,19 @@ icon_state = "white" }, /area/centcom/medical) +"iKH" = ( +/obj/structure/table/marble, +/obj/machinery/chemical_dispenser/bar_alc/full{ + dir = 8; + pixel_y = 0; + pixel_x = 14 + }, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "iLy" = ( /obj/machinery/iv_drip, /turf/simulated/shuttle/floor/black, @@ -7879,6 +9983,17 @@ /obj/structure/holostool, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_boxingcourt) +"iNt" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) +"iOa" = ( +/obj/structure/table/rack/shelf/steel, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "iOe" = ( /obj/machinery/conveyor{ dir = 8; @@ -7908,6 +10023,10 @@ icon_state = "asteroid" }, /area/skipjack_station) +"iQW" = ( +/obj/machinery/door/airlock/angled_tgmc/wide, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "iQX" = ( /obj/effect/floor_decal/carpet{ dir = 4 @@ -7953,10 +10072,9 @@ }, /area/centcom/specops) "iSO" = ( -/obj/machinery/door/airlock/angled_bay/standard/color/engineering{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel_ridged, +/obj/machinery/vending/foodasian, +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, /area/shadekin) "iTc" = ( /obj/effect/floor_decal/carpet{ @@ -7976,6 +10094,13 @@ icon_state = "dark" }, /area/centcom/security) +"iTr" = ( +/obj/structure/bed/double, +/obj/item/weapon/bedsheet/browndouble{ + pixel_x = -6 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "iTJ" = ( /obj/structure/table/standard, /obj/item/weapon/storage/toolbox/mechanical, @@ -7994,6 +10119,17 @@ icon_state = "vault" }, /area/centcom/specops) +"iTN" = ( +/obj/structure/table/standard, +/obj/item/weapon/material/knife/machete/hatchet, +/obj/item/weapon/material/minihoe{ + pixel_y = 3; + pixel_x = 7 + }, +/obj/item/weapon/reagent_containers/glass/bucket, +/obj/item/weapon/reagent_containers/glass/bucket, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "iUi" = ( /obj/machinery/door/airlock/centcom{ name = "Suit Storage" @@ -8081,6 +10217,13 @@ icon_state = "vault" }, /area/centcom/bar) +"iXW" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) "iYC" = ( /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) @@ -8099,6 +10242,20 @@ icon_state = "steel" }, /area/centcom/terminal) +"jai" = ( +/obj/structure/table/rack/shelf/steel, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"jar" = ( +/obj/structure/bed/chair/backed_red{ + dir = 4 + }, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "jaP" = ( /obj/machinery/light/small{ dir = 4 @@ -8122,6 +10279,63 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/escape/centcom) +"jcu" = ( +/obj/item/weapon/storage/box/glasses/coffeecup{ + pixel_x = -6; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/glasses/coffeemug{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/weapon/storage/box/glasses/square{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/item/weapon/storage/box/buns{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/buns{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/weapon/storage/box/brainzsnax{ + pixel_y = 19; + pixel_x = 9 + }, +/obj/item/weapon/storage/box/brainzsnax/red{ + pixel_y = 19; + pixel_x = 9 + }, +/obj/item/weapon/storage/box/condimentbottles{ + pixel_y = 19; + pixel_x = -6 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"jdd" = ( +/obj/item/weapon/bedsheet/browndouble, +/obj/item/weapon/bedsheet/hopdouble{ + pixel_y = -11; + pixel_x = 7 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) +"jdn" = ( +/obj/structure/closet/crate, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/obj/random/coin/sometimes, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jee" = ( /obj/structure/closet/secure_closet/freezer/meat, /turf/unsimulated/floor{ @@ -8145,6 +10359,13 @@ }, /turf/unsimulated/beach/sand, /area/beach) +"jfb" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "jfd" = ( /turf/simulated/shuttle/floor/darkred, /area/shuttle/merchant) @@ -8191,6 +10412,13 @@ }, /turf/unsimulated/beach/sand, /area/beach) +"jhH" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "jhV" = ( /obj/structure/closet/secure_closet/medical_wall{ name = "O- Blood Locker"; @@ -8207,6 +10435,19 @@ icon_state = "white" }, /area/centcom/medical) +"jiq" = ( +/obj/structure/table/marble, +/obj/machinery/chemical_dispenser/bar_alc/full{ + dir = 8; + pixel_y = 0; + pixel_x = 14 + }, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "jiP" = ( /obj/machinery/shieldwallgen, /turf/unsimulated/floor{ @@ -8255,8 +10496,11 @@ }, /area/centcom/specops) "jlq" = ( -/obj/structure/bed/psych, -/turf/simulated/floor/wood/alt, +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/retro_red, /area/shadekin) "jlK" = ( /obj/effect/floor_decal/industrial/warning{ @@ -8278,6 +10522,23 @@ icon_state = "white" }, /area/centcom/medical) +"jmh" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) +"jmT" = ( +/obj/machinery/beehive, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) +"jni" = ( +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jog" = ( /obj/structure/bed/chair{ dir = 4 @@ -8296,20 +10557,8 @@ /turf/simulated/floor/holofloor/beach/sand, /area/holodeck/source_beach) "jom" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12; - pixel_y = 2 - }, -/obj/structure/mirror{ - dir = 8; - pixel_x = 28; - pixel_y = 9 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/milspec/sterile, +/obj/machinery/door/airlock/angled_bay/standard/glass/common, +/turf/simulated/floor/tiled/techfloor/grid, /area/shadekin) "joq" = ( /obj/effect/floor_decal/spline/plain{ @@ -8328,6 +10577,16 @@ name = "plating" }, /area/skipjack_station) +"jpn" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "jpJ" = ( /obj/item/weapon/storage/box, /turf/unsimulated/floor{ @@ -8421,6 +10680,13 @@ /obj/structure/fans/tiny, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"jvB" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "jvE" = ( /obj/machinery/vending/snack{ dir = 4; @@ -8431,6 +10697,14 @@ icon_state = "dark" }, /area/syndicate_station) +"jvF" = ( +/obj/item/weapon/hand_labeler, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jvL" = ( /obj/structure/sign/scenery/map/left{ pixel_y = 32 @@ -8574,6 +10848,22 @@ name = "plating" }, /area/syndicate_station) +"jCF" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) +"jDl" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"jDB" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/vending/assist, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "jEg" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box/autoinjectors, @@ -8614,6 +10904,17 @@ icon_state = "dark" }, /area/centcom/command) +"jGm" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/structure/table/rack/gun_rack/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/mech_toy, +/obj/random/mech_toy, +/obj/random/mech_toy, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jGv" = ( /obj/structure/grille, /obj/structure/window/reinforced{ @@ -8634,6 +10935,12 @@ "jGH" = ( /turf/simulated/floor/holofloor/wood, /area/holodeck/source_meetinghall) +"jHA" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "jHG" = ( /obj/structure/bed/padded, /obj/item/weapon/bedsheet/hos, @@ -8691,6 +10998,17 @@ icon_state = "vault" }, /area/tdome) +"jJl" = ( +/obj/effect/floor_decal/techfloor, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jKl" = ( /obj/machinery/door/airlock{ icon = 'icons/obj/doors/Dooruranium.dmi' @@ -8757,6 +11075,12 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/ninja) +"jMh" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) "jMM" = ( /obj/structure/table/woodentable/holotable, /turf/simulated/floor/holofloor/wood, @@ -8771,6 +11095,17 @@ icon_state = "steel" }, /area/centcom/command) +"jNr" = ( +/obj/structure/flora/bboulder2, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) +"jNs" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) "jNE" = ( /obj/effect/floor_decal/carpet{ dir = 8 @@ -8792,6 +11127,16 @@ name = "plating" }, /area/skipjack_station) +"jPi" = ( +/obj/structure/table/hardwoodtable, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/obj/random/junk, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) "jPL" = ( /obj/effect/floor_decal/industrial/warning, /obj/structure/closet/crate/internals, @@ -8804,12 +11149,48 @@ icon_state = "vault" }, /area/centcom/specops) +"jQF" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "jQU" = ( /obj/effect/floor_decal/corner/red{ dir = 9 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"jRn" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"jRZ" = ( +/mob/living/silicon/decoy{ + icon_state = "ai-malf"; + name = "GLaDOS" + }, +/turf/simulated/shuttle/wall/dark/hard_corner, +/area/space) +"jSn" = ( +/obj/machinery/reagentgrinder{ + pixel_y = 12; + pixel_x = -6 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "jSo" = ( /obj/effect/floor_decal/carpet{ dir = 1 @@ -8862,6 +11243,11 @@ /obj/structure/holostool, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_theatre) +"jTV" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/turf/unsimulated/floor/dark, +/area/shadekin) "jUW" = ( /obj/machinery/suit_cycler/syndicate{ locked = 0 @@ -8929,6 +11315,11 @@ /obj/structure/table/glass, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"jXp" = ( +/obj/structure/bed/double, +/obj/item/weapon/bedsheet/iandouble, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "jXS" = ( /obj/structure/table/rack, /obj/item/weapon/storage/briefcase/inflatable, @@ -8978,6 +11369,26 @@ icon_state = "dark" }, /area/syndicate_station) +"jZY" = ( +/obj/structure/table/marble, +/obj/machinery/chemical_dispenser/bar_alc/full{ + dir = 8; + pixel_y = 0; + pixel_x = 14 + }, +/obj/effect/floor_decal/corner/black/diagonal, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"kaO" = ( +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "kaS" = ( /obj/structure/bed/chair/comfy/black, /turf/unsimulated/floor{ @@ -9000,6 +11411,10 @@ }, /turf/simulated/shuttle/plating, /area/centcom/evac) +"kbL" = ( +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "kcu" = ( /obj/effect/floor_decal/carpet{ dir = 1 @@ -9009,6 +11424,16 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"kcC" = ( +/obj/structure/closet/secure_closet/freezer/meat{ + locked = 0 + }, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 6 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "kcX" = ( /obj/machinery/mech_recharger, /turf/unsimulated/floor{ @@ -9016,6 +11441,20 @@ name = "plating" }, /area/centcom/specops) +"kdo" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor/corner{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"ken" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "ker" = ( /obj/structure/sink{ pixel_y = 16 @@ -9039,17 +11478,24 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"kgp" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "khf" = ( -/obj/structure/flora/ausbushes/ppflowers, -/obj/effect/floor_decal/spline/fancy{ - dir = 1 +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/condimentbottles, +/obj/item/weapon/reagent_containers/food/condiment/sugar{ + pixel_y = 0; + pixel_x = -5 }, -/obj/effect/floor_decal/spline/fancy, -/obj/structure/prop/statue{ - pixel_y = 4; - icon_state = "pillar" +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = 8; + pixel_x = 4 }, -/turf/simulated/floor/grass2, +/obj/structure/curtain/open/bed, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, /area/shadekin) "khE" = ( /obj/structure/closet/secure_closet/security, @@ -9090,6 +11536,13 @@ "kiA" = ( /turf/simulated/shuttle/wall/hard_corner, /area/centcom/evac) +"kiH" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 5 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "kjC" = ( /obj/structure/sink{ dir = 8; @@ -9106,6 +11559,34 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_chess) +"kkP" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/table/rack/shelf, +/obj/item/weapon/towel/random{ + pixel_x = -2; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = -2; + pixel_y = -8 + }, +/obj/random/soap{ + pixel_y = 2 + }, +/obj/random/soap{ + pixel_y = 5; + pixel_x = 2 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "klk" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/warning, @@ -9166,8 +11647,8 @@ }, /area/shuttle/trade) "kmt" = ( -/obj/structure/table/marble, -/turf/simulated/floor/tiled/techmaint, +/obj/machinery/vending/event/food, +/turf/simulated/floor/reinforced, /area/shadekin) "kmA" = ( /obj/structure/table/standard, @@ -9204,20 +11685,21 @@ }, /turf/simulated/shuttle/floor/darkred, /area/shuttle/merchant) +"kmY" = ( +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "knf" = ( -/obj/machinery/vending/dinnerware{ - dir = 1 +/obj/structure/table/marble{ + color = "#2b2b2b" }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/carpet/turcarpet, /area/shadekin) "knk" = ( -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/milspec/sterile, +/obj/machinery/vending/hotfood, +/turf/simulated/floor/reinforced, /area/shadekin) "knC" = ( /obj/machinery/door/airlock/centcom{ @@ -9233,11 +11715,9 @@ /turf/simulated/floor/carpet/retro_red, /area/shadekin) "knR" = ( -/obj/machinery/seed_extractor, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/structure/table/reinforced, +/obj/random/maintenance/clean, +/turf/simulated/floor, /area/shadekin) "kob" = ( /obj/machinery/door/airlock/centcom{ @@ -9339,6 +11819,14 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_emptycourt) +"krx" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/weapon/dice/d20, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "krD" = ( /obj/machinery/door/window/holowindoor{ base_state = "right"; @@ -9348,6 +11836,13 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_emptycourt) +"krF" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light/small{ + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "krK" = ( /obj/structure/window/reinforced{ dir = 8 @@ -9446,6 +11941,19 @@ icon_state = "vault" }, /area/centcom/specops) +"ktw" = ( +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/effect/floor_decal/corner/green/diagonal, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"ktT" = ( +/obj/effect/catwalk_plated/techmaint, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) "kuC" = ( /obj/structure/window/reinforced{ dir = 4; @@ -9455,6 +11963,20 @@ icon_state = "asteroid" }, /area/ninja_dojo/dojo) +"kvr" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/toilet/prison{ + dir = 8; + name = "toilet"; + pixel_y = 6 + }, +/obj/structure/window/basic, +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "kvG" = ( /obj/machinery/power/port_gen/pacman, /turf/unsimulated/floor{ @@ -9512,6 +12034,10 @@ icon_state = "sandwater" }, /area/beach) +"kwM" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/simulated/floor/water/hotspring, +/area/shadekin) "kwP" = ( /obj/structure/bed/chair, /turf/unsimulated/floor{ @@ -9554,6 +12080,11 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/escape/centcom) +"kyg" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "kyJ" = ( /obj/item/weapon/tank/vox, /turf/unsimulated/floor{ @@ -9575,6 +12106,21 @@ /obj/structure/window/reinforced, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"kzy" = ( +/obj/machinery/vending/coffee, +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"kzK" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo"; + pixel_x = -5 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "kzN" = ( /obj/machinery/door/airlock/multi_tile/glass, /turf/simulated/shuttle/floor/darkred, @@ -9598,6 +12144,20 @@ icon_state = "vault" }, /area/centcom/specops) +"kAv" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = -28; + pixel_y = 8 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "kBg" = ( /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_theatre) @@ -9632,6 +12192,13 @@ icon_state = "dark" }, /area/syndicate_station) +"kEe" = ( +/obj/item/toy/plushie/kitten{ + pixel_y = -7; + pixel_x = -8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "kET" = ( /obj/machinery/telecomms/relay/preset/centcom, /turf/unsimulated/floor{ @@ -9677,6 +12244,13 @@ icon_state = "vault" }, /area/tdome) +"kIs" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "kJd" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -9697,6 +12271,12 @@ }, /turf/simulated/shuttle/floor/yellow, /area/centcom/evac) +"kKj" = ( +/obj/machinery/door/airlock/angled_tgmc/wide{ + name = "Bathroom" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "kKz" = ( /obj/structure/morgue, /obj/effect/floor_decal/corner/blue{ @@ -9706,6 +12286,13 @@ icon_state = "white" }, /area/centcom/medical) +"kKH" = ( +/obj/effect/floor_decal/emblem/nt2{ + name = "Nanotrasen"; + desc = "Looking for a stable, high paying and death free enviroment? NT is hiring +NOW!+. Apply now at any of our offices." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "kKV" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -9723,11 +12310,11 @@ /turf/simulated/shuttle/plating, /area/shuttle/escape/centcom) "kLq" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced/survival_pod{ +/obj/effect/floor_decal/rust/color_rusted, +/obj/effect/floor_decal/techfloor{ dir = 1 }, -/turf/unsimulated/floor/dark, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "kLN" = ( /obj/machinery/door/blast/regular{ @@ -9744,6 +12331,12 @@ /obj/item/weapon/bedsheet/medical, /turf/simulated/shuttle/floor, /area/centcom/evac) +"kME" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "kMF" = ( /obj/machinery/door/airlock/centcom{ name = "General Access"; @@ -9764,6 +12357,22 @@ "kNE" = ( /turf/unsimulated/wall, /area/centcom/creed) +"kNZ" = ( +/obj/machinery/recharge_station, +/obj/effect/floor_decal/milspec/color/white, +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) +"kOm" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) "kOt" = ( /obj/machinery/shower{ dir = 4; @@ -9772,6 +12381,17 @@ /obj/structure/curtain/open/shower, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"kOE" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/clown{ + pixel_y = 3 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "kOF" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -9792,6 +12412,18 @@ icon_state = "steel" }, /area/shuttle/trade) +"kPa" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "kPU" = ( /obj/structure/table/rack, /obj/item/clothing/under/color/red, @@ -9850,10 +12482,18 @@ /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) "kRC" = ( -/obj/structure/closet/emcloset/legacy, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/table/rack/shelf/steel, +/obj/structure/window/reinforced/survival_pod{ + dir = 4; + opacity = 1 }, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/miniature, +/obj/random/miniature, +/obj/random/miniature, +/obj/random/miniature, +/obj/random/miniature, +/obj/random/miniature, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "kSi" = ( @@ -9876,12 +12516,31 @@ icon_state = "steel" }, /area/centcom/bar) +"kVf" = ( +/obj/machinery/vending/tool, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "kVS" = ( /obj/machinery/door/airlock{ name = "Unisex Restrooms" }, /turf/simulated/shuttle/floor, /area/centcom/evac) +"kWh" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "kWs" = ( /turf/unsimulated/beach/coastline, /area/beach) @@ -9900,6 +12559,13 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_meetinghall) +"kXp" = ( +/obj/structure/flora/ausbushes/ywflowers, +/mob/living/simple_mob/animal/sif/glitterfly/rare, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "kXD" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 8 @@ -9991,6 +12657,12 @@ icon_state = "steel" }, /area/centcom/bar) +"laV" = ( +/obj/structure/sign/double/barsign{ + pixel_y = -32 + }, +/turf/simulated/floor/wood/sif/broken, +/area/shadekin) "lbF" = ( /turf/simulated/shuttle/plating, /area/shuttle/large_escape_pod2/centcom) @@ -10002,6 +12674,23 @@ name = "plating" }, /area/skipjack_station) +"lbM" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#DDFFD3"; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"lcA" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "lcF" = ( /obj/structure/bed/chair{ dir = 8 @@ -10053,6 +12742,10 @@ /obj/structure/holostool, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_meetinghall) +"ljE" = ( +/obj/item/toy/plushie/goose, +/turf/simulated/floor/reinforced, +/area/shadekin) "ljH" = ( /obj/structure/table/standard, /obj/item/weapon/surgical/hemostat, @@ -10091,6 +12784,13 @@ /obj/item/clothing/mask/surgical, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"llo" = ( +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel{ + dir = 8; + name = "Erthj23G" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "llz" = ( /turf/unsimulated/wall, /area/centcom/living) @@ -10130,6 +12830,12 @@ icon_state = "dark" }, /area/centcom/security) +"lnu" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "lnJ" = ( /obj/structure/table/rack, /obj/item/clothing/shoes/magboots, @@ -10177,6 +12883,15 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/escape/centcom) +"lqC" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = 0; + pixel_x = 7 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "lrG" = ( /obj/structure/table/standard, /obj/item/weapon/storage/lockbox, @@ -10224,6 +12939,45 @@ /obj/random/soap, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"ltP" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"ltX" = ( +/obj/structure/table/marble, +/obj/machinery/microwave{ + pixel_y = 19 + }, +/obj/effect/floor_decal/corner/black/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"luy" = ( +/obj/machinery/door/airlock/angled_tgmc/personal{ + name = "Kitchen" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) +"luZ" = ( +/obj/structure/prop/statue/phoron, +/obj/effect/map_effect/interval/effect_emitter/sparks, +/turf/simulated/floor/outdoors/ice/dark_smooth{ + can_atmos_pass = 0; + nitrogen = 82.1472; + oxygen = 21.8366; + temperature = 293.15 + }, +/area/shadekin) +"lvK" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "lwj" = ( /obj/machinery/smartfridge/drying_rack, /turf/unsimulated/floor{ @@ -10302,6 +13056,10 @@ /obj/structure/largecrate/animal/corgi, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"lBS" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/bronze, +/area/shadekin) "lCc" = ( /obj/item/weapon/gun/launcher/pneumatic, /turf/unsimulated/floor{ @@ -10325,6 +13083,17 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/merchant) +"lCt" = ( +/obj/machinery/reagentgrinder{ + pixel_y = 12; + pixel_x = 6 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "lDa" = ( /obj/machinery/door/airlock/maintenance_hatch, /turf/unsimulated/floor{ @@ -10333,15 +13102,8 @@ }, /area/wizard_station) "lDh" = ( -/obj/structure/table/rack/gun_rack, -/obj/structure/window/reinforced/survival_pod{ - dir = 4; - opacity = 1 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/effect/floor_decal/corner/black/diagonal, +/turf/simulated/floor/tiled/white, /area/shadekin) "lDJ" = ( /obj/structure/window/reinforced{ @@ -10423,6 +13185,21 @@ icon_state = "lino" }, /area/syndicate_station) +"lHN" = ( +/obj/structure/table/reinforced, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor, +/area/shadekin) +"lIN" = ( +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "lIP" = ( /obj/item/weapon/storage/box/syndie_kit/spy, /turf/unsimulated/floor{ @@ -10450,8 +13227,20 @@ }, /area/centcom/specops) "lJn" = ( -/obj/structure/table/woodentable, -/turf/simulated/floor/wood/sif, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/random/junk, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) +"lJw" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/captaindouble, +/turf/simulated/floor/carpet/turcarpet, /area/shadekin) "lJx" = ( /obj/structure/closet/crate/medical, @@ -10472,6 +13261,10 @@ icon_state = "vault" }, /area/centcom/command) +"lKj" = ( +/obj/structure/table/marble, +/turf/simulated/floor/carpet/green, +/area/shadekin) "lKL" = ( /obj/machinery/door/airlock/multi_tile/glass{ req_access = list(160) @@ -10510,6 +13303,14 @@ icon_state = "vault" }, /area/tdome) +"lMG" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "lMT" = ( /obj/machinery/door/blast/regular{ id = "thunderdomehea"; @@ -10534,6 +13335,12 @@ block_tele = 1 }, /area/shadekin) +"lNO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "lOi" = ( /obj/structure/ore_box, /turf/unsimulated/floor{ @@ -10608,9 +13415,34 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"lRi" = ( +/obj/structure/closet/secure_closet/freezer/meat{ + locked = 0 + }, +/obj/effect/floor_decal/techfloor{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "lRp" = ( /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_theatre) +"lRw" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) +"lRH" = ( +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel{ + dir = 8; + name = "Dorms" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "lRR" = ( /obj/machinery/door/window/holowindoor{ dir = 2; @@ -10618,6 +13450,15 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_thunderdomecourt) +"lRW" = ( +/obj/machinery/vending/entertainer, +/turf/simulated/floor/reinforced, +/area/shadekin) +"lSl" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/hatchmarks, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "lSX" = ( /turf/simulated/shuttle/plating, /area/shuttle/escape_pod8/centcom) @@ -10639,6 +13480,12 @@ }, /turf/simulated/shuttle/floor/yellow, /area/centcom/evac) +"lVa" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "lVl" = ( /obj/machinery/suit_cycler/syndicate{ locked = 0 @@ -10747,13 +13594,27 @@ /turf/simulated/shuttle/plating, /area/centcom/evac) "lZH" = ( -/obj/structure/table/marble, -/obj/machinery/chemical_dispenser/bar_soft/full, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/window/reinforced/survival_pod{ + dir = 8 }, +/obj/structure/table/rack/gun_rack/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/mech_toy, +/obj/random/mech_toy, +/obj/random/mech_toy, +/obj/random/mech_toy, /turf/simulated/floor/tiled/techmaint, /area/shadekin) +"mas" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "mbq" = ( /obj/structure/table/rack, /obj/item/weapon/rig/ert, @@ -10854,6 +13715,18 @@ /obj/effect/shuttle_landmark/southern_cross/large_escape_pod1/offsite, /turf/simulated/shuttle/plating, /area/shuttle/large_escape_pod1/centcom) +"mfT" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "mgi" = ( /obj/structure/bed, /obj/item/weapon/bedsheet/orange, @@ -10896,6 +13769,16 @@ /obj/item/weapon/storage/firstaid/surgery, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"miA" = ( +/obj/effect/floor_decal/spline/fancy{ + dir = 8 + }, +/obj/effect/floor_decal/spline/fancy{ + dir = 4 + }, +/obj/structure/prop/statue/angel, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "miM" = ( /obj/machinery/door/airlock/glass{ icon_state = "door_locked"; @@ -10952,6 +13835,12 @@ name = "plating" }, /area/wizard_station) +"mkR" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "mlA" = ( /obj/item/weapon/stool/padded, /obj/effect/floor_decal/corner/yellow/diagonal, @@ -10969,6 +13858,12 @@ "mmJ" = ( /turf/unsimulated/wall, /area/centcom/terminal) +"mnH" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "moi" = ( /obj/item/weapon/storage/box/bodybags, /obj/item/weapon/storage/box/bodybags, @@ -11070,6 +13965,18 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/syndicate) +"msJ" = ( +/obj/random/obstruction, +/turf/simulated/floor, +/area/shadekin) +"mui" = ( +/obj/structure/table/hardwoodtable, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "muC" = ( /obj/structure/closet/secure_closet/medical2, /turf/unsimulated/floor{ @@ -11133,6 +14040,11 @@ icon_state = "white" }, /area/shuttle/trade) +"mxa" = ( +/obj/machinery/appliance/cooker/oven, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "mxg" = ( /obj/machinery/door/airlock/external{ icon_state = "door_locked"; @@ -11200,9 +14112,28 @@ /obj/structure/table/steel, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"mAj" = ( +/obj/machinery/gibber{ + name = "high-performance gibber" + }, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "mAy" = ( /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"mAM" = ( +/obj/structure/toilet/prison{ + dir = 4 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "mBm" = ( /obj/machinery/autolathe{ hacked = 1; @@ -11247,6 +14178,13 @@ icon_state = "vault" }, /area/centcom/main_hall) +"mCA" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "mDp" = ( /obj/structure/shuttle/engine/heater{ dir = 4 @@ -11295,7 +14233,26 @@ /turf/unsimulated/floor/dark, /area/shadekin) "mFP" = ( -/turf/simulated/wall/tgmc/window/darkwall, +/obj/effect/floor_decal/techfloor, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/structure/sink/countertop{ + pixel_y = -7; + pixel_x = 1; + dir = 1 + }, +/obj/item/trash/plate{ + pixel_y = -2 + }, +/obj/item/trash/plate, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/trash/plate{ + pixel_y = 4 + }, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "mGk" = ( /obj/machinery/door/blast/shutters{ @@ -11451,6 +14408,11 @@ /obj/structure/table/woodentable/holotable, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"mNu" = ( +/obj/structure/table/darkglass, +/obj/effect/floor_decal/milspec/cargo, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "mNv" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/firstaid/adv{ @@ -11483,6 +14445,17 @@ icon_state = "lino" }, /area/tdome/tdomeadmin) +"mOU" = ( +/obj/structure/table/rack/shelf/steel, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) +"mPV" = ( +/obj/machinery/door/airlock/angled_tgmc/wide/generic_steel{ + dir = 4; + name = "Arrivals" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "mQF" = ( /obj/item/roller, /obj/item/roller{ @@ -11523,6 +14496,19 @@ icon_state = "vault" }, /area/centcom/specops) +"mSn" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = -13 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = -28; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "mSB" = ( /obj/structure/musician/piano{ dir = 4 @@ -11629,6 +14615,12 @@ icon_state = "vault" }, /area/centcom/specops) +"mXH" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "mZO" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/firstaid/fire{ @@ -11751,11 +14743,17 @@ /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) "nfb" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lamp/clown{ - pixel_y = 6 +/obj/effect/floor_decal/spline/fancy{ + dir = 1 }, -/turf/simulated/floor/wood/alt, +/obj/structure/flora/pottedplant{ + icon_state = "plant-10"; + name = "Santiago" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/wood/sif, /area/shadekin) "nfn" = ( /obj/structure/shuttle/engine/propulsion{ @@ -11773,6 +14771,12 @@ name = "plating" }, /area/centcom/specops) +"nfP" = ( +/obj/effect/catwalk_plated/techmaint, +/obj/random/trash, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) "ngc" = ( /obj/item/weapon/extinguisher, /turf/unsimulated/floor{ @@ -11780,9 +14784,18 @@ }, /area/tdome/tdomeadmin) "ngf" = ( -/mob/living/simple_mob/animal/passive/tindalos, -/turf/space, +/obj/structure/lattice, +/turf/unsimulated/floor/dark, /area/space) +"ngE" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "ngU" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 @@ -11807,13 +14820,11 @@ }, /area/wizard_station) "niv" = ( -/obj/structure/table/marble, -/obj/machinery/chemical_dispenser/bar_coffee/full, -/obj/effect/floor_decal/corner/brown/diagonal, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/emblem/talon{ + name = "Surgeria"; + desc = "Looking to improve your body? Surgeria will fit the right organ for your perfect body." }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/wall/tgmc/darkwall, /area/shadekin) "niD" = ( /obj/structure/grille, @@ -11830,10 +14841,19 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/syndicate) +"njq" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "njH" = ( /obj/machinery/light, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"nku" = ( +/obj/structure/table/bench/wooden, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "nlG" = ( /obj/machinery/atmospherics/pipe/tank/air, /turf/simulated/shuttle/floor/voidcraft, @@ -11860,17 +14880,12 @@ }, /area/centcom/specops) "nmF" = ( -/obj/structure/table/marble, -/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ - pixel_x = -3 +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 10 }, -/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ - pixel_x = 3 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "nmG" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -11892,6 +14907,13 @@ /obj/effect/floor_decal/spline/plain, /turf/simulated/floor/holofloor/lino, /area/holodeck/source_meetinghall) +"nmT" = ( +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/wood/alt, +/area/shadekin) "nmV" = ( /obj/machinery/door/airlock{ name = "Unit 1" @@ -11900,6 +14922,14 @@ icon_state = "freezerfloor" }, /area/centcom/bar) +"nnq" = ( +/obj/effect/catwalk_plated/techmaint, +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor, +/area/shadekin) "noC" = ( /obj/machinery/recharger/wallcharger{ pixel_x = -25 @@ -11916,6 +14946,16 @@ }, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"npe" = ( +/obj/structure/curtain/open/shower, +/obj/structure/window/basic{ + dir = 8 + }, +/obj/machinery/door/window/southright{ + dir = 1 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "nqa" = ( /obj/machinery/light{ dir = 4 @@ -11933,6 +14973,13 @@ icon_state = "dark" }, /area/centcom/creed) +"nrN" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "nrW" = ( /obj/structure/closet, /obj/item/clothing/suit/wizrobe/red, @@ -11981,6 +15028,13 @@ "ntO" = ( /turf/simulated/floor/holofloor/reinforced, /area/holodeck/source_plating) +"ntW" = ( +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/wood/sif, +/area/shadekin) "nub" = ( /obj/machinery/computer/station_alert/all, /obj/structure/window/reinforced{ @@ -12005,6 +15059,16 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"nvf" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/stellardelight{ + dir = 4; + pixel_y = 32; + name = "Stellar Delight Cruise"; + desc = "Vacation? Consider our Stellar Delight Cruise! Drift away to a galactic paradise with all of your needs covered while discovering the most beautiful spots of the milkyway." + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "nvl" = ( /obj/item/weapon/bikehorn/rubberducky, /turf/simulated/shuttle/floor/white, @@ -12076,6 +15140,10 @@ }, /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"nyI" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "nyS" = ( /obj/item/weapon/stool/padded, /turf/unsimulated/floor{ @@ -12087,6 +15155,11 @@ /obj/structure/flight_right, /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"nzI" = ( +/obj/machinery/vending/engineering, +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, +/area/shadekin) "nAe" = ( /obj/machinery/door/window/westright{ name = "Storefront"; @@ -12184,6 +15257,13 @@ "nEz" = ( /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"nFd" = ( +/obj/effect/floor_decal/milspec/monotile, +/obj/effect/floor_decal/milspec/cargo_arrow{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "nFg" = ( /obj/machinery/embedded_controller/radio/airlock/airlock_controller{ dir = 4; @@ -12244,6 +15324,10 @@ /obj/machinery/vending/snack, /turf/simulated/shuttle/floor/yellow, /area/centcom/evac) +"nId" = ( +/mob/living/simple_mob/animal/sif/glitterfly/rare, +/turf/simulated/floor/water/hotspring, +/area/shadekin) "nIu" = ( /obj/structure/table/reinforced, /obj/item/weapon/material/minihoe, @@ -12252,6 +15336,12 @@ icon_state = "dark" }, /area/centcom/security) +"nIR" = ( +/obj/machinery/door/airlock/angled_tgmc/secure{ + name = "Freezer" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "nIT" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 4 @@ -12259,6 +15349,20 @@ /obj/machinery/meter, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"nIX" = ( +/obj/machinery/vending/fishing, +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"nJz" = ( +/obj/machinery/vending/hydronutrients, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "nJO" = ( /obj/structure/shuttle/engine/heater{ dir = 8 @@ -12269,6 +15373,16 @@ }, /turf/simulated/shuttle/plating/airless, /area/shuttle/response_ship) +"nJZ" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/obj/structure/flora/pottedplant/decorative{ + pixel_y = 10; + name = "Butro" + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "nKn" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 8 @@ -12299,6 +15413,13 @@ icon_state = "dark" }, /area/centcom/creed) +"nLo" = ( +/obj/machinery/vending/weeb, +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "nMG" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 8; @@ -12314,6 +15435,10 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"nOe" = ( +/obj/structure/flora/tree/jungle_small, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "nOo" = ( /obj/effect/floor_decal/corner/red/full{ dir = 1 @@ -12336,6 +15461,17 @@ icon_state = "vault" }, /area/tdome) +"nPv" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/reagent_containers/food/drinks/teapot{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "nPG" = ( /obj/effect/floor_decal/corner/green{ dir = 5 @@ -12355,6 +15491,23 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/escape/centcom) +"nQg" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/carpet, +/area/shadekin) +"nQx" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "nQF" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 4; @@ -12449,6 +15602,12 @@ /obj/machinery/portable_atmospherics/powered/scrubber, /turf/simulated/shuttle/plating, /area/centcom/evac) +"nWU" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/wall/tgmc/window/darkwall/reinf, +/area/shadekin) "nXc" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 @@ -12456,6 +15615,13 @@ /obj/machinery/meter, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"nXu" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet, +/area/shadekin) "nYs" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 9 @@ -12492,6 +15658,18 @@ "nZC" = ( /turf/simulated/shuttle/wall/dark/hard_corner, /area/centcom/specops) +"oal" = ( +/obj/item/weapon/material/knife{ + pixel_y = 0; + pixel_x = 8 + }, +/obj/item/weapon/material/knife, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "oao" = ( /obj/machinery/recharger/wallcharger{ pixel_x = -25 @@ -12527,6 +15705,20 @@ icon_state = "vault" }, /area/centcom/specops) +"oaz" = ( +/obj/effect/floor_decal/emblem/nt3{ + name = "Nanotrasen"; + desc = "Looking for a stable, high paying and death free enviroment? NT is hiring +NOW!+. Apply now at any of our offices." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) +"oba" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "obC" = ( /obj/structure/shuttle/engine/propulsion{ dir = 8; @@ -12535,26 +15727,25 @@ /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/transport1/centcom) "ocz" = ( -/obj/structure/table/steel, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor, +/area/shadekin) +"ocR" = ( +/obj/machinery/disposal, +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, /turf/simulated/floor/tiled/techmaint, /area/shadekin) -"ocR" = ( -/obj/machinery/shower{ - dir = 1 - }, -/obj/structure/curtain/open/shower, -/obj/structure/window/basic{ - dir = 8 - }, -/turf/simulated/floor/tiled/freezer, -/area/shadekin) "ocZ" = ( -/obj/structure/table/rack/shelf/steel, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/stripe{ + dir = 10 + }, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 8 }, /turf/simulated/floor/tiled/techmaint, /area/shadekin) @@ -12612,6 +15803,16 @@ icon_state = "freezerfloor" }, /area/centcom/command) +"oeJ" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/table/reinforced, +/obj/random/tech_supply, +/obj/random/tech_supply, +/obj/random/tech_supply, +/obj/random/tech_supply, +/obj/random/tech_supply, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "oeT" = ( /turf/unsimulated/floor{ icon_state = "steel" @@ -12660,6 +15861,16 @@ "ohP" = ( /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"oiI" = ( +/obj/machinery/microwave{ + pixel_y = 19 + }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "oiK" = ( /obj/structure/table/standard, /obj/item/weapon/storage/toolbox/emergency, @@ -12720,6 +15931,13 @@ icon_state = "steel" }, /area/shuttle/trade) +"olK" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "omn" = ( /obj/machinery/light/small{ dir = 4 @@ -12729,6 +15947,12 @@ }, /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"omo" = ( +/mob/living/simple_mob/animal/sif/glitterfly/rare, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "omL" = ( /turf/simulated/floor/wood/sif, /area/shadekin) @@ -12740,6 +15964,32 @@ }, /turf/simulated/wall/skipjack, /area/shuttle/skipjack) +"ooi" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 8 + }, +/turf/simulated/floor/bronze, +/area/shadekin) +"ooP" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/obj/structure/flora/pottedplant/crystal{ + pixel_y = 10; + name = "Cratal" + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) +"ooQ" = ( +/obj/effect/floor_decal/spline/fancy{ + dir = 8 + }, +/obj/effect/floor_decal/spline/fancy{ + dir = 4 + }, +/obj/structure/prop/statue/stump_plaque, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "oqb" = ( /obj/structure/table/standard, /obj/machinery/light{ @@ -12748,6 +15998,13 @@ /obj/item/weapon/reagent_containers/glass/beaker/large, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"oqf" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor/corner{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "orn" = ( /obj/item/toy/chess/knight_black, /turf/simulated/floor/holofloor/bmarble{ @@ -12758,6 +16015,10 @@ /obj/structure/window/reinforced/survival_pod, /turf/simulated/floor, /area/shadekin) +"orQ" = ( +/obj/machinery/vending/dinnerware, +/turf/simulated/floor/reinforced, +/area/shadekin) "osb" = ( /obj/machinery/computer/cloning, /turf/unsimulated/floor{ @@ -12769,11 +16030,12 @@ /turf/simulated/shuttle/wall/dark/no_join, /area/shuttle/supply) "osz" = ( -/obj/machinery/disposal, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 6 }, -/turf/simulated/floor/tiled/techmaint, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "osC" = ( /obj/machinery/porta_turret/ai_defense{ @@ -12800,6 +16062,13 @@ icon_state = "steel" }, /area/centcom/bar) +"otP" = ( +/obj/machinery/vending/event/loadout_misc, +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "ouF" = ( /obj/machinery/door/airlock/external{ frequency = 1380; @@ -12817,6 +16086,16 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"ovR" = ( +/obj/structure/closet/crate/hydroponics/exotic, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"owZ" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "oxh" = ( /obj/machinery/light/small{ dir = 4 @@ -12885,6 +16164,15 @@ }, /turf/simulated/shuttle/wall/voidcraft/red, /area/shuttle/syndicate) +"oBA" = ( +/obj/structure/bed/double{ + pixel_x = -1 + }, +/obj/item/weapon/bedsheet/hopdouble{ + pixel_y = 0 + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) "oBM" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -12934,6 +16222,10 @@ }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"oEq" = ( +/obj/random/trash_pile, +/turf/simulated/floor, +/area/shadekin) "oEQ" = ( /obj/structure/frame/computer, /turf/simulated/shuttle/floor/voidcraft/dark, @@ -12955,6 +16247,21 @@ icon_state = "vault" }, /area/centcom/specops) +"oFB" = ( +/obj/random/junk, +/turf/simulated/floor, +/area/shadekin) +"oHe" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/material/knife/butch, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "oIe" = ( /obj/structure/table/standard, /obj/effect/floor_decal/industrial/warning/corner, @@ -12968,6 +16275,15 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"oIv" = ( +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "oJA" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ dir = 8; @@ -13021,6 +16337,18 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"oMV" = ( +/obj/structure/bed/double{ + pixel_y = 0; + pixel_x = 1 + }, +/obj/item/weapon/bedsheet/hopdouble, +/obj/item/weapon/bedsheet/hopdouble{ + pixel_y = 0; + pixel_x = 16 + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/shadekin) "oOc" = ( /obj/structure/table/woodentable, /obj/item/weapon/reagent_containers/food/snacks/fortunecookie, @@ -13042,12 +16370,24 @@ }, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) +"oRy" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "oRM" = ( /obj/effect/floor_decal/corner/red{ dir = 10 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"oSi" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "oSH" = ( /obj/effect/wingrille_spawn/reinforced/crescent, /turf/unsimulated/floor{ @@ -13079,6 +16419,13 @@ /obj/structure/shuttle/window, /turf/simulated/shuttle/plating, /area/shuttle/transport1/centcom) +"oUd" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/paper_bin, +/obj/item/weapon/pen/fountain5, +/obj/item/weapon/pen/fountain5, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "oUh" = ( /obj/effect/wingrille_spawn/reinforced/crescent, /turf/unsimulated/floor{ @@ -13127,6 +16474,23 @@ icon_state = "wood" }, /area/centcom/bar) +"paX" = ( +/obj/structure/table/marble, +/obj/item/weapon/reagent_containers/dropper{ + pixel_y = 5; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/glass/beaker/measuring_cup{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "pbc" = ( /obj/machinery/media/jukebox, /turf/unsimulated/floor{ @@ -13134,8 +16498,11 @@ }, /area/centcom/bar) "pbJ" = ( -/obj/machinery/smartfridge/produce, -/turf/simulated/wall/tgmc/darkwall, +/obj/machinery/vending/cigarette, +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 + }, +/turf/simulated/floor/reinforced, /area/shadekin) "pcd" = ( /obj/structure/table/reinforced, @@ -13146,10 +16513,11 @@ }, /area/centcom/evac) "pcm" = ( -/obj/structure/bed/chair/bay/chair/padded/red/bignest{ - name = "large shadekin nest" +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/floor_decal/techfloor{ + dir = 1 }, -/turf/simulated/floor/carpet/bcarpet, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "pcw" = ( /obj/structure/table/glass, @@ -13194,11 +16562,27 @@ icon_state = "vault" }, /area/centcom/specops) +"peQ" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/vending/tool{ + emagged = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "peU" = ( /turf/unsimulated/floor{ icon_state = "freezerfloor" }, /area/ninja_dojo/dojo) +"pfy" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 0; + dir = 4; + pixel_x = -6 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "pfG" = ( /obj/structure/closet/emcloset, /turf/unsimulated/floor{ @@ -13214,9 +16598,27 @@ icon_state = "white" }, /area/centcom/medical) +"pfT" = ( +/obj/item/toy/plushie/bigcat, +/obj/item/toy/plushie/therapy/blue{ + pixel_y = -4; + pixel_x = 14 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "phB" = ( -/obj/structure/girder, -/turf/simulated/floor/plating, +/obj/structure/sink{ + dir = 4; + pixel_x = 12; + pixel_y = 2 + }, +/obj/structure/mirror{ + dir = 8; + pixel_x = 28; + pixel_y = 9 + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "phO" = ( /obj/effect/floor_decal/spline/plain{ @@ -13250,6 +16652,12 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/escape/centcom) +"pkm" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "pkz" = ( /obj/machinery/atmospherics/pipe/simple/visible, /obj/machinery/access_button{ @@ -13270,9 +16678,17 @@ /turf/simulated/shuttle/wall/no_join, /area/shuttle/supply) "pkK" = ( -/obj/item/weapon/stool/padded, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/vending/engivend, +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"plX" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/extinguisher_cabinet{ + dir = 1; + pixel_y = -30 }, /turf/simulated/floor/tiled/techmaint, /area/shadekin) @@ -13321,12 +16737,10 @@ /turf/simulated/shuttle/floor, /area/shuttle/transport1/centcom) "pnA" = ( -/mob/living/silicon/decoy{ - icon_state = "ai-malf"; - name = "GLaDOS" - }, -/turf/space, -/area/space) +/obj/structure/table/bench/wooden, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet, +/area/shadekin) "pnC" = ( /obj/machinery/conveyor{ dir = 4; @@ -13351,11 +16765,22 @@ icon_state = "dark" }, /area/centcom/security) +"pof" = ( +/obj/machinery/vending/fitness, +/turf/simulated/floor/reinforced, +/area/shadekin) "pog" = ( /turf/unsimulated/floor{ icon_state = "lino" }, /area/wizard_station) +"pos" = ( +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 10 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "ppq" = ( /obj/structure/table/woodentable/holotable, /turf/simulated/floor/holofloor/desert, @@ -13376,6 +16801,12 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/supply) +"ppZ" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "pqj" = ( /obj/structure/table/marble, /obj/item/weapon/reagent_containers/glass/beaker, @@ -13412,6 +16843,18 @@ /obj/effect/map_helper/airlock/button/int_button, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"psv" = ( +/obj/item/weapon/reagent_containers/food/drinks/flask/shiny, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "psx" = ( /obj/structure/frame/computer, /obj/machinery/light{ @@ -13444,12 +16887,30 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"puo" = ( +/obj/structure/table/marble, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) +"puz" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/device/camera, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "puP" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"puU" = ( +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) +"puX" = ( +/obj/structure/closet/crate/hydroponics, +/obj/random/maintenance, +/obj/random/maintenance/cargo, +/turf/simulated/floor, +/area/shadekin) "pvW" = ( /obj/machinery/sleeper{ dir = 8 @@ -13457,8 +16918,8 @@ /turf/simulated/shuttle/floor/white, /area/centcom/evac) "pwr" = ( -/obj/machinery/door/airlock/angled_bay/standard{ - dir = 8 +/obj/structure/bed/chair/bay{ + dir = 4 }, /turf/simulated/floor/tiled/techfloor, /area/shadekin) @@ -13481,6 +16942,14 @@ /obj/item/weapon/storage/belt/security/tactical/bandolier, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"pyc" = ( +/obj/effect/floor_decal/emblem/orangeline{ + dir = 8; + name = "Orange Line"; + desc = "Exhausted of late deliveries? Annoyed by damaged goods? Being charged for multiple transports? Rely on Orange Line. The right prize for the right package." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "pyj" = ( /obj/effect/floor_decal/corner/blue/full{ dir = 8 @@ -13534,6 +17003,13 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"pBc" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "pBu" = ( /obj/structure/table/steel, /obj/item/weapon/gun/projectile/pistol, @@ -13548,6 +17024,28 @@ /obj/item/weapon/storage/belt/security, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"pCs" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -6; + pixel_x = 3 + }, +/obj/structure/window/basic{ + dir = 1 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) +"pDb" = ( +/obj/item/device/multitool, +/obj/structure/closet/secure_closet/hydroponics{ + locked = 0 + }, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "pDk" = ( /obj/machinery/door/airlock/silver{ name = "Restroom" @@ -13665,6 +17163,22 @@ }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"pIn" = ( +/obj/item/toy/plushie/white_cat{ + pixel_y = 11; + pixel_x = 26 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"pIs" = ( +/obj/structure/bed/chair/bay{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "pJj" = ( /obj/structure/flora/ausbushes/brflowers, /obj/effect/floor_decal/spline/fancy/wood{ @@ -13680,11 +17194,7 @@ /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) "pJD" = ( -/obj/structure/table/woodentable, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/carpet, /area/shadekin) "pJQ" = ( /obj/machinery/teleport/station, @@ -13725,6 +17235,19 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"pKS" = ( +/obj/structure/table/rack/shelf/steel, +/obj/structure/window/reinforced/survival_pod{ + dir = 4; + opacity = 1 + }, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "pMy" = ( /obj/structure/bed/chair/comfy/teal{ dir = 8 @@ -13752,6 +17275,13 @@ icon_state = "steel" }, /area/centcom/main_hall) +"pNe" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 4 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) "pNH" = ( /obj/effect/floor_decal/corner/white/diagonal{ dir = 4 @@ -13760,6 +17290,12 @@ icon_state = "steel" }, /area/centcom/terminal) +"pNP" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "pNW" = ( /obj/structure/table/bench/padded, /turf/unsimulated/floor{ @@ -13840,6 +17376,10 @@ icon_state = "vault" }, /area/centcom/specops) +"pQU" = ( +/obj/machinery/floodlight, +/turf/simulated/floor, +/area/shadekin) "pRJ" = ( /obj/machinery/chemical_dispenser/full, /obj/item/weapon/reagent_containers/glass/beaker/large, @@ -13858,6 +17398,12 @@ "pTX" = ( /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"pUN" = ( +/obj/machinery/door/airlock/angled_tgmc/maintenance{ + dir = 4 + }, +/turf/simulated/floor, +/area/shadekin) "pUQ" = ( /obj/structure/closet, /obj/item/clothing/suit/wizrobe/marisa, @@ -13902,6 +17448,13 @@ /obj/item/toy/chess/pawn_black, /turf/simulated/floor/holofloor/wmarble, /area/holodeck/source_chess) +"pYO" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor/corner{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "pZk" = ( /obj/item/seeds/potatoseed, /obj/item/seeds/potatoseed, @@ -13911,6 +17464,25 @@ /obj/structure/table/steel, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"qaR" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 6 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"qaZ" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 + }, +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "qbl" = ( /obj/structure/target_stake, /obj/effect/floor_decal/industrial/hatch/yellow, @@ -13933,16 +17505,15 @@ }, /area/centcom/specops) "qbW" = ( -/obj/structure/table/marble, -/obj/machinery/microwave{ - pixel_x = 2; - pixel_y = 6 +/obj/machinery/door/airlock/angled_tgmc/maintenance, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"qcH" = ( +/obj/structure/curtain/open/shower, +/obj/structure/window/basic{ + dir = 8 }, -/obj/effect/floor_decal/corner/brown/diagonal, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/freezer, /area/shadekin) "qej" = ( /turf/unsimulated/floor{ @@ -13987,12 +17558,26 @@ /obj/machinery/vending/hydroseeds, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) -"qhK" = ( -/obj/structure/closet, -/obj/effect/floor_decal/rust{ - color = "black" +"qfC" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/itgdauntless{ + dir = 4; + pixel_y = -32; + name = "Dauntless Boots"; + desc = "Tired of your footwear breaking down with time? Why bother buying something that will eventually erode when you can realy on the Dauntless footwear. Now in gunmetal black!" }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"qgG" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 8 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) +"qhK" = ( +/obj/effect/floor_decal/techfloor/orange, +/turf/simulated/floor/reinforced, /area/shadekin) "qiJ" = ( /obj/structure/table/rack, @@ -14045,6 +17630,25 @@ icon_state = "vault" }, /area/centcom/specops) +"qkR" = ( +/obj/structure/table/marble, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) +"qkX" = ( +/obj/item/toy/plushie/deer, +/obj/item/toy/plushie/mouse{ + pixel_y = -4; + pixel_x = 10 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"qlL" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "qmj" = ( /obj/structure/table/reinforced, /obj/item/device/megaphone, @@ -14059,6 +17663,19 @@ icon_state = "vault" }, /area/centcom/specops) +"qnI" = ( +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"qnJ" = ( +/obj/structure/closet/secure_closet/freezer/fridge{ + locked = 0 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "qoh" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ frequency = 1380; @@ -14074,6 +17691,9 @@ /obj/structure/table/rack/holorack, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_theatre) +"qoU" = ( +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "qoX" = ( /turf/space, /turf/simulated/shuttle/wall/dark, @@ -14087,48 +17707,11 @@ /turf/simulated/floor/holofloor/wood, /area/holodeck/source_courtroom) "qpy" = ( -/obj/structure/table/marble, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = 8; - pixel_y = 8 +/obj/effect/floor_decal/emblem/ark{ + name = "Ark and Unity"; + desc = "Solving issues as one, call for admission at 943-3256345745314-111" }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = 8; - pixel_y = -4 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = 8 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = -4 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = 8; - pixel_y = 12 - }, -/obj/item/weapon/reagent_containers/food/drinks/cup{ - pixel_x = -4; - pixel_y = 12 - }, -/obj/effect/floor_decal/borderfloor{ - dir = 8 - }, -/obj/effect/floor_decal/corner/brown/border{ - dir = 8 - }, -/obj/effect/floor_decal/corner/brown/diagonal, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/wall/tgmc/darkwall, /area/shadekin) "qpG" = ( /obj/machinery/atmospherics/unary/cryo_cell, @@ -14152,6 +17735,10 @@ /obj/item/clothing/suit/pirate, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"qqh" = ( +/obj/machinery/vending/snix, +/turf/simulated/floor/reinforced, +/area/shadekin) "qqr" = ( /obj/machinery/flasher{ id = "flash"; @@ -14210,6 +17797,23 @@ icon_state = "freezerfloor" }, /area/centcom/command) +"qrL" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) +"qsF" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "qsI" = ( /obj/effect/floor_decal/carpet{ dir = 8 @@ -14221,11 +17825,10 @@ /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) "qvz" = ( -/obj/structure/table/fancyblack, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/techfloor/orange{ + dir = 6 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/reinforced, /area/shadekin) "qvC" = ( /obj/structure/table/standard, @@ -14262,6 +17865,13 @@ /obj/structure/table/woodentable, /turf/simulated/floor/carpet, /area/shuttle/merchant) +"qxH" = ( +/obj/machinery/vending/sovietsoda, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "qxL" = ( /obj/structure/bed/chair{ dir = 8 @@ -14299,6 +17909,12 @@ /obj/structure/table/woodentable/holotable, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"qzw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "qAi" = ( /obj/machinery/telecomms/receiver/preset_cent, /turf/unsimulated/floor{ @@ -14306,6 +17922,11 @@ icon_state = "vault" }, /area/centcom/main_hall) +"qAm" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "qAT" = ( /obj/structure/window/reinforced{ dir = 4; @@ -14350,6 +17971,15 @@ }, /turf/unsimulated/wall, /area/space) +"qGj" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 5 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "qHa" = ( /obj/structure/table/woodentable{ dir = 5 @@ -14368,6 +17998,13 @@ /obj/random/action_figure, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"qJf" = ( +/obj/structure/table/standard, +/obj/item/device/starcaster_news{ + pixel_x = 8 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "qJE" = ( /obj/machinery/light{ dir = 4 @@ -14377,6 +18014,17 @@ }, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"qJS" = ( +/obj/structure/bed/double{ + pixel_y = -2; + pixel_x = 10 + }, +/obj/item/weapon/bedsheet/browndouble{ + pixel_y = -2; + pixel_x = 10 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "qKM" = ( /obj/structure/window/reinforced{ dir = 8 @@ -14395,6 +18043,13 @@ /obj/structure/lattice, /turf/space, /area/space) +"qNB" = ( +/obj/machinery/vending/emergencyfood, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "qOj" = ( /obj/machinery/light{ dir = 8 @@ -14512,14 +18167,26 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_thunderdomecourt) +"qUt" = ( +/obj/item/weapon/material/knife/butch, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "qUI" = ( /turf/unsimulated/floor{ icon_state = "asteroid" }, /area/centcom/main_hall) "qUY" = ( -/obj/structure/table/bench/marble, -/turf/simulated/floor/tiled/techfloor, +/obj/effect/floor_decal/shuttles{ + dir = 4 + }, +/turf/simulated/wall/tgmc/window/darkwall/reinf{ + icon_state = "darkwall_rwindow3" + }, /area/shadekin) "qVa" = ( /obj/machinery/teleport/hub, @@ -14535,6 +18202,21 @@ /obj/item/clothing/gloves/yellow, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"qVD" = ( +/obj/effect/floor_decal/corner/black/diagonal, +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/condimentbottles, +/obj/item/weapon/reagent_containers/food/condiment/sugar{ + pixel_y = 0; + pixel_x = -5 + }, +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = 8; + pixel_x = 4 + }, +/obj/structure/curtain/open/bed, +/turf/simulated/floor/tiled/white, +/area/shadekin) "qVV" = ( /obj/structure/table/rack, /obj/item/clothing/glasses/night, @@ -14548,6 +18230,27 @@ }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"qWj" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/techfloor/corner{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"qXP" = ( +/obj/machinery/seed_extractor, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"qXR" = ( +/obj/effect/floor_decal/emblem/orangeline{ + name = "Orange Line"; + desc = "Exhausted of late deliveries? Annoyed by damaged goods? Being charged for multiple transports? Rely on Orange Line. The right prize for the right package." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "qYa" = ( /obj/structure/table/rack, /turf/simulated/shuttle/floor/voidcraft/dark, @@ -14559,6 +18262,14 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"qZO" = ( +/obj/item/toy/plushie/face_hugger, +/obj/item/toy/plushie/moth{ + pixel_y = 9; + pixel_x = -15 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "qZR" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-08" @@ -14586,6 +18297,65 @@ icon_state = "white" }, /area/centcom/medical) +"raJ" = ( +/obj/effect/floor_decal/corner/black/diagonal, +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/glasses/square{ + pixel_y = -2 + }, +/obj/item/weapon/storage/box/glass_extras/straws{ + pixel_y = 7 + }, +/obj/item/weapon/packageWrap, +/obj/item/weapon/packageWrap, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppergrinder{ + pixel_y = 2; + pixel_x = 5 + }, +/obj/structure/curtain/open/bed, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"rbA" = ( +/obj/item/toy/AI, +/obj/item/toy/plushie/lizardplushie{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/toy/plushie/squid/orange{ + pixel_y = -15; + pixel_x = -4 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"rbF" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "rbV" = ( /obj/structure/table/wooden_reinforced, /obj/item/device/radio/uplink, @@ -14594,6 +18364,22 @@ icon_state = "wood" }, /area/ninja_dojo/dojo) +"rdA" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/device/starcaster_news, +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"rdD" = ( +/obj/structure/flora/bboulder1, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "rdH" = ( /obj/machinery/computer/timeclock/premade/east, /turf/unsimulated/floor{ @@ -14621,6 +18407,14 @@ icon_state = "freezerfloor" }, /area/ninja_dojo/dojo) +"rfz" = ( +/obj/structure/table/bench/sifwooden/padded, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "rgl" = ( /obj/structure/sign/directions/medical{ dir = 1; @@ -14650,6 +18444,22 @@ icon_state = "vault" }, /area/centcom/bar) +"rgL" = ( +/obj/item/toy/plushie/borgplushie/drake/mine, +/obj/item/toy/plushie/carp/gold{ + pixel_y = -1; + pixel_x = -6 + }, +/obj/item/toy/plushie/crimson_fox{ + pixel_y = -11; + pixel_x = -9 + }, +/obj/item/toy/plushie/siamese_cat{ + pixel_y = 11; + pixel_x = 5 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "rht" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -14671,6 +18481,10 @@ icon_state = "vault" }, /area/centcom/main_hall) +"rjH" = ( +/obj/structure/bed/chair/bay/chair/padded/red/smallnest, +/turf/simulated/floor/carpet, +/area/shadekin) "rjI" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/light/small{ @@ -14685,6 +18499,16 @@ icon_state = "vault" }, /area/centcom/specops) +"rky" = ( +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = -3 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ + pixel_x = 3 + }, +/obj/structure/table/wooden_reinforced, +/turf/simulated/floor/wood/sif, +/area/shadekin) "rkG" = ( /turf/unsimulated/wall{ desc = "That looks like it doesn't open easily."; @@ -14694,12 +18518,37 @@ name = "Shuttle Bay Blast Door" }, /area/centcom/evac) +"rlg" = ( +/obj/effect/floor_decal/techfloor, +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"rmy" = ( +/obj/structure/flora/log1, +/turf/simulated/floor/water/hotspring, +/area/shadekin) +"rmR" = ( +/obj/structure/safe/floor, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/coin, +/obj/random/coin, +/obj/random/coin, +/obj/random/coin, +/obj/random/coin, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "rmU" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-22" }, /turf/simulated/floor/carpet, /area/shuttle/merchant) +"rmX" = ( +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "rnf" = ( /obj/structure/bed/chair, /turf/simulated/floor/carpet, @@ -14792,6 +18641,11 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"rov" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/device/starcaster_news, +/turf/simulated/floor/wood/alt, +/area/shadekin) "roS" = ( /obj/structure/grille, /obj/structure/window/reinforced, @@ -14830,6 +18684,20 @@ /obj/item/weapon/lipstick/random, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"rpC" = ( +/obj/structure/table/hardwoodtable, +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) +"rqY" = ( +/obj/structure/table/steel, +/obj/structure/bedsheetbin, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "rry" = ( /obj/structure/undies_wardrobe, /turf/unsimulated/floor{ @@ -14853,6 +18721,12 @@ icon_state = "dark" }, /area/centcom/specops) +"rtb" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/turf/simulated/floor/bronze, +/area/shadekin) "rti" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -14860,14 +18734,7 @@ /turf/simulated/shuttle/floor/red, /area/shuttle/administration) "rtJ" = ( -/obj/structure/table/marble, -/obj/item/weapon/hand_labeler, -/obj/item/weapon/reagent_containers/food/condiment/small/sugar, -/obj/effect/floor_decal/corner/brown/diagonal, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/reinforced, /area/shadekin) "rtM" = ( /obj/structure/grille, @@ -14893,6 +18760,16 @@ }, /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"ruE" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "rvm" = ( /obj/structure/table/rack, /obj/item/rig_module/device/rcd, @@ -14904,6 +18781,15 @@ icon_state = "vault" }, /area/centcom/specops) +"rvp" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 9 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "rvN" = ( /obj/structure/flora/grass/brown, /turf/simulated/floor/holofloor/snow, @@ -14938,6 +18824,30 @@ /obj/item/weapon/bedsheet/hos, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"rxS" = ( +/obj/structure/closet/crate/laundry, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/junk, +/obj/random/junk, +/obj/random/junk, +/obj/random/junk, +/obj/random/junk, +/obj/random/junk, +/obj/random/junk, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"rzc" = ( +/obj/machinery/disposal/wall{ + pixel_y = 35 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/obj/structure/disposalpipe/trunk, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"rze" = ( +/obj/structure/disposalpipe/segment, +/turf/unsimulated/floor/dark, +/area/shadekin) "rzn" = ( /obj/item/weapon/storage/box/donkpockets{ pixel_x = 3; @@ -14948,6 +18858,13 @@ icon_state = "white" }, /area/wizard_station) +"rzz" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) "rzA" = ( /obj/structure/table/rack, /obj/item/clothing/mask/breath, @@ -15014,6 +18931,15 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/syndicate) +"rCx" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor, +/obj/random/donkpocketbox, +/obj/random/donkpocketbox, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "rCL" = ( /obj/effect/floor_decal/carpet, /obj/effect/floor_decal/carpet{ @@ -15033,6 +18959,13 @@ name = "plating" }, /area/centcom/specops) +"rEg" = ( +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor, +/area/shadekin) "rEm" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/machinery/icecream_vat, @@ -15047,6 +18980,21 @@ }, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) +"rFS" = ( +/obj/item/weapon/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/weapon/reagent_containers/food/condiment/enzyme, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "rGg" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/table/marble, @@ -15087,6 +19035,13 @@ }, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) +"rIA" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "rIX" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ dir = 1; @@ -15104,6 +19059,13 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"rJi" = ( +/obj/machinery/door/window/survival_pod{ + dir = 1 + }, +/obj/effect/floor_decal/stairs/dark_stairs, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) "rJt" = ( /turf/simulated/shuttle/wall/dark/no_join, /area/centcom/specops) @@ -15114,6 +19076,14 @@ icon_state = "dark" }, /area/centcom/creed) +"rJW" = ( +/obj/item/weapon/flame/candle/candelabra/everburn{ + pixel_y = 19; + lit = 1 + }, +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "rKQ" = ( /obj/structure/flora/ausbushes/brflowers, /obj/effect/floor_decal/spline/fancy/wood/corner{ @@ -15162,6 +19132,11 @@ icon_state = "steel" }, /area/shuttle/trade) +"rLA" = ( +/obj/random/trash, +/obj/random/junk, +/turf/simulated/floor, +/area/shadekin) "rLR" = ( /obj/machinery/computer/pod{ id = "NTrasen"; @@ -15182,6 +19157,10 @@ /obj/structure/bed/chair, /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"rNG" = ( +/obj/effect/floor_decal/corner/green/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "rNJ" = ( /obj/machinery/teleport/station, /turf/unsimulated/floor{ @@ -15228,6 +19207,18 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"rOX" = ( +/obj/item/toy/plushie/carp, +/obj/item/toy/plushie/corgi{ + pixel_y = 6; + pixel_x = -7 + }, +/obj/item/toy/plushie/robo_corgi{ + pixel_x = 4; + pixel_y = 15 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "rPA" = ( /obj/structure/table/steel_reinforced, /obj/item/mecha_parts/mecha_equipment/tool/passenger, @@ -15254,8 +19245,25 @@ icon_state = "dark" }, /area/centcom/security) +"rRL" = ( +/obj/machinery/appliance/cooker/grill, +/obj/effect/floor_decal/techfloor, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"rSl" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/machinery/light{ + dir = 2; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "rSm" = ( -/obj/structure/table/sifwooden_reinforced, +/obj/structure/table/wooden_reinforced, /turf/simulated/floor/wood/sif, /area/shadekin) "rSL" = ( @@ -15267,16 +19275,23 @@ }, /area/centcom/medical) "rTt" = ( -/obj/structure/bed/double, -/obj/item/weapon/bedsheet/hopdouble, -/turf/simulated/floor/wood/sif, +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) +"rTw" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/bronze, /area/shadekin) "rTz" = ( -/obj/structure/table/rack/gun_rack, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/carpet/green, /area/shadekin) "rUb" = ( /obj/structure/table/standard, @@ -15293,6 +19308,13 @@ icon_state = "steel" }, /area/centcom/terminal) +"rUx" = ( +/obj/machinery/smartfridge/drying_rack, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "rVH" = ( /turf/simulated/floor, /area/shadekin) @@ -15312,6 +19334,14 @@ }, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"rWU" = ( +/obj/structure/table/marble, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) "rXa" = ( /obj/machinery/door/airlock/centcom{ name = "Administrative Office"; @@ -15370,8 +19400,15 @@ /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_theatre) "rZf" = ( -/obj/structure/table/gamblingtable, -/turf/simulated/floor/wood/alt, +/obj/random/junk, +/obj/random/junk, +/turf/simulated/floor, +/area/shadekin) +"rZg" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 1 + }, +/turf/simulated/floor/carpet/turcarpet, /area/shadekin) "rZh" = ( /obj/machinery/light{ @@ -15379,6 +19416,13 @@ }, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"rZt" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "rZW" = ( /obj/structure/table/holotable, /obj/item/clothing/gloves/boxing/hologlove{ @@ -15402,6 +19446,13 @@ /obj/item/device/aicard, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"saM" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "saX" = ( /obj/machinery/door/window/northright{ dir = 2 @@ -15485,6 +19536,12 @@ icon_state = "dark" }, /area/centcom/security) +"sbM" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "scG" = ( /obj/machinery/light/small{ dir = 4 @@ -15497,6 +19554,16 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_boxingcourt) +"ses" = ( +/obj/machinery/door/airlock/angled_tgmc/cell{ + dir = 8; + name = "Room 3" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "seQ" = ( /obj/structure/table/marble, /obj/machinery/chemical_dispenser/bar_soft/full, @@ -15511,6 +19578,12 @@ name = "plating" }, /area/wizard_station) +"sfB" = ( +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "sgn" = ( /obj/item/device/suit_cooling_unit, /turf/unsimulated/floor{ @@ -15582,6 +19655,16 @@ }, /turf/space, /area/space) +"sjk" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 4; + opacity = 1 + }, +/obj/structure/table/rack/gun_rack/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/instrument, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "sjD" = ( /obj/structure/table/standard, /obj/item/roller, @@ -15617,6 +19700,16 @@ icon_state = "lino" }, /area/centcom/bar) +"skk" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "skB" = ( /obj/structure/grille, /obj/structure/window/reinforced{ @@ -15635,6 +19728,10 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"slw" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "slD" = ( /obj/machinery/door/airlock/external{ frequency = 1380; @@ -15682,6 +19779,13 @@ }, /turf/simulated/floor/carpet, /area/shuttle/merchant) +"sns" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 0; + pixel_x = -32 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "snC" = ( /obj/machinery/shower{ dir = 8 @@ -15693,21 +19797,26 @@ }, /area/centcom/specops) "snM" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lantern{ - pixel_y = 7 +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/red{ + pixel_y = 32; + name = "Crimson Arsenal"; + desc = "Making sure that one bullet is enough. Now with state of the art nanomachine ammunition!" }, -/turf/simulated/floor/wood/alt, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "sou" = ( -/obj/structure/table/rack/shelf, -/obj/structure/window/reinforced/survival_pod{ - dir = 8 - }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/bronze, +/area/shadekin) +"soM" = ( +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) +"soR" = ( +/obj/structure/table/marble, +/obj/random/maintenance/foodstuff, +/turf/simulated/floor/carpet/blucarpet, /area/shadekin) "spc" = ( /turf/unsimulated/wall, @@ -15729,19 +19838,11 @@ /turf/simulated/shuttle/plating, /area/shuttle/escape_pod3/centcom) "sqP" = ( -/obj/item/weapon/bedsheet/hopdouble{ - pixel_x = 7; - pixel_y = 11 +/obj/machinery/smartfridge/drinks, +/obj/effect/floor_decal/techfloor{ + dir = 4 }, -/obj/item/weapon/bedsheet/browndouble{ - pixel_y = -2; - pixel_x = 15 - }, -/obj/item/weapon/bedsheet/piratedouble{ - pixel_y = 1; - pixel_x = -5 - }, -/turf/simulated/floor/carpet/blucarpet, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "srg" = ( /obj/structure/bed/chair/comfy/red{ @@ -15751,10 +19852,9 @@ /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/syndicate) "srH" = ( -/obj/structure/bed/chair/bay/chair/padded/red/bignest{ - name = "large shadekin nest" - }, -/turf/simulated/floor/carpet/oracarpet, +/obj/structure/closet, +/obj/effect/floor_decal/milspec/cargo, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "ssk" = ( /obj/machinery/door/airlock/voidcraft/vertical{ @@ -15762,6 +19862,15 @@ }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/syndicate) +"ssT" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor{ + dir = 8 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "ssX" = ( /obj/structure/table/rack, /obj/item/clothing/accessory/holster/leg, @@ -15776,6 +19885,13 @@ icon_state = "vault" }, /area/centcom/specops) +"sta" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 9 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "sto" = ( /obj/structure/table/reinforced, /obj/item/weapon/handcuffs, @@ -15793,6 +19909,18 @@ icon_state = "vault" }, /area/centcom/specops) +"stN" = ( +/obj/effect/catwalk_plated/techmaint, +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8; + nightshift_enabled = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) "suM" = ( /obj/structure/table/standard, /obj/effect/floor_decal/corner/paleblue/full, @@ -15841,6 +19969,14 @@ icon_state = "dark" }, /area/wizard_station) +"sxT" = ( +/obj/structure/table/marble, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "syS" = ( /obj/item/toy/chess/knight_black, /turf/simulated/floor/holofloor/wmarble, @@ -15909,9 +20045,23 @@ icon_state = "vault" }, /area/centcom/command) +"sAG" = ( +/obj/item/toy/plushie/borgplushie/drake/med, +/turf/simulated/floor/reinforced, +/area/shadekin) +"sBo" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/obj/machinery/beehive, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) "sBy" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/simulated/floor/wood/alt, +/obj/structure/bed/chair/bay, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "sBF" = ( /obj/item/broken_device, @@ -15944,6 +20094,13 @@ icon_state = "vault" }, /area/centcom/specops) +"sEM" = ( +/obj/machinery/vending/sol, +/obj/effect/floor_decal/techfloor/orange{ + dir = 6 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "sEU" = ( /obj/machinery/door/airlock/centcom{ name = "General Access"; @@ -15989,13 +20146,33 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_courtroom) +"sFy" = ( +/obj/machinery/vending/giftvendor, +/turf/simulated/floor/reinforced, +/area/shadekin) +"sFQ" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/green, +/area/shadekin) +"sFS" = ( +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "sGE" = ( /obj/machinery/computer/crew, /turf/simulated/shuttle/floor/black, /area/centcom/evac) "sHg" = ( -/obj/machinery/door/airlock/angled_bay/standard/glass/common, -/turf/simulated/floor/tiled/steel_ridged, +/obj/effect/floor_decal/milspec/monotile, +/obj/effect/floor_decal/milspec/stripe{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "sHF" = ( /obj/structure/table/rack, @@ -16056,6 +20233,16 @@ icon_state = "vault" }, /area/centcom/specops) +"sLr" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/weapon/reagent_containers/food/condiment/small/peppermill{ + pixel_x = 3 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = -3 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "sLw" = ( /obj/structure/table/rack, /obj/item/weapon/gun/energy/stunrevolver, @@ -16096,13 +20283,30 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"sMC" = ( +/obj/effect/floor_decal/emblem/blu{ + name = "Evangelian Scouts"; + desc = "Space fairing combat, the safe way to sparing other ships. Submit your ship today!" + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) +"sMQ" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/random/meat, +/obj/effect/floor_decal/corner/black/diagonal, +/obj/item/weapon/storage/fancy/egg_box, +/obj/item/weapon/storage/fancy/egg_box, +/turf/simulated/floor/tiled/white, +/area/shadekin) "sNe" = ( /obj/structure/urinal{ pixel_y = 27 }, -/obj/effect/floor_decal/rust{ - color = "black" - }, +/obj/effect/floor_decal/milspec/color/silver, /turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "sOh" = ( @@ -16120,6 +20324,13 @@ /obj/machinery/floodlight, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"sPq" = ( +/obj/machinery/vending/blood, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "sQM" = ( /obj/structure/window/reinforced{ dir = 8 @@ -16129,6 +20340,12 @@ icon_state = "vault" }, /area/centcom/specops) +"sRc" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "sRg" = ( /obj/structure/bed/chair{ dir = 8 @@ -16141,12 +20358,27 @@ /obj/structure/table/standard, /turf/simulated/shuttle/floor, /area/centcom/evac) +"sTx" = ( +/obj/structure/bed/double, +/obj/item/weapon/bedsheet/hosdouble, +/turf/simulated/floor/bronze, +/area/shadekin) "sTI" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"sUh" = ( +/obj/item/weapon/reagent_containers/food/condiment/small/sugar, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "sUq" = ( /obj/machinery/vending/cigarette, /obj/machinery/light{ @@ -16163,6 +20395,11 @@ icon_state = "lino" }, /area/tdome) +"sUX" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/reagent_dispensers/he3, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "sVf" = ( /obj/structure/closet/wardrobe/pjs, /turf/simulated/shuttle/floor/black, @@ -16189,10 +20426,22 @@ }, /area/centcom/creed) "sWO" = ( -/obj/structure/closet/crate/wooden, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/toy/plushie/carp/toxin, +/obj/item/toy/plushie/grey_cat{ + pixel_y = -8; + pixel_x = -7 }, +/obj/item/toy/plushie/octopus{ + pixel_y = 12; + pixel_x = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"sXv" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "sXZ" = ( @@ -16244,6 +20493,10 @@ icon_state = "vault" }, /area/centcom/specops) +"sYR" = ( +/obj/machinery/vending/event/accessory, +/turf/simulated/floor/reinforced, +/area/shadekin) "sYX" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/closet/secure_closet/freezer/fridge, @@ -16271,6 +20524,18 @@ }, /turf/simulated/floor/carpet, /area/shuttle/merchant) +"sZX" = ( +/obj/structure/flora/tree/jungle, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) +"tae" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) "tau" = ( /obj/structure/table/rack, /obj/item/weapon/gun/launcher/crossbow, @@ -16310,11 +20575,15 @@ /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) "tcW" = ( -/obj/structure/safe/floor, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/toy/plushie/mouse/white{ + pixel_y = 3; + pixel_x = -12 }, -/turf/simulated/floor/tiled/techmaint, +/obj/item/toy/plushie/therapy/green{ + pixel_y = -5; + pixel_x = 7 + }, +/turf/simulated/floor/reinforced, /area/shadekin) "tdL" = ( /obj/structure/bed/padded, @@ -16352,15 +20621,10 @@ /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) "tfg" = ( -/obj/structure/prop/statue{ - pixel_y = 4 +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 4 }, -/obj/structure/flora/ausbushes/ppflowers, -/obj/effect/floor_decal/spline/fancy{ - dir = 1 - }, -/obj/effect/floor_decal/spline/fancy, -/turf/simulated/floor/grass2, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "tfp" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ @@ -16382,14 +20646,19 @@ icon_state = "steel" }, /area/shuttle/trade) +"tfB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "tgB" = ( -/obj/structure/closet/secure_closet/freezer/kitchen{ - locked = 0 +/obj/effect/floor_decal/milspec/monotile, +/obj/effect/floor_decal/milspec/cargo_arrow{ + dir = 8 }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "tgP" = ( /obj/structure/table/rack, @@ -16414,6 +20683,13 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/simulated/shuttle/floor/darkred, /area/shuttle/skipjack) +"thj" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/milspec/stripe{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "thq" = ( /obj/structure/sign/directions/medical{ dir = 4 @@ -16449,6 +20725,13 @@ icon_state = "steel" }, /area/tdome) +"tiU" = ( +/obj/item/toy/plushie/tuxedo_cat{ + pixel_y = -6; + pixel_x = 17 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "tjr" = ( /obj/structure/reagent_dispensers/fueltank, /turf/simulated/shuttle/plating, @@ -16575,6 +20858,12 @@ /obj/machinery/recharge_station, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"tpB" = ( +/obj/structure/bed/chair/bay/chair/padded/red/bignest{ + name = "large shadekin nest" + }, +/turf/simulated/floor/carpet, +/area/shadekin) "tpI" = ( /obj/structure/table/steel_reinforced, /obj/item/rig_module/chem_dispenser/ninja, @@ -16694,6 +20983,13 @@ icon_state = "freezerfloor" }, /area/centcom/specops) +"twG" = ( +/obj/structure/sink/kitchen{ + pixel_y = -18; + name = "sink" + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "txl" = ( /obj/structure/table/rack, /obj/item/weapon/gun/energy/xray, @@ -16702,6 +20998,14 @@ icon_state = "dark" }, /area/centcom/specops) +"txA" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "txB" = ( /obj/machinery/door/airlock/glass{ name = "Dock" @@ -16728,6 +21032,22 @@ icon_state = "freezerfloor" }, /area/ninja_dojo/dojo) +"tyg" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/structure/table/rack/shelf/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/obj/random/maintenance/engineering, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "tyq" = ( /obj/structure/grille, /obj/structure/window/reinforced, @@ -16751,6 +21071,28 @@ name = "grass" }, /area/wizard_station) +"tzO" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) +"tAp" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"tBg" = ( +/obj/structure/table/reinforced, +/obj/random/maintenance/engineering, +/turf/simulated/floor, +/area/shadekin) "tBo" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/box, @@ -16758,12 +21100,54 @@ icon_state = "dark" }, /area/centcom/specops) -"tCi" = ( -/obj/structure/table/rack/gun_rack/steel, -/obj/effect/floor_decal/rust{ - color = "black" +"tCh" = ( +/obj/item/toy/plushie/orange_fox{ + pixel_y = -5; + pixel_x = -15 }, -/turf/simulated/floor/tiled/techmaint, +/obj/item/toy/plushie/therapy/orange{ + pixel_y = -7; + pixel_x = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"tCi" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/table/rack/shelf, +/obj/item/weapon/towel/random{ + pixel_x = -2; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/weapon/towel/random{ + pixel_x = -2; + pixel_y = -8 + }, +/obj/random/soap{ + pixel_y = 2 + }, +/obj/random/soap{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/structure/window/basic{ + dir = 4 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) +"tCn" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/green, /area/shadekin) "tCw" = ( /obj/structure/bed/chair/shuttle{ @@ -16845,17 +21229,22 @@ /obj/structure/filingcabinet/filingcabinet, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"tFW" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "tGR" = ( -/obj/item/weapon/bedsheet/double{ - pixel_y = -3; - pixel_x = -9 +/obj/structure/bed/chair/bay/chair/padded/red/smallnest, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) +"tHP" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 10 }, -/obj/item/weapon/bedsheet/hosdouble{ - pixel_y = -4; - pixel_x = 10 - }, -/obj/item/toy/plushie/fluff, -/turf/simulated/floor/carpet/blucarpet, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "tIw" = ( /obj/structure/closet/secure_closet/bar, @@ -16863,6 +21252,9 @@ icon_state = "lino" }, /area/centcom/bar) +"tIW" = ( +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "tJN" = ( /obj/item/weapon/extinguisher, /turf/unsimulated/floor{ @@ -16871,8 +21263,67 @@ }, /area/centcom/specops) "tKH" = ( -/obj/structure/closet/emcloset/legacy, -/turf/simulated/floor/tiled/steel_dirty, +/obj/structure/closet/secure_closet/freezer/fridge{ + locked = 0 + }, +/obj/item/weapon/storage/box/donkpockets/gondola{ + pixel_y = -7 + }, +/obj/item/weapon/storage/box/donkpockets/gondola{ + pixel_y = -7 + }, +/obj/item/weapon/storage/box/donkpockets/gondola{ + pixel_y = -7 + }, +/obj/item/weapon/storage/box/donkpockets/berry{ + pixel_y = -3 + }, +/obj/item/weapon/storage/box/donkpockets/berry{ + pixel_y = -3 + }, +/obj/item/weapon/storage/box/donkpockets/berry{ + pixel_y = -3 + }, +/obj/item/weapon/storage/box/donkpockets/honk{ + pixel_y = 1 + }, +/obj/item/weapon/storage/box/donkpockets/honk{ + pixel_y = 1 + }, +/obj/item/weapon/storage/box/donkpockets/honk{ + pixel_y = 1 + }, +/obj/item/weapon/storage/box/donkpockets/pizza{ + pixel_y = 5 + }, +/obj/item/weapon/storage/box/donkpockets/pizza{ + pixel_y = 5 + }, +/obj/item/weapon/storage/box/donkpockets/pizza{ + pixel_y = 5 + }, +/obj/item/weapon/storage/box/donkpockets/spicy{ + pixel_y = 9 + }, +/obj/item/weapon/storage/box/donkpockets/spicy{ + pixel_y = 9 + }, +/obj/item/weapon/storage/box/donkpockets/spicy{ + pixel_y = 9 + }, +/obj/item/weapon/storage/box/donkpockets/teriyaki{ + pixel_y = 13 + }, +/obj/item/weapon/storage/box/donkpockets/teriyaki{ + pixel_y = 13 + }, +/obj/item/weapon/storage/box/donkpockets/teriyaki{ + pixel_y = 13 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "tKV" = ( /obj/structure/bed/chair{ @@ -16884,12 +21335,27 @@ }, /area/centcom/command) "tLj" = ( -/obj/machinery/seed_storage/garden, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/cash_register/civilian{ + pixel_y = 0; + pixel_x = 6 }, +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/effect/floor_decal/techfloor, /turf/simulated/floor/tiled/techmaint, /area/shadekin) +"tLx" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "tMa" = ( /obj/effect/forcefield{ desc = "You can't get in. Heh."; @@ -16912,6 +21378,13 @@ /obj/item/weapon/mop, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"tMW" = ( +/obj/effect/floor_decal/emblem/nt1{ + name = "Nanotrasen"; + desc = "Looking for a stable, high paying and death free enviroment? NT is hiring +NOW!+. Apply now at any of our offices." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "tNc" = ( /turf/simulated/shuttle/floor, /area/shuttle/supply) @@ -16920,6 +21393,16 @@ icon_state = "white" }, /area/wizard_station) +"tNx" = ( +/obj/structure/table/marble, +/obj/item/weapon/material/knife/butch, +/obj/item/weapon/material/kitchen/rollingpin{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/effect/floor_decal/corner/black/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "tOU" = ( /obj/effect/floor_decal/industrial/loading{ dir = 8 @@ -16993,12 +21476,33 @@ /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) "tTY" = ( -/obj/machinery/appliance/cooker/oven, -/obj/effect/floor_decal/rust{ - color = "black" +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) +"tUe" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1 }, /turf/simulated/floor/tiled/techmaint, /area/shadekin) +"tUH" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"tUY" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/bronze, +/area/shadekin) "tVg" = ( /obj/machinery/gibber, /turf/unsimulated/floor{ @@ -17013,6 +21517,16 @@ icon_state = "freezerfloor" }, /area/centcom/bar) +"tVX" = ( +/obj/structure/table/marble, +/obj/item/weapon/material/knife/butch, +/obj/item/weapon/material/kitchen/rollingpin{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "tWr" = ( /obj/machinery/door/airlock/hatch{ req_access = list(150) @@ -17047,6 +21561,15 @@ icon_state = "steel" }, /area/shuttle/trade) +"tYi" = ( +/obj/effect/catwalk_plated/techmaint, +/obj/machinery/light/small{ + dir = 4; + pixel_y = 0; + nightshift_enabled = 1 + }, +/turf/simulated/floor, +/area/shadekin) "tZi" = ( /obj/structure/curtain/open/shower, /obj/machinery/shower{ @@ -17056,6 +21579,12 @@ icon_state = "white" }, /area/shuttle/trade) +"tZr" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "tZu" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 5 @@ -17079,6 +21608,13 @@ /obj/structure/bed/chair/comfy/red, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/syndicate) +"uaj" = ( +/obj/machinery/biogenerator, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "uam" = ( /obj/machinery/door/airlock, /turf/simulated/shuttle/floor, @@ -17129,6 +21665,10 @@ icon_state = "lino" }, /area/tdome/tdomeadmin) +"ucV" = ( +/obj/structure/loot_pile/maint/technical, +/turf/simulated/floor, +/area/shadekin) "udo" = ( /obj/item/toy/chess/queen_black, /turf/simulated/floor/holofloor/bmarble{ @@ -17136,13 +21676,60 @@ }, /area/holodeck/source_chess) "ueJ" = ( -/obj/structure/bed/double{ - pixel_x = -1 +/obj/item/toy/plushie/foxbear, +/obj/item/toy/plushie/otter{ + pixel_y = -6; + pixel_x = -11 }, -/obj/item/weapon/bedsheet/hopdouble{ - pixel_y = 0 +/obj/item/toy/plushie/teshari{ + pixel_y = -16 }, -/turf/simulated/floor/carpet/tealcarpet, +/turf/simulated/floor/reinforced, +/area/shadekin) +"ufm" = ( +/obj/structure/closet/emcloset/legacy, +/turf/simulated/floor/wood/alt, +/area/shadekin) +"ufq" = ( +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/glasses/square{ + pixel_y = -2 + }, +/obj/item/weapon/storage/box/glass_extras/straws{ + pixel_y = 7 + }, +/obj/item/weapon/packageWrap, +/obj/item/weapon/packageWrap, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/fork, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/material/kitchen/utensil/spoon{ + pixel_x = 2 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/saltshaker{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/item/weapon/reagent_containers/food/condiment/small/peppergrinder{ + pixel_y = 2; + pixel_x = 5 + }, +/obj/structure/curtain/open/bed, +/obj/structure/window/reinforced/survival_pod{ + opacity = 1 + }, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, /area/shadekin) "ufx" = ( /obj/machinery/door/window/holowindoor{ @@ -17190,16 +21777,8 @@ /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) "uiU" = ( -/obj/structure/bed/double{ - pixel_y = 0; - pixel_x = 1 - }, -/obj/item/weapon/bedsheet/hopdouble, -/obj/item/weapon/bedsheet/hopdouble{ - pixel_y = 0; - pixel_x = 16 - }, -/turf/simulated/floor/carpet/tealcarpet, +/obj/machinery/honey_extractor, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "uiY" = ( /obj/machinery/vending/assist{ @@ -17277,6 +21856,17 @@ }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"ukh" = ( +/obj/structure/table/marble{ + color = "#2b2b2b" + }, +/obj/item/weapon/reagent_containers/glass/rag{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "uku" = ( /obj/structure/table/rack, /obj/item/weapon/storage/belt/utility/full, @@ -17285,9 +21875,15 @@ /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) "ukZ" = ( -/obj/structure/bed/double, -/obj/item/weapon/bedsheet/piratedouble, -/turf/simulated/floor/carpet/retro_red, +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "ulb" = ( /obj/structure/table/rack, @@ -17295,6 +21891,11 @@ /obj/item/device/multitool, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"ulh" = ( +/obj/structure/table/hardwoodtable, +/obj/item/toy/eight_ball/conch, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "ulU" = ( /obj/machinery/shower{ dir = 8; @@ -17343,6 +21944,15 @@ icon_state = "white" }, /area/ninja_dojo/dojo) +"uoc" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/item/device/radio/subspace{ + desc = "A heavy duty radio that can pick up all manor of shortwave and subspace frequencies. It's a bit bulkier than a normal radio thanks to the extra hardware. An engraving on the frame reads: IF FOUND, RETURN TO THE BAR!"; + name = "Bar subspace radio"; + pixel_y = 5 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "uoS" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -17383,6 +21993,11 @@ icon_state = "vault" }, /area/centcom/specops) +"urz" = ( +/obj/machinery/appliance/cooker/oven, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "use" = ( /obj/structure/table/woodentable, /obj/item/weapon/paper_bin{ @@ -17409,6 +22024,13 @@ }, /turf/simulated/floor/holofloor/wood, /area/holodeck/source_courtroom) +"utD" = ( +/obj/machinery/light/bigfloorlamp{ + nightshift_enabled = 1; + pixel_y = 10 + }, +/turf/unsimulated/elevator_shaft, +/area/shadekin) "uvq" = ( /obj/effect/floor_decal/industrial/warning{ dir = 9 @@ -17469,6 +22091,12 @@ icon_state = "wood_broken3" }, /area/ninja_dojo/dojo) +"uxc" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "uxu" = ( /obj/effect/floor_decal/industrial/warning, /turf/unsimulated/floor{ @@ -17486,6 +22114,20 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_courtroom) +"uxO" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/sink/kitchen{ + pixel_y = 0; + dir = 8; + pixel_x = -13 + }, +/obj/structure/mirror{ + dir = 4; + pixel_x = -26; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "uyi" = ( /turf/space, /turf/space, @@ -17506,6 +22148,10 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"uAp" = ( +/obj/structure/table/sifwooden_reinforced, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "uBb" = ( /obj/structure/bed/chair/shuttle{ dir = 4 @@ -17513,9 +22159,19 @@ /turf/simulated/shuttle/floor, /area/shuttle/escape/centcom) "uCs" = ( -/obj/structure/prop/statue/pillar/dark, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"uCB" = ( +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 }, /turf/simulated/floor/tiled/techmaint, /area/shadekin) @@ -17550,6 +22206,10 @@ /obj/machinery/light, /turf/simulated/shuttle/floor/white, /area/centcom/main_hall) +"uEJ" = ( +/obj/machinery/vending/event/overwear, +/turf/simulated/floor/reinforced, +/area/shadekin) "uFo" = ( /obj/structure/table/wooden_reinforced, /obj/item/weapon/card/id/gold/captain/spare, @@ -17576,9 +22236,10 @@ }, /area/tdome) "uHV" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lamp, -/turf/simulated/floor/wood/sif, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "uIb" = ( /obj/structure/bed/chair, @@ -17641,11 +22302,10 @@ }, /area/centcom/security) "uLr" = ( -/obj/structure/table/bench/marble, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/structure/table/marble{ + color = "#2b2b2b" }, -/turf/simulated/floor/tiled/techfloor, +/turf/simulated/floor/carpet/brown, /area/shadekin) "uLx" = ( /obj/machinery/door/window{ @@ -17664,19 +22324,41 @@ /obj/machinery/vending/snack, /turf/simulated/shuttle/floor/red, /area/shuttle/administration) +"uMg" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "uMq" = ( /turf/simulated/shuttle/floor/black, /area/shuttle/skipjack) +"uMw" = ( +/obj/item/toy/plushie/orange_cat{ + pixel_y = -4; + pixel_x = 15 + }, +/obj/item/toy/plushie/squid/green{ + pixel_y = 6; + pixel_x = -10 + }, +/obj/item/toy/plushie/therapy/purple{ + pixel_y = 7; + pixel_x = 19 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "uNb" = ( /obj/structure/table/sifwooden_reinforced, /turf/simulated/floor/wood/alt, /area/shadekin) "uNs" = ( -/obj/structure/lattice, -/obj/structure/window/reinforced/survival_pod{ - dir = 1 +/obj/item/toy/plushie/vox{ + pixel_y = -13; + pixel_x = -8 }, -/turf/simulated/floor, +/turf/simulated/floor/reinforced, /area/shadekin) "uNS" = ( /obj/machinery/door/window/holowindoor{ @@ -17687,6 +22369,21 @@ }, /turf/simulated/floor/holofloor/tiled/dark, /area/holodeck/source_basketball) +"uOk" = ( +/obj/machinery/portable_atmospherics/hydroponics/soil, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 + }, +/area/shadekin) +"uOw" = ( +/obj/structure/closet/secure_closet/hydroponics{ + locked = 0 + }, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "uOy" = ( /obj/machinery/door/airlock/centcom{ name = "Special Operations"; @@ -17702,6 +22399,10 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"uOX" = ( +/obj/machinery/vending/foodmeat, +/turf/simulated/floor/reinforced, +/area/shadekin) "uPy" = ( /obj/machinery/light/small{ dir = 1 @@ -17763,12 +22464,21 @@ /obj/structure/flora/ausbushes/ywflowers, /turf/simulated/floor/holofloor/grass, /area/holodeck/source_picnicarea) -"uRl" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lantern{ - pixel_y = 7 +"uRa" = ( +/obj/machinery/door/airlock/angled_tgmc/medical_glass{ + name = "Bathroom" }, -/turf/simulated/floor/wood/sif, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) +"uRl" = ( +/obj/structure/table/bench/marble{ + color = "#2b2b2b" + }, +/obj/structure/flora/pottedplant/aquatic{ + pixel_y = 10; + name = "Kulutula" + }, +/turf/simulated/floor/carpet/bcarpet, /area/shadekin) "uRs" = ( /obj/structure/bed/chair{ @@ -17838,6 +22548,10 @@ icon_state = "steel" }, /area/centcom/bar) +"uWe" = ( +/obj/machinery/door/airlock/angled_tgmc/maintenance, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "uXa" = ( /obj/structure/table/rack, /obj/item/device/lightreplacer, @@ -17866,6 +22580,10 @@ "uXF" = ( /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"uXG" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "uXT" = ( /obj/machinery/vending/cigarette{ name = "hacked cigarette machine"; @@ -17885,11 +22603,11 @@ /turf/simulated/shuttle/floor/white, /area/shuttle/skipjack) "uXY" = ( -/obj/structure/table/hardwoodtable, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 4 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/carpet/geo, /area/shadekin) "uYq" = ( /obj/structure/table/standard, @@ -17902,6 +22620,13 @@ }, /turf/simulated/floor/carpet, /area/shuttle/merchant) +"uYD" = ( +/obj/structure/closet/crate, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) +"uZf" = ( +/turf/simulated/floor/carpet/geo, +/area/shadekin) "uZA" = ( /turf/simulated/floor/holofloor/beach/sand, /area/holodeck/source_beach) @@ -17915,6 +22640,10 @@ icon_state = "vault" }, /area/centcom/specops) +"vaF" = ( +/mob/living/simple_mob/animal/passive/tindalos, +/turf/simulated/shuttle/wall/dark/hard_corner, +/area/space) "vaG" = ( /turf/simulated/shuttle/floor/white, /area/shuttle/skipjack) @@ -17923,6 +22652,17 @@ icon_state = "steel" }, /area/centcom/bar) +"vbz" = ( +/obj/effect/floor_decal/corner/black/diagonal, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"vbZ" = ( +/obj/machinery/vending/snack, +/turf/simulated/floor/reinforced, +/area/shadekin) "vco" = ( /obj/structure/toilet{ dir = 4 @@ -17963,6 +22703,14 @@ name = "plating" }, /area/centcom/specops) +"vda" = ( +/obj/effect/floor_decal/emblem/orangeline{ + dir = 4; + name = "Orange Line"; + desc = "Exhausted of late deliveries? Annoyed by damaged goods? Being charged for multiple transports? Rely on Orange Line. The right prize for the right package." + }, +/turf/simulated/wall/tgmc/darkwall, +/area/shadekin) "vde" = ( /obj/structure/table/standard, /obj/item/weapon/storage/firstaid/fire{ @@ -17974,6 +22722,13 @@ icon_state = "white" }, /area/centcom/medical) +"vdq" = ( +/obj/machinery/vending/bepis, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "vdG" = ( /obj/effect/floor_decal/corner/red/full, /turf/simulated/floor/holofloor/tiled, @@ -18000,10 +22755,28 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"veQ" = ( +/obj/machinery/light/small{ + brightness_color = "#DA0205"; + brightness_power = 1; + brightness_range = 5; + dir = 8; + nightshift_enabled = 1 + }, +/turf/simulated/floor, +/area/shadekin) "veR" = ( /obj/machinery/optable, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"vfc" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/rack/shelf/steel, +/turf/simulated/floor/carpet/blue2, +/area/shadekin) "vfs" = ( /obj/machinery/sleep_console, /turf/simulated/shuttle/floor/white, @@ -18026,6 +22799,13 @@ icon_state = "dark" }, /area/centcom/security) +"vfM" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/wood/alt, +/area/shadekin) "vfS" = ( /obj/structure/table/wooden_reinforced, /obj/machinery/button/remote/blast_door{ @@ -18078,10 +22858,39 @@ }, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"vju" = ( +/obj/item/weapon/bedsheet/hopdouble{ + pixel_x = 7; + pixel_y = 11 + }, +/obj/item/weapon/bedsheet/browndouble{ + pixel_y = -2; + pixel_x = 15 + }, +/obj/item/weapon/bedsheet/piratedouble{ + pixel_y = 1; + pixel_x = -5 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) +"vjT" = ( +/obj/machinery/door/airlock/angled_bay/standard/glass/common{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/shadekin) "vkl" = ( /obj/structure/frame/computer, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"vku" = ( +/obj/structure/table/marble, +/obj/structure/sink/countertop{ + pixel_y = 11 + }, +/obj/effect/floor_decal/corner/black/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) "vkA" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/table/marble, @@ -18135,6 +22944,24 @@ /obj/item/clothing/head/xenos, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"vmA" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 10 + }, +/obj/effect/floor_decal/techfloor/corner{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"vne" = ( +/obj/structure/prop/statue/phoron, +/turf/simulated/floor/outdoors/ice/dark_smooth{ + can_atmos_pass = 0; + nitrogen = 82.1472; + oxygen = 21.8366; + temperature = 293.15 + }, +/area/shadekin) "vny" = ( /obj/structure/closet/crate/freezer/rations, /turf/simulated/shuttle/floor/voidcraft, @@ -18204,11 +23031,10 @@ /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) "vpY" = ( -/obj/structure/table/marble, -/obj/machinery/microwave, -/obj/effect/floor_decal/rust{ - color = "black" - }, +/obj/structure/table/rack/gun_rack/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/tetheraid, +/obj/random/tetheraid, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "vpZ" = ( @@ -18335,6 +23161,12 @@ icon_state = "vault" }, /area/centcom/main_hall) +"vuP" = ( +/obj/structure/bed/chair/backed_grey{ + dir = 4 + }, +/turf/simulated/floor/bronze, +/area/shadekin) "vvv" = ( /obj/structure/table/rack, /obj/item/weapon/shield/energy, @@ -18378,11 +23210,27 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) -"vvS" = ( -/obj/effect/floor_decal/rust{ - color = "black" +"vvO" = ( +/obj/structure/closet/secure_closet/freezer/fridge{ + locked = 0 }, -/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/extinguisher_cabinet{ + pixel_x = 28 + }, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"vvS" = ( +/obj/structure/table/rack/shelf/steel, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, /turf/simulated/floor/tiled/techmaint, /area/shadekin) "vwm" = ( @@ -18394,6 +23242,15 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_emptycourt) +"vwH" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/table/hardwoodtable, +/obj/random/maintenance/foodstuff, +/turf/simulated/floor/carpet/bcarpet, +/area/shadekin) "vxa" = ( /obj/machinery/door/airlock/centcom{ name = "Courthouse" @@ -18468,6 +23325,10 @@ /obj/structure/table/holotable, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) +"vBG" = ( +/obj/structure/closet/crate/hydroponics/prespawned, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "vCt" = ( /turf/unsimulated/floor{ icon_state = "white" @@ -18487,6 +23348,13 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"vDC" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/retro, +/area/shadekin) "vDE" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-24" @@ -18495,6 +23363,13 @@ icon_state = "dark" }, /area/wizard_station) +"vDP" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/turf/unsimulated/floor/dark, +/area/shadekin) "vEf" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-06" @@ -18534,7 +23409,16 @@ }, /area/centcom/specops) "vHM" = ( -/turf/simulated/floor/carpet/oracarpet, +/obj/structure/table/bench/sifwooden/padded, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/simulated/floor/wood/sif, +/area/shadekin) +"vIl" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/closet/emcloset/legacy, +/turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "vIs" = ( /obj/machinery/light{ @@ -18542,6 +23426,17 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"vIG" = ( +/obj/structure/flora/ausbushes/ppflowers, +/obj/effect/floor_decal/spline/fancy{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy, +/obj/structure/prop/statue{ + pixel_y = 4 + }, +/turf/simulated/floor/grass2, +/area/shadekin) "vJB" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 9 @@ -18598,6 +23493,14 @@ icon_state = "dark" }, /area/shuttle/trade) +"vPi" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/bench/wooden, +/turf/simulated/floor/carpet, +/area/shadekin) "vRh" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/item/weapon/stool/padded, @@ -18621,6 +23524,14 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/transport1/centcom) +"vRF" = ( +/obj/structure/table/marble, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "vRK" = ( /obj/effect/floor_decal/industrial/warning{ dir = 5 @@ -18661,10 +23572,19 @@ /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) "vUe" = ( -/obj/structure/bed/chair/bay/chair/padded/red/bignest{ - name = "large shadekin nest" +/obj/effect/floor_decal/spline/fancy{ + dir = 1; + icon_state = "spline_fancy_cee" }, -/turf/simulated/floor/carpet/purple, +/obj/structure/flora/lily2, +/turf/simulated/floor/water/deep/pool, +/area/shadekin) +"vUq" = ( +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lantern{ + pixel_y = 7 + }, +/turf/simulated/floor/carpet/blue2, /area/shadekin) "vUT" = ( /obj/structure/table/rack, @@ -18687,14 +23607,10 @@ }, /area/wizard_station) "vVd" = ( -/obj/structure/table/rack/shelf/steel, -/obj/structure/window/reinforced/survival_pod{ - dir = 8 +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/outdoors/grass{ + outdoors = 0 }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, /area/shadekin) "vVS" = ( /obj/machinery/sleeper{ @@ -18729,6 +23645,9 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"vXr" = ( +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "vXY" = ( /obj/machinery/teleport/station, /turf/unsimulated/floor{ @@ -18753,16 +23672,50 @@ icon_state = "dark" }, /area/centcom/specops) +"vYu" = ( +/obj/item/toy/chewtoy/poly, +/obj/item/toy/chewtoy/tall/poly{ + pixel_y = 3; + pixel_x = -10 + }, +/obj/item/toy/plushie/carp/candy{ + pixel_y = -6 + }, +/obj/item/toy/plushie/possum{ + pixel_y = 10; + pixel_x = 10 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "vYY" = ( /obj/machinery/body_scanconsole, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"vZs" = ( +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "waO" = ( /obj/structure/table/standard, /turf/unsimulated/floor{ icon_state = "carpet" }, /area/shuttle/trade) +"waY" = ( +/obj/effect/floor_decal/shuttles/right{ + dir = 4 + }, +/turf/simulated/wall/tgmc/window/darkwall/reinf{ + icon_state = "darkwall_rwindow3" + }, +/area/shadekin) +"wbJ" = ( +/obj/structure/fans/hardlight/colorable/abductor, +/turf/unsimulated/elevator_shaft, +/area/shadekin) "wbS" = ( /obj/structure/table/reinforced, /obj/item/weapon/storage/firstaid/toxin{ @@ -18775,6 +23728,22 @@ icon_state = "vault" }, /area/centcom/specops) +"wch" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/table/rack/shelf/steel, +/obj/random/soap{ + pixel_y = -7 + }, +/obj/random/soap, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random{ + pixel_y = 4 + }, +/obj/item/weapon/towel/random{ + pixel_y = 9 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "wcp" = ( /obj/machinery/account_database{ name = "CentComm Accounts database" @@ -18784,18 +23753,48 @@ icon_state = "vault" }, /area/centcom/main_hall) +"wcD" = ( +/obj/structure/closet/emcloset/legacy, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/maintenance/security, +/obj/random/maintenance/security, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"wcE" = ( +/obj/item/weapon/stool/padded, +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "wda" = ( /obj/machinery/door/airlock/voidcraft{ req_access = list(150) }, /turf/simulated/shuttle/floor/voidcraft/dark, /area/shuttle/syndicate) +"wdg" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/milspec/stripe{ + dir = 5 + }, +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "wdG" = ( /obj/machinery/door/airlock, /turf/unsimulated/floor{ icon_state = "freezerfloor" }, /area/centcom/specops) +"wee" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/reinforced, +/area/shadekin) "wer" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/table/marble, @@ -18837,6 +23836,13 @@ }, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"wfq" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "wfz" = ( /obj/machinery/atmospherics/portables_connector{ dir = 4 @@ -18878,6 +23884,16 @@ icon_state = "steel" }, /area/centcom/terminal) +"wgy" = ( +/obj/effect/floor_decal/milspec/color/black/half{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "whJ" = ( /obj/effect/floor_decal/corner/green/full, /obj/structure/window/reinforced/holowindow/disappearing{ @@ -18915,6 +23931,10 @@ }, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"wlF" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "wlL" = ( /obj/effect/floor_decal/industrial/warning/cee{ dir = 4 @@ -18931,11 +23951,13 @@ }, /area/holodeck/source_chess) "wmy" = ( -/obj/structure/closet/crate, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/effect/floor_decal/milspec/color/orange, +/obj/effect/floor_decal/emblem/sword{ + pixel_y = 32; + name = "Salient Weaponry"; + desc = "Sharp enough to slice durasteel like butter, buy 5 get 1 for free!" }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "wmP" = ( /obj/structure/window/reinforced, @@ -18948,6 +23970,14 @@ }, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_theatre) +"wnO" = ( +/obj/structure/closet/crate/freezer, +/obj/effect/floor_decal/milspec/color/white, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/turf/simulated/floor/tiled/freezer, +/area/shadekin) "woi" = ( /obj/structure/table/standard, /obj/item/weapon/handcuffs/legcuffs, @@ -18965,9 +23995,24 @@ "wpF" = ( /turf/simulated/floor/carpet, /area/shuttle/merchant) +"wpP" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/mirror{ + pixel_y = 36; + pixel_x = 1 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "wqS" = ( /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) +"wrf" = ( +/obj/effect/floor_decal/rust/color_rusted{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "wrv" = ( /obj/machinery/sleep_console, /turf/unsimulated/floor{ @@ -19011,14 +24056,16 @@ /turf/simulated/shuttle/plating/airless/carry, /area/centcom/evac) "wtW" = ( -/obj/structure/table/rack/gun_rack, -/obj/structure/window/reinforced/survival_pod{ - dir = 8 +/obj/effect/floor_decal/milspec/color/silver, +/obj/structure/toilet/prison{ + dir = 8; + name = "toilet" }, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/light/small{ + dir = 1; + nightshift_enabled = 1 }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/tiled/milspec/sterile, /area/shadekin) "wuk" = ( /obj/structure/table/rack, @@ -19083,6 +24130,10 @@ }, /turf/simulated/shuttle/plating, /area/shuttle/skipjack) +"wxh" = ( +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "wxk" = ( /obj/machinery/computer/timeclock/premade/south, /turf/unsimulated/floor{ @@ -19126,9 +24177,10 @@ /turf/unsimulated/wall, /area/space) "wzH" = ( -/obj/structure/table/bench/wooden, -/obj/item/device/flashlight/lamp/green, -/turf/simulated/floor/wood/alt, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/sblucarpet, /area/shadekin) "wAh" = ( /obj/machinery/light/small, @@ -19163,6 +24215,10 @@ icon_state = "white" }, /area/centcom/medical) +"wBv" = ( +/obj/machinery/vending/foodfish, +/turf/simulated/floor/reinforced, +/area/shadekin) "wCz" = ( /obj/structure/table/steel_reinforced, /obj/random/tech_supply, @@ -19218,11 +24274,9 @@ /turf/simulated/shuttle/plating, /area/shuttle/merchant) "wEC" = ( -/obj/item/device/flashlight/lantern{ - pixel_y = 7 - }, -/obj/structure/table/bench/wooden, -/turf/simulated/floor/wood/alt, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/hopdouble, +/turf/simulated/floor/carpet/retro, /area/shadekin) "wEZ" = ( /obj/item/device/radio/intercom{ @@ -19269,6 +24323,13 @@ icon_state = "wood" }, /area/centcom/bar) +"wHJ" = ( +/obj/machinery/vending/foodstuffing, +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "wIz" = ( /obj/machinery/atmospherics/pipe/manifold/visible{ dir = 1 @@ -19288,27 +24349,30 @@ }, /area/tdome) "wJV" = ( -/obj/structure/closet/crate/laundry, -/obj/effect/floor_decal/rust{ - color = "black" +/obj/item/toy/plushie/black_fox, +/obj/item/toy/plushie/carp/pink{ + pixel_y = -6; + pixel_x = -7 }, -/turf/simulated/floor/tiled/techmaint, +/obj/item/toy/plushie/pink_fox{ + pixel_y = -16; + pixel_x = -15 + }, +/obj/item/toy/plushie/purple_fox{ + pixel_y = 9; + pixel_x = 11 + }, +/turf/simulated/floor/reinforced, /area/shadekin) "wKx" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo"; - pixel_x = -5 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/floor_decal/rust{ - color = "black" - }, -/turf/simulated/floor/tiled/techmaint, +/turf/simulated/floor/wood/sif/broken, /area/shadekin) "wKW" = ( -/obj/effect/floor_decal/spline/fancy{ - dir = 1 - }, -/turf/simulated/wall/tgmc/darkwall, +/obj/effect/floor_decal/milspec/color/orange, +/turf/simulated/floor/tiled/steel_dirty, /area/shadekin) "wLc" = ( /obj/structure/bed/chair{ @@ -19338,6 +24402,16 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/merchant) +"wLx" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "wLB" = ( /obj/effect/floor_decal/carpet{ dir = 4 @@ -19387,6 +24461,13 @@ }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_boxingcourt) +"wMN" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/carpet/brown, +/area/shadekin) "wNh" = ( /obj/structure/window/reinforced{ dir = 1 @@ -19463,6 +24544,11 @@ }, /turf/simulated/shuttle/floor/red, /area/shuttle/skipjack) +"wPf" = ( +/obj/structure/table/bench/marble, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "wPA" = ( /obj/structure/table/reinforced, /obj/item/device/aicard, @@ -19475,6 +24561,12 @@ "wPR" = ( /turf/simulated/floor/holofloor/space, /area/holodeck/source_space) +"wQZ" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 1 + }, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) "wRt" = ( /obj/structure/table/steel_reinforced, /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster, @@ -19488,6 +24580,16 @@ /obj/machinery/clonepod, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"wRY" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) +"wSi" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor, +/area/shadekin) "wSo" = ( /obj/structure/sink{ dir = 4; @@ -19530,6 +24632,25 @@ /obj/machinery/optable, /turf/simulated/shuttle/floor/white, /area/shuttle/skipjack) +"wTb" = ( +/obj/structure/table/rack/shelf/steel, +/obj/item/weapon/storage/box/condimentbottles, +/obj/item/weapon/reagent_containers/food/condiment/sugar{ + pixel_y = 0; + pixel_x = -5 + }, +/obj/item/weapon/storage/box/donkpockets{ + pixel_y = 8; + pixel_x = 4 + }, +/obj/structure/curtain/open/bed, +/obj/effect/floor_decal/corner/brown/diagonal, +/turf/simulated/floor/tiled/white, +/area/shadekin) +"wTx" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/wood/alt, +/area/shadekin) "wTM" = ( /turf/simulated/floor/holofloor/wood, /area/holodeck/source_courtroom) @@ -19581,6 +24702,11 @@ icon_state = "lino" }, /area/wizard_station) +"wXU" = ( +/obj/structure/girder, +/obj/random/maintenance, +/turf/simulated/floor, +/area/shadekin) "wXW" = ( /obj/structure/table/rack, /obj/item/clothing/glasses/welding/superior, @@ -19607,17 +24733,40 @@ icon_state = "dark" }, /area/centcom/security) +"wZf" = ( +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/bronze, +/area/shadekin) +"wZw" = ( +/obj/machinery/vending/event/uniform, +/turf/simulated/floor/reinforced, +/area/shadekin) "wZL" = ( /obj/structure/shuttle/engine/propulsion{ dir = 8 }, /turf/simulated/shuttle/plating/airless/carry, /area/shuttle/response_ship) +"xbe" = ( +/obj/effect/floor_decal/techfloor{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"xbZ" = ( +/turf/simulated/floor/carpet/blue2, +/area/shadekin) "xcM" = ( /obj/structure/window/reinforced/holowindow, /obj/structure/holostool, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_thunderdomecourt) +"xdo" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/bronze, +/area/shadekin) "xdD" = ( /obj/structure/table/standard, /obj/item/weapon/surgical/cautery, @@ -19639,6 +24788,12 @@ icon_state = "white" }, /area/centcom/medical) +"xeq" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "xew" = ( /turf/simulated/floor/holofloor/bmarble{ color = "teal" @@ -19655,6 +24810,24 @@ }, /turf/simulated/shuttle/floor/yellow, /area/centcom/evac) +"xfB" = ( +/obj/structure/bed/chair/backed_red{ + dir = 1 + }, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) +"xfJ" = ( +/obj/structure/disposalpipe/broken{ + dir = 1 + }, +/turf/unsimulated/floor/dark, +/area/shadekin) +"xfW" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "xgm" = ( /obj/machinery/computer/communications, /turf/simulated/shuttle/floor/black, @@ -19665,6 +24838,16 @@ }, /turf/simulated/floor/holofloor/lino, /area/holodeck/source_meetinghall) +"xgQ" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/door/window/southleft, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) +"xif" = ( +/obj/structure/table/bench/marble, +/obj/item/device/flashlight/lamp, +/turf/simulated/floor/carpet/sblucarpet, +/area/shadekin) "xiw" = ( /obj/structure/closet/wardrobe/captain, /obj/item/weapon/gun/projectile/revolver/mateba, @@ -19694,6 +24877,14 @@ /obj/machinery/optable, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"xls" = ( +/obj/effect/floor_decal/milspec/color/black, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "xmx" = ( /turf/simulated/shuttle/plating, /area/shuttle/escape_pod3/centcom) @@ -19703,9 +24894,25 @@ icon_state = "steel" }, /area/centcom/main_hall) +"xnF" = ( +/obj/structure/bed/chair/backed_red{ + dir = 8 + }, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "xnQ" = ( /turf/simulated/shuttle/plating, /area/shuttle/escape_pod2/centcom) +"xom" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/bed/chair/backed_red{ + dir = 8 + }, +/turf/simulated/floor/carpet/retro_red, +/area/shadekin) "xoq" = ( /obj/structure/table/steel, /obj/item/weapon/material/knife{ @@ -19735,6 +24942,12 @@ /obj/structure/table/steel, /turf/simulated/shuttle/floor/voidcraft, /area/shuttle/syndicate) +"xpG" = ( +/obj/structure/bed/chair/oldsofa{ + dir = 1 + }, +/turf/simulated/floor/carpet/green, +/area/shadekin) "xpW" = ( /obj/structure/table/reinforced, /obj/item/bodybag/cryobag, @@ -19753,6 +24966,14 @@ /obj/machinery/portable_atmospherics/canister/oxygen/prechilled, /turf/simulated/shuttle/floor/white, /area/centcom/evac) +"xqZ" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/door/window/southright, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "xre" = ( /obj/structure/morgue{ dir = 8 @@ -19809,16 +25030,28 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/skipjack) +"xty" = ( +/obj/structure/closet, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/obj/random/maintenance/clean, +/turf/simulated/floor, +/area/shadekin) "xtD" = ( /obj/item/weapon/bedsheet/rainbow, /obj/structure/bed/padded, /turf/simulated/shuttle/floor/red, /area/shuttle/skipjack) "xvE" = ( -/obj/effect/floor_decal/rust{ - color = "black" +/obj/machinery/shower{ + dir = 1 }, -/turf/simulated/floor/tiled/techmaint, +/obj/structure/curtain/open/shower, +/obj/structure/window/basic{ + dir = 8 + }, +/obj/random/soap, +/turf/simulated/floor/tiled/freezer, /area/shadekin) "xvH" = ( /obj/machinery/recharger/wallcharger{ @@ -19837,8 +25070,14 @@ /turf/simulated/shuttle/floor/red, /area/shuttle/response_ship) "xvW" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/simulated/floor/wood/sif, +/obj/effect/floor_decal/techfloor{ + dir = 4 + }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor, /area/shadekin) "xwn" = ( /obj/machinery/sleep_console{ @@ -19871,6 +25110,19 @@ /obj/structure/window/reinforced/full, /turf/simulated/shuttle/plating, /area/shuttle/merchant) +"xys" = ( +/obj/machinery/ai_status_display{ + pixel_y = 28 + }, +/obj/effect/floor_decal/milspec/color/black, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) +"xyF" = ( +/obj/item/weapon/stool/padded, +/obj/effect/floor_decal/milspec/color/silver, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "xyK" = ( /obj/structure/shuttle/engine/propulsion{ dir = 8; @@ -19896,12 +25148,25 @@ /obj/effect/floor_decal/corner/green/full, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_basketball) +"xzH" = ( +/obj/effect/floor_decal/milspec/color/silver, +/obj/machinery/door/window/southleft, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/tiled/milspec/sterile, +/area/shadekin) "xzI" = ( /obj/effect/floor_decal/corner/green/full{ dir = 4 }, /turf/simulated/floor/holofloor/tiled, /area/holodeck/source_boxingcourt) +"xzN" = ( +/obj/structure/table/hardwoodtable, +/obj/item/device/flashlight/lamp/green, +/turf/simulated/floor/carpet/geo, +/area/shadekin) "xzQ" = ( /obj/structure/flora/pottedplant{ icon_state = "plant-20" @@ -19911,6 +25176,16 @@ icon_state = "vault" }, /area/wizard_station) +"xzY" = ( +/obj/structure/bed/double{ + pixel_y = -2 + }, +/obj/item/weapon/bedsheet/browndouble{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/simulated/floor/carpet/turcarpet, +/area/shadekin) "xAK" = ( /obj/effect/floor_decal/corner/white/diagonal, /obj/structure/table/marble, @@ -19963,13 +25238,22 @@ }, /turf/simulated/shuttle/floor/black, /area/centcom/evac) +"xDc" = ( +/obj/structure/table/rack/gun_rack/steel, +/obj/effect/floor_decal/milspec/cargo, +/obj/random/thermalponcho, +/obj/random/thermalponcho, +/obj/random/thermalponcho, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "xDw" = ( -/obj/item/weapon/bedsheet/greendouble, -/obj/item/weapon/bedsheet/hosdouble{ - pixel_y = 5; - pixel_x = 7 +/obj/machinery/light/floortube{ + nightshift_enabled = 1; + pixel_y = 0; + dir = 4; + pixel_x = -6 }, -/turf/simulated/floor/carpet/blucarpet, +/turf/simulated/floor/tiled/techmaint, /area/shadekin) "xDR" = ( /obj/structure/table/standard, @@ -20056,6 +25340,15 @@ }, /turf/simulated/shuttle/floor, /area/shuttle/transport1/centcom) +"xII" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/table/hardwoodtable, +/obj/random/maintenance/foodstuff, +/turf/simulated/floor/carpet/blucarpet, +/area/shadekin) "xIQ" = ( /obj/structure/window/reinforced{ dir = 8 @@ -20084,6 +25377,10 @@ icon_state = "vault" }, /area/centcom/specops) +"xJn" = ( +/obj/structure/flora/tree/jungle, +/turf/simulated/floor/outdoors/grass/heavy/atoll, +/area/shadekin) "xJr" = ( /turf/unsimulated/wall{ desc = "That looks like it doesn't open easily."; @@ -20184,11 +25481,28 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/skipjack) +"xNv" = ( +/obj/structure/closet/crate/hydroponics, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance, +/obj/random/maintenance/cargo, +/turf/simulated/floor, +/area/shadekin) "xNJ" = ( /obj/structure/holostool, /obj/effect/floor_decal/carpet, /turf/simulated/floor/holofloor/carpet, /area/holodeck/source_meetinghall) +"xNN" = ( +/obj/structure/table/sifwooden_reinforced, +/obj/structure/flora/pottedplant/smelly{ + pixel_y = 12; + desc = "This is some kind of tropical plant. It reeks of rotten eggs. Quite a dirty plant"; + name = "Dan" + }, +/turf/simulated/floor/tiled/techfloor, +/area/shadekin) "xNW" = ( /obj/effect/landmark{ name = "Commando" @@ -20278,6 +25592,14 @@ }, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"xRV" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/machinery/light{ + dir = 1; + nightshift_enabled = 1 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "xSn" = ( /obj/item/robot_parts/chest, /turf/unsimulated/floor{ @@ -20285,6 +25607,11 @@ name = "plating" }, /area/wizard_station) +"xSv" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/effect/floor_decal/milspec/cargo, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) "xST" = ( /obj/structure/bed/chair, /obj/machinery/light{ @@ -20390,6 +25717,12 @@ icon_state = "dark" }, /area/centcom/command) +"xZe" = ( +/obj/structure/closet/crate/hydroponics, +/obj/random/maintenance, +/obj/random/maintenance, +/turf/simulated/floor, +/area/shadekin) "xZf" = ( /obj/machinery/cell_charger, /obj/structure/table/reinforced, @@ -20398,6 +25731,15 @@ "yah" = ( /turf/unsimulated/wall, /area/centcom/suppy) +"yap" = ( +/obj/effect/floor_decal/milspec/color/orange, +/obj/structure/table/reinforced, +/obj/fiftyspawner/steel, +/obj/fiftyspawner/steel, +/obj/fiftyspawner/glass, +/obj/fiftyspawner/glass, +/turf/simulated/floor/tiled/steel_dirty, +/area/shadekin) "yaG" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 10 @@ -20420,6 +25762,21 @@ "ydh" = ( /turf/unsimulated/floor/dark, /area/shadekin) +"ydq" = ( +/obj/machinery/vending/dinnerware{ + dir = 1 + }, +/obj/effect/floor_decal/techfloor, +/turf/simulated/floor/tiled/techmaint, +/area/shadekin) +"ydX" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + icon_state = "pwindow" + }, +/obj/structure/table/hardwoodtable, +/turf/simulated/floor/carpet/tealcarpet, +/area/shadekin) "yeg" = ( /obj/effect/floor_decal/corner/paleblue/full{ dir = 4 @@ -20523,6 +25880,24 @@ /obj/effect/map_helper/airlock/atmos/chamber_pump, /turf/simulated/shuttle/floor/black, /area/shuttle/merchant) +"yib" = ( +/obj/item/toy/plushie/borgplushie/drake/sci{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/toy/plushie/carp/dragon{ + pixel_y = -5; + pixel_x = -4 + }, +/obj/item/toy/plushie/carp/nebula{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/toy/plushie/squid/pink{ + pixel_y = 13 + }, +/turf/simulated/floor/reinforced, +/area/shadekin) "yie" = ( /obj/machinery/atmospherics/pipe/simple/visible{ dir = 6 @@ -20536,6 +25911,10 @@ icon_state = "lino" }, /area/tdome/tdomeobserve) +"yiO" = ( +/obj/item/toy/chewtoy/tall, +/turf/simulated/floor/reinforced, +/area/shadekin) "yku" = ( /obj/item/weapon/mop, /obj/structure/mopbucket, @@ -20586,6 +25965,10 @@ /obj/item/weapon/reagent_containers/blood/OMinus, /turf/simulated/shuttle/floor/white, /area/shuttle/escape/centcom) +"ykT" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/simulated/floor/carpet/green, +/area/shadekin) (1,1,1) = {" vFi @@ -38390,88 +43773,88 @@ vFi vFi "} (70,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV vFi vFi vFi @@ -38648,88 +44031,88 @@ vFi vFi "} (71,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -38906,88 +44289,88 @@ vFi vFi "} (72,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -39164,88 +44547,88 @@ vFi vFi "} (73,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -39422,88 +44805,88 @@ vFi vFi "} (74,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -39680,88 +45063,88 @@ vFi vFi "} (75,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -39938,88 +45321,88 @@ vFi vFi "} (76,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -40196,88 +45579,88 @@ vFi vFi "} (77,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +mFz +rVH +orF +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -40454,88 +45837,88 @@ vFi vFi "} (78,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +mFz +rVH +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -40712,88 +46095,88 @@ vFi vFi "} (79,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +smh +rVH +xxL +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -40970,88 +46353,88 @@ vFi vFi "} (80,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +rVH +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +xxL +smh +meV +xWc +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -41228,88 +46611,88 @@ vFi vFi "} (81,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bAY +rVH +kyg +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +ydh +ydh +ydh +ydh +ydh +xxL +smh +meV +xWc +gsq +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -41486,88 +46869,88 @@ vFi vFi "} (82,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +wTT +wTT +wTT +bMy +bMy +bMy +vjT +bMy +vjT +bMy +bMy +bMy +wTT +wTT +wTT +bMy +bMy +bMy +ydh +ydh +ydh +ydh +ydh +bMy +vjT +bMy +vjT +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -41744,88 +47127,88 @@ vFi vFi "} (83,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +gzT +gzT +gzT +meV +uiU +uiU +bMy +fqz +bAY +kyg +bMy +gsl +gsl +ayP +jai +vBG +ovR +kIs +bMy +bMy +ydh +ydh +ydh +ydh +bMy +kyg +oTO +fqz +bMy +bMy +wTT +wTT +bMy +bMy +bMy +bMy +bMy +wTT +wTT +bMy +bMy +bMy +bMy +bMy +wTT +wTT +bMy +bMy +bMy +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -42002,88 +47385,88 @@ vFi vFi "} (84,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +kdo +kME +kME +kME +kME +kME +kME +bMy +sta +bAY +tHP +bMy +kME +kME +kME +kME +kME +kME +oIv +oqf +bMy +bMy +bMy +ydh +ydh +bMy +kyg +uCB +fqz +bMy +uRl +ajM +oYa +kKj +mSn +mAM +bMy +ooP +ioS +oYa +twG +wpP +kkP +bMy +aqj +rZg +oYa +kKj +mSn +mAM +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -42260,88 +47643,88 @@ vFi vFi "} (85,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +rUx +bAY +bAY +bAY +bAY +bAY +bAY +bAY +ngE +bAY +bAY +bAY +ngE +bAY +bAY +bAY +bAY +bAY +bAY +lvK +bAY +cwn +bhX +ydh +ydh +ydh +bhX +kyg +erA +fqz +bMy +sbM +eGj +oYa +bMy +tCi +ilG +bMy +xfW +eaF +oYa +kKj +xgQ +aVA +bMy +bZU +ghs +oYa +bMy +tCi +ilG +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -42518,88 +47901,88 @@ vFi vFi "} (86,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +rUx +bAY +njq +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +wLx +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +gZS +fqz +bMy +bOS +jHA +fbI +bMy +iwo +gBb +bMy +uZf +gko +fbI +bMy +kvr +lqC +bMy +tIW +tZr +fbI +bMy +iwo +gBb +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -42776,88 +48159,88 @@ vFi vFi "} (87,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +rUx +bAY +kyg +utD +oTO +oTO +ivs +ivs +oTO +ivs +ivs +ivs +oTO +oTO +ivs +ivs +hUC +ivs +utD +mas +bAY +fJh +bhX +ydh +ydh +ydh +bhX +kyg +hlL +fqz +bMy +cMS +uxc +vfM +bMy +bMy +bMy +bMy +cMS +uxc +vfM +bMy +bMy +bMy +bMy +cMS +uxc +vfM +bMy +bMy +bMy +bMy +ydh +ydh +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -43034,88 +48417,88 @@ vFi vFi "} (88,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +rUx +bAY +kyg +oTO +vXr +vXr +vXr +uOk +vXr +vXr +vXr +uXG +slw +vXr +slw +vXr +slw +vXr +oTO +mas +bAY +fgA +bMy +ydh +ydh +ydh +bMy +kyg +vIG +fqz +bMy +aLm +bOS +ffE +rJi +xbZ +vUq +bMy +jar +jar +ffE +itH +tQH +aJi +bMy +wlF +tIW +ffE +jmh +tIW +iOa +bMy +mFz +ydh +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -43292,88 +48675,88 @@ vFi vFi "} (89,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +rUx +bAY +kyg +oTO +ehg +uOk +jmT +uOk +hGu +uOk +vXr +vXr +slw +ehg +rTt +hUC +ivs +vXr +oTO +mas +bAY +cwn +bhX +ydh +ydh +ydh +bhX +kyg +hlL +fqz +bMy +mui +lnu +skk +cPT +jNs +xbZ +bMy +bWH +dHs +skk +vDC +tQH +dCC +bMy +qsF +pNP +skk +wfq +tIW +iOa +bMy +mFz +mFz +rVH +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -43550,88 +48933,88 @@ vFi vFi "} (90,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +uOw +bAY +kyg +ivs +vXr +uOk +omo +uOk +ivs +uOk +hGu +slw +vXr +rTt +hUC +hVi +vXr +slw +ivs +mas +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +eUm +fqz +bMy +vwH +lnu +ffE +vfc +xbZ +dBP +bMy +xom +xnF +ffE +fXP +qrL +tQH +bMy +lJn +pNP +ffE +wfq +bLP +tIW +bMy +msJ +mFz +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -43808,88 +49191,88 @@ vFi vFi "} (91,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +uOw +bAY +kyg +oTO +hGu +uOk +vXr +uOk +ivs +uOk +vXr +vXr +kXp +hUC +rTt +rTt +vXr +vXr +ivs +mas +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +erA +fqz +bMy +aLm +bOS +ffE +vfc +xbZ +hbJ +bMy +cWu +cWu +ffE +ffK +wEC +bZr +bMy +wlF +tIW +ffE +hRE +knf +lJw +bMy +rVH +oTO +fqz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -44066,88 +49449,88 @@ vFi vFi "} (92,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +pDb +bAY +kyg +oTO +vXr +uOk +hGu +uOk +jmT +uOk +vXr +vXr +hVi +ivs +slw +vXr +slw +vXr +oTO +mas +bAY +fJh +bMy +ydh +ydh +ydh +bMy +kyg +uCB +fqz +bMy +bMy +bMy +fHP +bMy +bMy +bMy +bMy +bMy +bMy +ses +bMy +bMy +bMy +bMy +bMy +bMy +bqs +bMy +bMy +bMy +bMy +kyg +oTO +rVH +rVH +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -44324,88 +49707,88 @@ vFi vFi "} (93,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +xls +kyg +ivs +vXr +vXr +vXr +uOk +slw +rdD +vXr +ivs +ivs +slw +vXr +uXG +slw +vXr +ivs +mas +rSl +bMy +bMy +vDP +vDP +vDP +bMy +kyg +oTO +fqz +lRH +avb +jRn +nQx +avb +avb +avb +avb +avb +avb +fsD +avb +avb +avb +avb +avb +jRn +nQx +avb +avb +avb +lRH +kyg +oTO +fqz +aAg +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -44582,88 +49965,88 @@ vFi vFi "} (94,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +rVH +rVH +rVH +rVH +rVH +llo +sta +bAY +kyg +oTO +vXr +vXr +vXr +ivs +vXr +vXr +vXr +vXr +vXr +vXr +vXr +vXr +vXr +vXr +ivs +mas +bAY +tHP +iIH +pKi +pKi +pKi +iIH +kyg +oTO +beU +avh +ltP +bgS +tAp +ltP +ltP +ltP +gSp +ltP +ltP +bgS +ltP +ltP +ltP +gSp +ltP +kPa +tAp +huK +huK +huK +tTY +kyg +rVH +fqz +bMy +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -44840,88 +50223,88 @@ vFi vFi "} (95,1,1) = {" -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +rVH +ydh +rVH +rVH +rVH +tTY +kiH +bAY +kyg +oTO +vXr +vXr +sZX +cus +ivs +vXr +nOe +bbP +vXr +vXr +vXr +vXr +vXr +vXr +oTO +gcg +fKz +lMG +avh +cQp +cQp +cQp +avh +mXH +cQP +ukZ +bMy +bMy +bMy +iyX +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +dqP +bMy +bMy +bMy +bMy +kyg +oTO +fqz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -45099,62 +50482,86 @@ vFi "} (96,1,1) = {" dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV -dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +xls +kyg +oTO +vXr +vXr +ivs +hEP +kwM +ivs +vXr +uXG +vXr +vXr +uOk +vXr +edw +vXr +oTO +mas +rSl +bMy +bMy +epg +epg +epg +bMy +kyg +oTO +mas +bMy +uLr +gPr +ffE +twG +wpP +kkP +bMy +wTb +ufq +omL +twG +wpP +kkP +bMy +bzK +bWz +ffE +kKj +mSn +mAM +bMy +aDf +oTO +rVH +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -45175,33 +50582,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dLV +dLV +dLV vFi vFi vFi @@ -45356,63 +50739,87 @@ vFi vFi "} (97,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +nJz +bAY +kyg +oTO +vXr +vVd +hEP +hEP +hEP +hEP +ivs +vXr +uOk +jmT +uOk +hGu +uOk +vXr +ivs +mas +bAY +cwn +bMy +ydh +ydh +ydh +bMy +kyg +uCB +mas +bMy +jpn +ecS +ffE +kKj +xgQ +aVA +bMy +rzc +fPF +nrN +kKj +xgQ +aVA +bMy +xdo +asI +ffE +bMy +tCi +ilG +bMy +mFz +rVH +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -45433,33 +50840,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dLV +jRZ +dLV vFi vFi vFi @@ -45614,63 +50997,87 @@ vFi vFi "} (98,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +hah +bAY +kyg +oTO +vXr +ivs +rmy +nId +hEP +hEP +ivs +hGu +sBo +ivs +uOk +vXr +uOk +vXr +ivs +mas +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +erA +mas +bMy +aMF +gPr +skk +bMy +kvr +lqC +bMy +aNj +qnI +eBr +bMy +kvr +lqC +bMy +sou +iXW +skk +bMy +iwo +gBb +bMy +mFz +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -45691,33 +51098,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dLV +dLV +dLV vFi vFi vFi @@ -45872,63 +51255,87 @@ vFi vFi "} (99,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +uaj +bAY +kyg +ivs +vXr +aOJ +hEP +hEP +hEP +ivs +vXr +nOe +uOk +vXr +uOk +ivs +uOk +hGu +ivs +mas +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +gZS +mas +bMy +iGQ +ecS +ffE +bMy +bMy +bMy +bMy +icd +qnI +qzw +bMy +bMy +bMy +bMy +sou +wZf +ffE +bMy +bMy +bMy +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -45949,33 +51356,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dLV +vaF +dLV vFi vFi vFi @@ -46130,63 +51513,87 @@ vFi vFi "} (100,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +qXP +bAY +kyg +ivs +vXr +vXr +ivs +hEP +ivs +xJn +vXr +vXr +fuU +hGu +uOk +jmT +uOk +vXr +ivs +mas +bAY +fJh +bhX +ydh +ydh +ydh +bhX +kyg +hlL +mas +bMy +iGQ +bFJ +ffE +kOm +eEM +mOU +bMy +mxa +qnI +qzw +ckp +emm +tGR +bMy +vuP +pNe +ffE +dkR +vRO +fRb +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -46207,33 +51614,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dLV +dLV +dLV vFi vFi vFi @@ -46388,88 +51771,88 @@ vFi vFi "} (101,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +pcm +bAY +kyg +oTO +vXr +ehg +vXr +ivs +vXr +vXr +vXr +vXr +ehg +vXr +uOk +vXr +jNr +vXr +oTO +mas +bAY +fgA +bMy +ydh +ydh +ydh +bMy +kyg +vIG +mas +bMy +tFW +mCA +ffE +gWI +iNt +eEM +bMy +paX +ahW +qzw +ydX +jhH +nku +bMy +tUY +jPi +ffE +sFQ +tCn +vRO +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -46489,9 +51872,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi +dLV +gjw +dLV vFi vFi vFi @@ -46646,88 +52029,88 @@ vFi vFi "} (102,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +pcm +bAY +kyg +utD +oTO +oTO +ivs +oTO +oTO +ivs +ivs +ivs +oTO +ivs +oTO +oTO +oTO +oTO +utD +mas +bAY +cwn +bhX +ydh +ydh +ydh +bhX +kyg +hlL +mas +bMy +fNL +wMN +ffE +hol +oMV +oMV +bMy +tVX +qnI +qzw +oba +emm +emm +bMy +lBS +rpC +ffE +kOE +gDN +vju +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -46747,9 +52130,9 @@ vFi vFi vFi vFi -vFi -vFi -vFi +dLV +dLV +dLV vFi vFi vFi @@ -46904,88 +52287,88 @@ vFi vFi "} (103,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +pcm +bAY +rZt +avb +jRn +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +cDg +tUH +bAY +lcA +bhX +ydh +ydh +ydh +bhX +kyg +eUm +mas +bMy +bMy +bMy +ffE +dGf +oBA +oBA +bMy +eke +iKH +qzw +hem +sFS +bdw +bMy +ooi +qgG +ffE +sFQ +eOM +eGz +bMy +mFz +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -47162,88 +52545,88 @@ vFi vFi "} (104,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +vRr +vRr +vRr +vRr +vRr +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +aWY +bAY +bAY +bAY +lvK +bAY +bAY +bAY +fvv +bAY +bAY +bAY +fvv +bAY +bAY +bAY +bAY +bAY +bAY +bAY +bAY +fJh +bhX +ydh +ydh +ydh +bhX +kyg +erA +mas +bMy +qVD +raJ +skk +bMy +bMy +bMy +bMy +bMy +bMy +eBr +bMy +bMy +bMy +bMy +bMy +bMy +skk +bMy +bMy +bMy +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -47420,88 +52803,88 @@ vFi vFi "} (105,1,1) = {" -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +jsz +jsz +jsz +jsz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +pYO +aYO +aYO +lIN +aYO +aYO +aYO +bMy +kiH +bAY +qaR +bMy +aYO +aYO +aYO +aYO +aYO +aYO +aYO +qWj +bMy +bMy +bMy +bMy +bMy +bMy +kyg +uCB +mas +bMy +lDh +lDh +ffE +bMy +acI +rqY +bMy +nJZ +olK +qzw +bMy +ixI +ixI +bMy +khf +itl +ffE +bMy +acI +rqY +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -47678,15 +53061,12 @@ vFi vFi "} (106,1,1) = {" +dtV jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh +eEJ +eEJ +eEJ +eEJ ydh ydh ydh @@ -47697,6 +53077,58 @@ ydh ydh ydh ydh +bMy +bMy +iTN +iTN +qlL +ewn +aNI +qJf +bMy +fqz +bAY +rVH +bMy +uYD +uYD +uYD +uYD +uYD +uYD +uYD +bMy +bMy +guK +yap +hXA +hIJ +bMy +kyg +oTO +mas +bMy +eTi +vbz +tfB +iQW +oTO +acK +bMy +sRc +jvB +qzw +iQW +oTO +acK +bMy +ktw +dBV +tfB +iQW +oTO +acK +bMy ydh mFz ydh @@ -47704,37 +53136,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -47837,30 +53244,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi spc oeT oeT @@ -47936,8 +53319,12 @@ vFi vFi "} (107,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh @@ -47949,14 +53336,57 @@ ydh ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -ydh -mFz -rVH +bMy +bMy +wTT +wTT +wTT +bMy +bMy +bMy +vjT +bMy +vjT +bMy +bMy +bMy +wTT +wTT +wTT +bMy +bMy +bMy +peQ +bnU +kME +kME +kME +bhX +rlg +oTO +mas +bMy +vku +lDh +oYa +bMy +ixI +ixI +bMy +sRc +jvB +qzw +bMy +acI +rqY +bMy +dhL +rNG +oYa +bMy +ixI +ixI +bMy ydh ydh ydh @@ -47964,35 +53394,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -48043,30 +53450,6 @@ vFi vFi vFi vFi -ngf -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -48194,88 +53577,88 @@ vFi vFi "} (108,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -mFz -rVH -orF -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +ydh +ydh +ydh +ydh +ydh +ydh +bMy +rVH +rVH +rVH +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +jDB +tUe +uCB +oTO +oTO +auh +kyg +oTO +mas +bMy +sMQ +lDh +oYa +bMy +bMy +bMy +bMy +qoU +uMg +qzw +bMy +bMy +bMy +bMy +kWh +rNG +oYa +bMy +bMy +bMy +bMy +mFz +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -48452,88 +53835,88 @@ vFi vFi "} (109,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -lNr -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -rVH -mFz -rVH -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +rVH +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +cVL +tUe +oTO +oUd +dmL +bhX +kyg +oTO +mas +bMy +gTx +lDh +oYa +ppZ +puo +puo +bMy +qoU +bps +qzw +rtb +sou +lBS +bMy +eTC +rNG +oYa +hop +tQH +ulh +bMy +mFz +ydh +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -48710,88 +54093,88 @@ vFi vFi "} (110,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -smh -rVH -xxL -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +rVH +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +oeJ +tUe +uCB +oTO +oTO +auh +kyg +oTO +mas +bMy +bhL +bQc +fbI +gxa +knO +knO +bMy +rJW +ceo +eBr +rTw +sou +sou +bMy +bhm +eOZ +fbI +vDC +tQH +tQH +bMy +rVH +mFz +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -48968,88 +54351,88 @@ vFi vFi "} (111,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -xxL -smh -meV -xWc -kLq -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +oeJ +xbe +aYO +aYO +aYO +bhX +kyg +oTO +mas +bMy +tNx +lDh +oYa +gxa +jlq +knO +bMy +xII +bps +qzw +rTw +apM +sou +bMy +bws +rNG +oYa +vDC +qrL +tQH +bMy +mFz +ydh +rVH +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -49226,88 +54609,88 @@ vFi vFi "} (112,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -xxL -smh -meV -xWc -uNs -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bHb +sUX +cKg +qAm +bMy +kyg +oTO +mas +bMy +ltX +jZY +oYa +eQU +jXp +czr +bMy +nyI +ceo +qzw +fMY +sTx +sTx +bMy +gBc +jiq +oYa +geM +kmY +bjU +bMy +rVH +oTO +rVH +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -49484,88 +54867,88 @@ vFi vFi "} (113,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -aAg -bMy -ydh -bMy -pwr -wTT -pwr -bMy -ydh -ydh -bMy -bMy -wTT -wTT -wTT -bMy -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +bMy +bMy +bMy +kyg +oTO +mas +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +lRw +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +kyg +rVH +fqz +bMy +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -49742,8 +55125,12 @@ vFi vFi "} (114,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh @@ -49753,52 +55140,72 @@ ydh ydh ydh ydh -mFz -mFz -rVH -rVH -rVH -bMy -bMy -bMy -aHy -aHy -aHy -bMy -bMy -rVH -bMy -rVH -rVH -rVH -rVH -rVH -bMy -bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bhX +dqq +kAv +kAv +vIl bMy +kyg +uCB +mas +lRH +avb +avb +avb +avb +avb +avb +mfT +avb +jRn +nQx +avb +avb +avb +mfT +avb +avb +avb +avb +avb +avb +lRH +kyg +oTO rVH aAg -mFz -mFz -mFz -rVH ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -49901,30 +55308,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi iJS hOO mvI @@ -50000,88 +55383,88 @@ vFi vFi "} (115,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -rVH -mFz -mFz -mFz -rVH -rVH -rVH -rVH -rVH -rVH -rVH -cyx -aHy -aHy -aHy -cyx -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +qaZ +cmw +kbL +uRa +kyg +oTO +uCs +avh +ltP +ltP +tAp +ltP +ltP +ltP +ltP +huK +bgS +tAp +ltP +ltP +ltP +ltP +ltP +ltP +tAp +huK +huK +huK +tTY +kyg +oTO +fqz +msJ +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -50258,88 +55641,88 @@ vFi vFi "} (116,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -aAg -rVH -aAg -bMy -bMy -bMy -bMy -bMy -bMy -bMy -aHy -aHy -aHy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +dBt +dcP +kbL +rIA +bMy +bMy +kyg +oTO +mas +bMy +bMy +bMy +lRw +bMy +bMy +bMy +bMy +bMy +bMy +lRw +bMy +bMy +bMy +bMy +bMy +bMy +lRw +bMy +bMy +bMy +bMy +kyg +oTO +fqz +aAg +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -50516,88 +55899,88 @@ vFi vFi "} (117,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bhX -hRJ -fGQ -fGQ -bMy -tKH -aHy -aHy -aHy -bMy -xvW -fBC -xvW -bMy -pcm -sBy -sBy -bMy -lJn -uHV -xvW -bMy -sBy -oYa -rZf -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +sNe +xzH +fAI +bMy +kyg +wMr +mas +bMy +wPf +cvy +qzw +eOs +uxO +wch +bMy +inT +oRy +ffE +eOs +wpP +ghB +bMy +xif +eci +qzw +bMy +uxO +wch +bMy +rVH +oTO +fqz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -50774,88 +56157,88 @@ vFi vFi "} (118,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -bMy -knk -knk -fRb -aHy -aHy -aex -aHy -bMy -omL -omL -dUU -bMy -bOS -oYa -oYa -bMy -omL -omL -omL -bMy -emm -oYa -oYa -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +dBt +dcP +kbL +xqZ +fDt +bMy +xys +uAp +mas +bMy +sRc +mkR +qzw +iQW +xgQ +qcH +bMy +ewk +xpG +ffE +iQW +kbL +krF +bMy +wzH +tae +qzw +iQW +kbL +npe +bMy +mFz +rVH +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -51032,88 +56415,88 @@ vFi vFi "} (119,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -ayP -hcK -knk -knk -bMy -bMy -aHy -uLr -aHy -bMy -eEM -omL -eEM -bMy -bOS -oYa -wzH -bMy -omL -vHM -vHM -bMy -uiU -oYa -snM -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +sNe +rIA +hlD +bMy +kyg +xNN +mas +bMy +qoU +hXb +eBr +bMy +wtW +pCs +bMy +vRO +rTz +skk +bMy +ddW +wch +bMy +puU +wQZ +eBr +bMy +wtW +pCs +bMy +rVH +ydh +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -51290,88 +56673,88 @@ vFi vFi "} (120,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -bMy -sNe -knk -fDt -bMy -aHy -aex -aHy -bMy -dUU -omL -omL -bMy -pcm -oYa -oYa -bMy -omL -vHM -srH -bMy -ueJ -oYa -oYa -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +aAg +bMy +bMy +bMy +bMy +ydh +ydh +ydh +bMy +bMy +bMy +dBt +dcP +kbL +xzH +xvE +bMy +aid +puz +mas +bMy +ntW +rbF +asG +bMy +bMy +bMy +bMy +nmT +uxc +tfB +bMy +bMy +bMy +bMy +ntW +rbF +asG +bMy +bMy +bMy +bMy +ydh +mFz +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -51548,88 +56931,88 @@ vFi vFi "} (121,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -ayP -hcK -knk -knk -fDt -bMy -aHy -aHy -aHy -bMy -bMy -bMy -pwr -bMy -bMy -bMy -pwr -bMy -pwr -bMy -bMy -bMy -bMy -bMy -pwr -bMy -bMy -bMy -bMy -phB -bMy -mFz -mFz -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +aAg +bMy +bMy +mFz +mFz +rVH +lHN +gyC +gyC +bMy +wTT +wTT +wTT +bMy +gyC +bMy +bMy +bMy +sNe +xqZ +tzO +bMy +kyg +wMr +mas +bMy +dWg +qoU +omL +dnv +kgp +xzN +bMy +ykT +vRO +oYa +pkm +tIW +rmX +bMy +jCF +puU +omL +nQg +dYi +dYi +bMy +ydh +ydh +mFz +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -51806,88 +57189,88 @@ vFi vFi "} (122,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -bMy -sNe -knk -hRJ -bMy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -mFz -mFz -eld -eld -eld -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +mFz +rVH +oFB +rVH +msJ +rVH +aDf +rVH +rVH +oFB +rVH +rVH +aDf +rVH +rVH +rVH +bMy +kNZ +dcP +kbL +rIA +bMy +bMy +kyg +oTO +mas +bMy +soR +xfB +rzz +ken +uXY +uZf +bMy +lKj +hRJ +fbI +wfq +bLP +tIW +bMy +qkR +jMh +rzz +bCK +rjH +rjH +bMy +ydh +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -52064,88 +57447,88 @@ vFi vFi "} (123,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -ayP -hcK -knk -knk -ocR -bMy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -eld -eld -eld -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +rVH +mFz +mFz +mFz +rVH +aDf +cSg +cSg +bMy +bMy +bMy +bMy +bMy +bMy +bMy +cSg +cSg +rVH +rLA +rZf +bMy +bMy +bMy +qaZ +eld +csC +aeN +mXH +cQP +ukZ +bMy +vRF +xfB +awS +ken +jdd +hlq +bMy +sxT +hRJ +oYa +wfq +qJS +fBC +bMy +rWU +jMh +omL +bCK +nXu +pJD +bMy +mFz +mFz +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -52322,88 +57705,88 @@ vFi vFi "} (124,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -bMy -sNe -knk -ocR -bMy -aHy -uCs -aHy -bMy -bMy -bMy -pwr -bMy -bMy -bMy -pwr -bMy -pwr -bMy -bMy -bMy -bMy -bMy -pwr -bMy -phB -bMy -mFz -mFz -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +mFz +msJ +rVH +tYi +cSg +bMy +bMy +pwr +sns +rdA +bmp +pwr +bMy +bMy +cSg +tYi +euq +rVH +ucV +bMy +dqq +phB +phB +vIl +bMy +kyg +uCB +mas +bMy +dWg +qoU +omL +ken +dhM +azA +bMy +ykT +vRO +oYa +dWG +xzY +iTr +bMy +jCF +puU +omL +vPi +tpB +pnA +bMy +mFz +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -52580,8 +57963,13 @@ vFi vFi "} (125,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh ydh ydh ydh @@ -52593,31 +57981,55 @@ ydh ydh ydh bMy -cym -hcK -knk -knk bMy bMy -aHy -gZS -aHy +bMy +bMy +pUN bMy sBy -sBy -oYa -bMy +krx +uHV xvW uHV -omL +saM +pIs bMy -oYa -oYa -nfb +pUN bMy -xvW -xvW -omL +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +kyg +oTO +mas +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +wTT +wTT bMy ydh ydh @@ -52626,17 +58038,12 @@ ydh ydh ydh ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -52723,30 +58130,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi hOO hOO hOO @@ -52838,44 +58221,68 @@ vFi vFi "} (126,1,1) = {" +dtV jsz -jsz -ydh -ydh -ydh -ydh +eEJ +eEJ +eEJ +eEJ ydh ydh ydh ydh ydh +frQ ydh +cxO +mFz +cxO bMy bMy -bMy -knk -knk -fRb -aHy -aHy +fTX tfg -aHy +tfg +tfg +tfg +tfg +tfg +tfg +tfg +wgy +kaO +kaO +kaO +kaO +kaO +kaO +kaO +kaO +dUU +kaO +kaO +kaO +kaO +kaO +kaO +mXH +cQP +ruE +kaO +kaO +kaO +kaO +kaO +aXs +wTx +wTx +wTx +vfM +ufm bMy -vUe -oYa -oYa -bMy -gRf -vRO -omL -bMy -oYa -oYa -oYa -bMy -omL -omL -omL +bzh +hjx +hjx +jDl bMy ydh ydh @@ -52886,15 +58293,15 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -52926,30 +58333,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -53096,44 +58479,68 @@ vFi vFi "} (127,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -ydh -bhX -hRJ +rVH +rVH +meV +pKi +pKi jom -jom -bMy -aHy -aHy -khf -aHy -bMy huK -oYa huK -bMy -omL -omL -omL -bMy -aYO -sqP +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +huK +tTY +huK +huK +huK +huK +huK +huK +foa +oTO +iBk +huK +huK +huK +huK +huK +gKE oYa +oYa +oYa +ffE +eim bMy -knO -omL -tQH +txA +jni +jni +eoa bMy ydh ydh @@ -53144,15 +58551,15 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -53184,30 +58591,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -53354,44 +58737,68 @@ vFi vFi "} (128,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh +mFz +mFz +rVH ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -bMy -bMy -bMy -aHy -aHy -eUm -aHy -bMy -wEC -oYa -vUe -bMy -xvW -vRO -gRf -bMy -tGR +mFz +mFz +rVH +meV +meV +bhX xDw -jlq -bMy -ukZ -uRl -rTt +oTO +oTO +oTO +oTO +xDw +oTO +erA +vUe +miA +ooQ +miA +gRf +erA +oTO +xDw +oTO +oTO +oTO +bhX +oTO +xDw +ePc +ePc +ePc +oTO +oTO +utD +oTO +oTO +ePc +ePc +ePc +xDw +nRi +gwg +sLr +hWB +dXi +uxc +nWU +bcb +bcb +ocR +plX bMy ydh ydh @@ -53402,15 +58809,15 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -53442,30 +58849,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -53612,42 +58995,68 @@ vFi vFi "} (129,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh -ydh -ydh -frQ -ydh -cxO +mFz +mFz +rVH +rVH mFz cxO -bMy -bMy -tKH -aHy -aHy -aHy -aHy -aHy -uCs -aHy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy +dRv +jom +avb +avb +avb +avb +avb +avb +avb +gON +avb +avb +avb +avb +avb +avb +avb +avb +avb +avb +avb +mPV +gON +avb +avb +avb +avb +avb +avb +avb +avb +gON +avb +avb +avb +avb +nRi +esV +gwg +hWB +hcK +rMD +sXv +jni +jni +oal +jni bMy bMy ydh @@ -53660,15 +59069,13 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -53700,30 +59107,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -53870,43 +59253,69 @@ vFi vFi "} (130,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh ydh ydh -rVH -rVH -meV -pKi -pKi -sHg -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -xBl -oYa -oYa -oYa +ydh +ydh +sVu +kxK +kxK +bMy +bMy +pBc +ijD fJc +fJc +fJc +fJc +fJc +fJc +ocZ +sfB +ijD +fJc +fJc +fJc +fJc +fJc +fJc +ocZ +tTY +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +sfB +xBl +uNb +uNb oYa -mFP -ePc -xvE -xvE -kRC +qzw +rMD +sXv +jni +jni +cym +jni +ydq bMy ydh ydh @@ -53918,15 +59327,13 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -53958,30 +59365,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -54128,88 +59511,88 @@ vFi vFi "} (131,1,1) = {" -jsz -jsz -ydh -mFz -mFz -rVH -ydh -mFz -mFz -rVH -meV -meV -bhX -aHy -aHy -aex -uLr -aex -aHy -aHy -aHy -aHy -wMr -qUY -wMr -aHy -nRi -gwg -uNb -hWB -oYa -oYa -mFP -wKx -xvE -xvE -xvE -bMy -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +bMy +bMy +tTY +fny +waY +qUY +tTY +fny +bMy +bMy +bMy +tTY +fny +waY +qUY +tTY +fny +bMy +bMy +bMy +bMy +bMy +rvp +bvF +bvF +bvF +bvF +ydh +bvF +bvF +vmA +oTO +oTO +nRi +uNb +rov +gok +qzw +rMD +gcV +xyF +jni +gbO +jni +ydq +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -54386,88 +59769,88 @@ vFi vFi "} (132,1,1) = {" -jsz -jsz -ydh -ydh -ydh -mFz -mFz -rVH -rVH -mFz -cxO -dRv -sHg -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -nRi -uNb -gwg -hWB -oYa -omL -kmt -xvE -xvE -osz -xvE -aOW -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +cFL +thj +thj +sHg +sHg +thj +thj +osz +bMy +wdg +thj +thj +sHg +sHg +thj +thj +osz +bMy +aOW +xDc +mNu +wrf +iye +iye +ydh +iye +iye +iye +ydh +kLq +uCB +oTO +nRi +sLr +uoc +gok +qzw +omL +tLj +jni +jni +qUt +jni +rCx +bhX +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -54644,8 +60027,17 @@ vFi vFi "} (133,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh ydh ydh ydh @@ -54653,35 +60045,51 @@ ydh ydh ydh ydh -sVu -kxK -kxK bMy -bMy -tKH -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -aHy -nRi -uNb -uNb -hWB -omL -omL -mFP +tLx +bAY +bAY +hel +hel +bAY bAY -xvE eSU -xvE -knf +bMy +tLx +bAY +bAY +hel +hel +bAY +bAY +eSU +gIe +oTO +uCB +oTO +wrf +iye +vne +iye +ydh +iye +vne +iye +kLq +oTO +oTO +xBl +oYa +oYa +omL +wKx +omL +bhX +jni +jni +rFS +jni +rCx bhX ydh ydh @@ -54692,15 +60100,14 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -54783,30 +60190,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi rkG xnQ xnQ @@ -54902,8 +60285,14 @@ vFi vFi "} (134,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh ydh ydh ydh @@ -54915,31 +60304,50 @@ ydh ydh ydh bMy -bMy -bMy -bMy -aHy -aHy -aHy -aHy -aHy -ydh -aHy -aHy -aHy -aHy -nRi -uNb -uNb -hWB -omL -omL -mFP +iDg +cDx +cDx +fGQ +fGQ +cDx cDx -xvE nmF -xvE -ghs +sMC +iDg +cDx +cDx +fGQ +fGQ +cDx +cDx +nmF +bMy +sjk +isj +mNu +wrf +ydh +iye +iye +ydh +ydh +iye +iye +kLq +oTO +oTO +xBl +oYa +oYa +omL +qzw +omL +fSM +txA +jni +jni +jni +ukh bhX ydh ydh @@ -54950,15 +60358,14 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -55041,30 +60448,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi hOO hOO hOO @@ -55160,8 +60543,14 @@ vFi vFi "} (135,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh ydh ydh ydh @@ -55173,32 +60562,51 @@ ydh ydh ydh bMy -tCi -rTz -qvz -aHy -oTO -oTO -ydh -oTO -oTO -oTO -ydh -aHy -aHy -xBl -oYa -oYa -omL -omL -omL bMy tTY -xvE -dFU -xvE +fny +waY +qUY +tTY +fny +bMy +bMy +bMy +tTY +fny +waY +qUY +tTY +fny +bMy +bMy lZH -bhX +jGm +mNu +wrf +iye +ydh +ydh +iVg +ydh +iye +ydh +kLq +oTO +oTO +xBl +mjW +bwq +bwq +qzw +omL +luy +jni +jni +urz +jni +rRL +bMy ydh ydh ydh @@ -55208,15 +60616,14 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -55303,30 +60710,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi hOO hOO hOO @@ -55418,45 +60801,70 @@ vFi vFi "} (136,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh ydh ydh ydh ydh ydh -mFz ydh ydh ydh ydh bMy -xvE -xvE -xvE -aHy -oTO -erA -oTO -ydh -oTO -erA -oTO -aHy -aHy -xBl -mjW -mjW -bwq -omL -omL +cKH +thj +thj sHg -xvE -xvE +sHg +thj +thj hgO -xvE -vpY -bhX +bMy +cKH +thj +thj +sHg +sHg +thj +thj +hgO +bMy +oTO +oTO +oTO +ydh +ydh +ydh +iye +ydh +iye +iye +iye +kLq +oTO +oTO +xBl +rSm +rky +dFU +qzw +omL +bMy +bfZ +jni +urz +jni +bGH +bMy ydh ydh ydh @@ -55466,15 +60874,14 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -55562,30 +60969,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi mUu taE kbv @@ -55676,88 +61059,88 @@ vFi vFi "} (137,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -mFz -ydh -ydh -ydh -mFz -bMy -lDh -gBc -ghs -aHy -ydh -oTO -oTO -ydh -ydh -oTO -oTO -aHy -aHy -xBl -uNb -rSm -rSm -omL -omL -bMy -tgB -xvE -xvE -xvE -vpY -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +wKW +nFd +nFd +hel +hel +tgB +tgB +wKW +bMy +wKW +nFd +nFd +hel +hel +tgB +tgB +wKW +bMy +vpY +vpY +mNu +wrf +iye +luZ +iye +iye +iye +vne +ydh +ydh +oTO +oTO +tQU +vTu +vTu +vTu +qzw +laV +bMy +oiI +jni +urz +jni +bGH +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -55934,44 +61317,69 @@ vFi vFi "} (138,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh ydh ydh ydh ydh -mFz -rVH -rVH -bMy -bMy -bMy -bMy -wtW -wtW -bGH -aHy -oTO -ydh -ydh -iVg -ydh -oTO -ydh -aHy -aHy -xBl -vTu -vTu -vTu -omL -awS -bMy bMy +wKW +oSi +owZ +owZ +owZ +owZ +wRY +wKW +pyc +wKW +nLo +vdq +sPq +jQF +bIF pbJ dRZ -mFP -mFP +bMy +oTO +oTO +oTO +wrf +iye +iye +iye +ydh +iye +iye +iye +kLq +uCB +oTO +gSa +awS +omL +omL +qzw +pfy +bMy +oiI +jni +lCt +jni +eGk bMy ydh ydh @@ -55982,15 +61390,14 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -56078,30 +61485,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi iro taE kbv @@ -56192,88 +61575,88 @@ vFi vFi "} (139,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -aAg -aHy -aHy -aHy -aHy -rVH -bMy -xvE -xvE -xvE -ydh -ydh -ydh -oTO -ydh -oTO -oTO -oTO -aHy -aHy -tQU -omL -omL -omL -omL -omL -sHg -xvE -xvE -xvE -xvE -kRC -bMy -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +iAz +xeq +rtJ +tiU +dSp +rtJ +qhK +dHk +qXR +xRV +xeq +rtJ +rtJ +rtJ +rtJ +qhK +cIi +bMy +kRC +pKS +mNu +qGj +ssT +ssT +ssT +ssT +ydh +ssT +ssT +dGT +epi +fqr +nfb +rbF +rbF +vHM +rfz +jfb +bMy +aQJ +jni +jSn +jni +eGk +bMy +bMy +bMy +bMy +bMy +bMy +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -56450,88 +61833,88 @@ vFi vFi "} (140,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -bMy -rVH -rVH -aHy -aHy -aHy -bMy -rTz -tCi -ocz -aHy -oTO -erA -oTO -oTO -oTO -erA -ydh -ydh -aHy -tQU -omL -rMD -rMD -rMD -omL -bMy -faE -xvE -xvE -xvE -vvS -bhX -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +fro +xeq +rtJ +eBq +uMw +pIn +qhK +wKW +vda +wKW +kzy +wee +ifb +orQ +faE +nzI +qfC +bMy +vvS +tyg +mNu +oTO +fZr +oTO +mNu +mNu +oTO +mNu +mNu +oTO +lNO +fZr +bMy +sqP +dne +hHc +sUh +bMy +bMy +psv +jni +dpC +jni +jJl +bMy +dMe +fSV +oHe +pos +bMy +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -56708,44 +62091,74 @@ vFi vFi "} (141,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh ydh ydh ydh ydh bMy -aHy -aHy -rVH -aHy -aHy -bMy -xvE -xvE -xvE -aHy -oTO -oTO -oTO -ydh -oTO -oTO -oTO -aHy -aHy +nvf +xeq +gjv +pfT +cfm +aSc +qhK wKW bMy -kmt -kmt -kmt +wKW +xeq +rtJ +rtJ +rtJ +rtJ +qhK +wKW bMy +oTO +uCB +oTO +oTO +rmR +oTO +wcD +jdn +uCB +rxS +xSv +oTO +lNO +srH +bhX +jvF +jni +wcE +bcb +gKI +ocR +kzK +jni +kzK +jni +mFP bMy -tLj -xvE -osz -xvE -eay +hTV +bUI +bUI +soM bhX ydh ydh @@ -56753,18 +62166,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -56852,30 +62259,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi hOO hOO hOO @@ -56966,44 +62349,74 @@ vFi vFi "} (142,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh ydh ydh ydh ydh bMy -aHy -aHy -aHy -aHy -rVH -bMy -bzK -bzK -pJD -aHy -aHy -aHy -aHy -aHy -ydh -aHy -aHy -aHy -aHy -bhX +wKW +xeq +sAG +rbA +glC +hFG +qhK +wKW qpy -xvE +wKW pkK -xvE -xvE -ghs +lRW +sYR +bST eAT -xvE -eay -xvE +aQp eay +bMy +gCM +cFG +mNu +oTO +rmR +oTO +haD +ihW +oTO +bQw +cyx +oTO +lNO +srH +bMy +dBL +jni +jni +xyF +jni +jni +jni +jni +jni +jni +cnL +bMy +dbz +bUI +bUI +mAj bhX ydh ydh @@ -57011,18 +62424,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -57054,30 +62461,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -57224,44 +62607,74 @@ vFi vFi "} (143,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +snM +xeq +qkX +vYu +yib +hIC +qhK +wKW bMy aHy -rVH -rVH -aHy -rVH +xeq +rtJ +rtJ +rtJ +rtJ +qhK +wKW bMy -vVd -sou -pJD -xvE -xvE -xvE -xvE -xvE -xvE -xvE -xvE -xvE -xvE bMy -iye -xvE -xvE -pkK -xvE -xvE -xvE -xvE -eay -xvE -eay +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy +iqJ +bMy +bMy +cfr +jni +jni +jni +jni +nPv +jcu +jni +jni +jni +wxh +nIR +vZs +bUI +bUI +soM bhX ydh ydh @@ -57269,18 +62682,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -57312,30 +62719,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -57482,44 +62865,74 @@ vFi vFi "} (144,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh ydh ydh ydh ydh -rVH -aHy -aHy -aHy -aHy -aHy bMy -xvE -xvE -xvE -xvE -tcW -xvE -kRC -wmy -xvE +xRV +xeq +cwo wJV gxy -xvE +rOX qhK -bMy +dHk niv -xvE -xvE -xvE -xvE -ghs +xRV +otP +uEJ +wZw +kmt eLE -xvE -eay -xvE -eay +iis +dHk +bMy +nnq +msJ +rVH +rVH +cSg +cSg +cSg +cSg +aDf +rVH +msJ +veQ +ocz +oEq +bMy +tKH +aYO +hmy +dyy +iFK +brR +lbM +aYO +vvO +qnJ +lRi +bMy +cDB +wnO +wnO +kcC bMy ydh ydh @@ -57527,18 +62940,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -57570,30 +62977,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -57740,44 +63123,74 @@ vFi vFi "} (145,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh ydh ydh ydh -mFz -rVH -aHy -rVH -aHy -rVH -rVH bMy -ocZ -ihW -uXY -xvE -tcW -xvE wmy -kRC -xvE +xeq +aex sWO -wJV -xvE +rgL +cci qhK -bMy +wKW qbW -xvE -ghs +wKW +xeq rtJ -kRC -ghs -knR -xvE -eay -xvE -eay +rtJ +rtJ +rtJ +qhK +wKW +uWe +cSg +cSg +aDf +pQU +bYA +bMy +bMy +bMy +bMy +bMy +bMy +rVH +goW +rVH +bMy +bMy +aUk +bMy +bMy +bMy +bMy +bMy +aUk +bMy +bMy +bMy +bMy +bMy +bMy +bMy +bMy bMy ydh ydh @@ -57785,18 +63198,12 @@ ydh ydh ydh ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -57828,30 +63235,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -57998,63 +63381,87 @@ vFi vFi "} (146,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +wKW +xeq +kEe +heO +qZO +fxx +qhK +wKW +bMy +wKW +nIX +pof +knk +sFy +wBv +iSO +wKW +bMy +bMy +bMy +bMy +bMy +bMy +bMy bMy aAg rVH -bMy -bMy -aAg -bMy -bMy -bMy -bMy -bMy -bMy -iSO -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -bMy -iSO -bMy -bMy -bMy -bMy -bMy -iSO -bMy -bMy -bMy -aAg -aAg +rVH +aDf +rVH +gIw +wSi +ktT +stN +ktT +nfP +wSi +wSi +ktT +ktT +ktT +stN +aZK +wSi +wSi +wSi +fcH +jTV +jTV +jTV +wSi +rze +xfJ ydh ydh ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -58086,30 +63493,6 @@ vFi vFi vFi vFi -uyi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -58256,88 +63639,88 @@ vFi vFi "} (147,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -mFz -rVH -mFz -mFz -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -mFz -mFz -mFz -rVH -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +wKW +xeq +gEf +ueJ +tcW +yiO +qhK +aHy +tMW +wKW +xeq +rtJ +rtJ +rtJ +rtJ +qhK +wKW +bMy +ucV +ucV +xty +oFB +oFB +rVH +aAg +aAg +wXU +xZe +rVH +oEq +bMy +bMy +bMy +wTT +wTT +bMy +bMy +oEq +puX +fxD +rVH +oFB +rVH +rVH +rVH +rVH +mFz +mFz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -58514,8 +63897,12 @@ vFi vFi "} (148,1,1) = {" +dtV jsz -jsz +eEJ +eEJ +eEJ +eEJ ydh ydh ydh @@ -58523,38 +63910,56 @@ ydh ydh ydh ydh -mFz -mFz -mFz -wTT -wTT +ydh +ydh +ydh +ydh +ydh +bMy +wKW +xeq +uNs +tCh +ljE +rtJ +qhK +wKW +kKH +wKW +wHJ +uOX +igG +vbZ +qqh +dWy +wKW +bMy +rVH +rVH +rVH +rVH +rVH +rVH +bMy +bMy +bMy +bMy +bMy +bMy +bMy +ydh +ydh +ydh +ydh +ydh +bMy +bMy aAg bMy +aAg +msJ +aAg bMy -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -bMy -bMy -wTT -wTT -bMy -bMy -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -rVH -mFz mFz ydh ydh @@ -58562,15 +63967,17 @@ ydh ydh ydh ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -58719,30 +64126,6 @@ vFi vFi vFi vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi mGk hIN fXl @@ -58772,88 +64155,88 @@ vFi vFi "} (149,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -bMy -bMy -aAg -rVH -bMy -bMy -wTT -wTT -bMy -bMy -ydh -ydh -ydh -ydh -bMy -bMy -aAg -bMy -aAg -rVH -aAg -bMy -mFz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +rEg +xeq +rtJ +dar +rtJ +rtJ +qhK +dHk +oaz +xRV +xeq +rtJ +rtJ +rtJ +rtJ +qhK +dHk +bMy +gyC +oFB +tBg +knR +puX +xNv +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -59030,88 +64413,88 @@ vFi vFi "} (150,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +wKW +lVa +mnH +mnH +mnH +mnH +qvz +wKW +bMy +rVH +cdV +qNB +kVf +aVy +qxH +sEM +rVH +bMy +bMy +bMy +wTT +wTT +wTT +bMy +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -59288,88 +64671,88 @@ vFi vFi "} (151,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -pnA -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +lSl +rVH +lSl +lSl +lSl +rVH +lSl +lSl +bMy +lSl +lSl +rVH +lSl +lSl +rVH +lSl +lSl +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -59546,88 +64929,88 @@ vFi vFi "} (152,1,1) = {" -jsz -jsz -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -ydh -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +eEJ +eEJ +eEJ +eEJ +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +wbJ +wbJ +rVH +wbJ +wbJ +wbJ +rVH +iye +bMy +rVH +wbJ +wbJ +rVH +iye +iye +rVH +wbJ +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -59804,88 +65187,88 @@ vFi vFi "} (153,1,1) = {" -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +jsz +jsz +jsz +jsz +jsz +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +mFz +ydh +ydh +ydh +ydh +ydh +ydh +mFz +bMy +mFz +ydh +ydh +ydh +ydh +ydh +ydh +mFz +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -60062,88 +65445,88 @@ vFi vFi "} (154,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +vRr +vRr +vRr +vRr +vRr +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +bMy +mFz +ydh +ydh +ydh +ydh +lNr +ydh +mFz +bMy +mFz +ydh +ydh +ydh +ydh +lNr +ydh +mFz +bMy +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -60320,88 +65703,88 @@ vFi vFi "} (155,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +vRr +vRr +vRr +vRr +vRr +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +baw +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +baw +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +baw +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +ydh +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -60578,88 +65961,88 @@ vFi vFi "} (156,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +vRr +vRr +vRr +vRr +vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -60836,88 +66219,88 @@ vFi vFi "} (157,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +vRr +vRr +vRr +vRr +vRr +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -61094,88 +66477,88 @@ vFi vFi "} (158,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +ngf +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -61352,88 +66735,88 @@ vFi vFi "} (159,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -61610,63 +66993,87 @@ vFi vFi "} (160,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr +dtV +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ dtV vFi vFi @@ -61711,30 +67118,6 @@ vFi vFi vFi vFi -eEJ -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi vFi vFi vFi @@ -61868,88 +67251,88 @@ vFi vFi "} (161,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -62126,88 +67509,88 @@ vFi vFi "} (162,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -62384,88 +67767,88 @@ vFi vFi "} (163,1,1) = {" -jsz -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr -vRr dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +eEJ +dtV vFi vFi vFi @@ -62700,30 +68083,30 @@ dtV dtV dtV dtV -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi -vFi +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV +dtV vFi vFi vFi @@ -85159,7 +90542,7 @@ vFi vFi vFi vFi -vFi +eEJ vFi vFi vFi @@ -85417,7 +90800,7 @@ vFi vFi vFi vFi -vFi +eEJ vFi vFi vFi diff --git a/maps/southern_cross/submaps/gateway/carpfarm.dm b/maps/southern_cross/submaps/gateway/carpfarm.dm index b5f0524e2c..24282ffd8a 100644 --- a/maps/southern_cross/submaps/gateway/carpfarm.dm +++ b/maps/southern_cross/submaps/gateway/carpfarm.dm @@ -9,6 +9,9 @@ /area/awaymission/carpfarm/base icon_state = "away" +/area/awaymission/carpfarm/hostilebase + icon_state = "green" + /area/awaymission/carpfarm/base/entry icon_state = "blue" diff --git a/maps/southern_cross/submaps/gateway/carpfarm.dmm b/maps/southern_cross/submaps/gateway/carpfarm.dmm index 1e9b0dbef7..45a3d841e7 100644 --- a/maps/southern_cross/submaps/gateway/carpfarm.dmm +++ b/maps/southern_cross/submaps/gateway/carpfarm.dmm @@ -3,32 +3,30 @@ "ac" = (/turf/simulated/mineral,/area/space) "ad" = (/obj/effect/blocker,/turf/space,/area/space) "ae" = (/mob/living/simple_mob/animal/space/carp,/turf/space,/area/space) -"af" = (/obj/effect/landmark/gateway_scatter,/turf/simulated/mineral/floor/ignore_mapgen,/area/space) +"af" = (/obj/effect/landmark/gateway_scatter,/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/space) "ag" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/landmark/loot_spawn,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) "ah" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/space) "ai" = (/obj/structure/closet/jcloset,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) -"aj" = (/obj/item/weapon/pickaxe/jackhammer,/turf/simulated/mineral/floor/ignore_mapgen,/area/space) +"aj" = (/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/space) "ak" = (/turf/simulated/mineral,/area/mine/unexplored) "al" = (/obj/structure/lattice,/turf/space,/area/space) "am" = (/turf/simulated/wall/iron,/area/awaymission/carpfarm/base) "an" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/smes/buildable,/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"ao" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) +"ao" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "ap" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/power/port_gen/pacman,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"aq" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"ar" = (/obj/machinery/gateway{dir = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"as" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) +"as" = (/obj/structure/table/rack/shelf,/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/base) "at" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5},/obj/machinery/door/window,/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/base) "au" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) "av" = (/obj/machinery/door/airlock/silver,/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) -"aw" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{icon_state = "bulb1"; dir = 1},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) +"aw" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1; icon_state = "bulb1"},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) "ax" = (/obj/structure/table/woodentable,/turf/simulated/floor/lino,/area/awaymission/carpfarm/base) "ay" = (/obj/structure/bedsheetbin,/obj/machinery/light{dir = 1},/turf/simulated/floor/lino,/area/awaymission/carpfarm/base) -"az" = (/obj/item/weapon/storage/toolbox/electrical,/obj/structure/cable,/obj/machinery/power/apc{alarms_hidden = 1; dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/item/weapon/paper/awaygate/carpfarm/suicide,/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"aA" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) +"az" = (/obj/item/weapon/storage/toolbox/electrical,/obj/structure/cable,/obj/machinery/power/apc{alarms_hidden = 1; dir = 8; name = "west bump"; pixel_x = -24},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) +"aA" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1; icon_state = "warningcorner"},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "aB" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"aC" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"aD" = (/obj/machinery/gateway/centeraway{calibrated = 0},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"aE" = (/obj/machinery/gateway{dir = 4},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) +"aC" = (/mob/living/simple_mob/animal/space/carp/large,/turf/space,/area/space) +"aD" = (/mob/living/simple_mob/animal/space/carp/large/huge,/turf/space,/area/space) +"aE" = (/obj/item/weapon/paper/awaygate/carpfarm/suicide,/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/base) "aF" = (/obj/structure/window/basic{dir = 1},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) "aG" = (/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) "aH" = (/obj/item/weapon/bedsheet,/obj/structure/bed/padded,/turf/simulated/floor/lino,/area/awaymission/carpfarm/base) @@ -36,11 +34,11 @@ "aJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/space/void/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/void/mining,/obj/item/weapon/mining_scanner,/obj/item/weapon/tank/jetpack/oxygen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "aK" = (/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "aL" = (/obj/structure/closet/toolcloset,/obj/item/weapon/pickaxe/jackhammer,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"aM" = (/obj/machinery/gateway{density = 0; dir = 10},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"aN" = (/obj/machinery/gateway,/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"aO" = (/obj/machinery/gateway{density = 0; dir = 6},/turf/simulated/floor/bluegrid,/area/awaymission/carpfarm/base) -"aP" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) -"aQ" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/base) +"aM" = (/turf/simulated/wall/r_wall,/area/space) +"aN" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/tiled/airless,/area/space) +"aO" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled/airless,/area/space) +"aP" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{dir = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/awaymission/carpfarm/base) +"aQ" = (/turf/simulated/floor/tiled/airless,/area/space) "aR" = (/obj/structure/table/woodentable,/obj/random/action_figure,/turf/simulated/floor/lino,/area/awaymission/carpfarm/base) "aS" = (/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/base) "aT" = (/obj/structure/closet/secure_closet/medical1,/obj/random/medical,/obj/random/medical,/obj/random/medical,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) @@ -69,14 +67,14 @@ "bq" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "br" = (/obj/item/mecha_parts/mecha_equipment/tool/drill,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bs" = (/obj/structure/ore_box,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) -"bt" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) +"bt" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/obj/item/clothing/suit/space/void/merc/axis/sovrig,/obj/item/clothing/head/helmet/space/void/axis/merc/sovrigh,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bu" = (/obj/structure/table/rack,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bv" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) -"bw" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -2; pixel_y = 6},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) +"bw" = (/obj/machinery/microwave{pixel_x = -2; pixel_y = 6},/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bx" = (/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "by" = (/obj/machinery/vending/coffee{prices = list()},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bz" = (/obj/machinery/vending/sovietsoda,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) -"bA" = (/obj/machinery/vending/snack{prices = list()},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) +"bA" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/machinery/vending/sovietvend,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bB" = (/obj/machinery/vending/cigarette{prices = list()},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bC" = (/obj/machinery/vending/dinnerware,/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bD" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) @@ -97,8 +95,8 @@ "bS" = (/obj/item/weapon/reagent_containers/food/snacks/cubancarp,/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bT" = (/obj/item/weapon/reagent_containers/food/snacks/carpmeat,/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bU" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) -"bV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1375; id_tag = "carp_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1375; id_tag = "carp_airlock"; pixel_x = -28; pixel_y = 0; req_access = null; tag_airpump = "carp_pump"; tag_chamber_sensor = "carp_sensor"; tag_exterior_door = "carp_outer"; tag_interior_door = "carp_inner"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) -"bW" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1375; id_tag = "carp_pump"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) +"bV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1375; id_tag = "carp_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1375; id_tag = "carp_airlock"; pixel_x = -28; pixel_y = 0; req_access = null; tag_airpump = "carp_pump"; tag_chamber_sensor = "carp_sensor"; tag_exterior_door = "carp_outer"; tag_interior_door = "carp_inner"},/obj/effect/floor_decal/industrial/warning/cee{dir = 8; icon_state = "warningcee"},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) +"bW" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1375; id_tag = "carp_pump"},/obj/effect/floor_decal/industrial/warning/cee{dir = 4; icon_state = "warningcee"},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "bX" = (/obj/structure/closet/emcloset,/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/airlock_sensor{frequency = 1375; id_tag = "carp_sensor"; pixel_x = 28},/turf/simulated/floor/plating,/area/awaymission/carpfarm/base) "bY" = (/obj/structure/closet/secure_closet/freezer/fridge,/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) "bZ" = (/obj/structure/bed/chair{dir = 1},/obj/effect/floor_decal/corner/white/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/base) @@ -113,153 +111,381 @@ "ci" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/airless,/area/space) "cj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/airless,/area/space) "ck" = (/turf/simulated/floor/airless,/area/space) -"cl" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/airless,/area/space) -"cm" = (/obj/structure/closet/crate/secure/weapon,/obj/item/weapon/gun/projectile/shotgun/pump/rifle,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) +"cl" = (/obj/effect/floor_decal/industrial/warning{dir = 4; icon_state = "warning"},/turf/simulated/floor/airless,/area/space) +"cm" = (/obj/structure/closet/crate/secure/weapon,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/weapon/gun/projectile/automatic/serdy/mosin,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) "cn" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/airless,/area/space) "co" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/airless,/area/space) "cp" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/airless,/area/space) -"cq" = (/obj/structure/closet/crate/secure/weapon,/obj/item/ammo_magazine/clip/c762,/obj/item/ammo_magazine/clip/c762,/obj/item/ammo_magazine/clip/c762,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) +"cq" = (/obj/structure/closet/crate/secure/weapon,/obj/effect/floor_decal/industrial/outline/yellow,/obj/item/ammo_magazine/clip/mosin,/obj/item/ammo_magazine/clip/mosin,/obj/item/ammo_magazine/clip/mosin,/obj/item/ammo_magazine/clip/mosin,/turf/simulated/floor/airless,/area/awaymission/carpfarm/base) "cr" = (/turf/simulated/mineral/floor/ignore_mapgen/vacuum,/area/mine/unexplored) +"dc" = (/obj/machinery/door/airlock{name = "Restroom"},/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"dl" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/vending/snlvend,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"dz" = (/obj/structure/bed,/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"dK" = (/mob/living/simple_mob/humanoid/pirate/mate/ranged/shotgun,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"ef" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor,/area/awaymission/carpfarm/hostilebase) +"eh" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"ei" = (/obj/effect/landmark/loot_spawn,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"er" = (/obj/structure/fans/tiny,/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"ex" = (/obj/machinery/power/rtg/fake_gen,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"fT" = (/turf/simulated/floor/plating,/area/space) +"fV" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/bed/chair,/turf/simulated/floor/tiled/steel_dirty,/area/awaymission/carpfarm/hostilebase) +"fX" = (/obj/structure/lattice,/obj/item/weapon/material/shard{icon_state = "small"},/turf/space,/area/space) +"gS" = (/obj/effect/wingrille_spawn/reinforced_phoron,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"hf" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/closet/crate/bin,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"iw" = (/obj/structure/table/rack/shelf,/obj/item/clothing/suit/space/syndicate/black,/obj/item/clothing/head/helmet/space/syndicate/black,/turf/simulated/floor/tiled/airless,/area/space) +"jK" = (/obj/machinery/gateway/brass{dir = 9},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"kH" = (/mob/living/simple_mob/humanoid/pirate/mate/ranged/bosun,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"la" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"lh" = (/obj/effect/floor_decal/corner/black/diagonal,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"ly" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"mZ" = (/obj/machinery/power/rtg/fake_gen,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"nr" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"nD" = (/mob/living/simple_mob/humanoid/pirate/mate/ranged/rifle,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"nU" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"oe" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"og" = (/turf/simulated/floor/tiled/steel_grid,/area/awaymission/carpfarm/hostilebase) +"ok" = (/obj/machinery/suit_cycler/syndicate,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"pd" = (/obj/machinery/gateway/brass{dir = 1},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"ph" = (/obj/structure/closet/toolcloset,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"pT" = (/obj/item/weapon/material/shard,/turf/space,/area/space) +"qR" = (/obj/machinery/atmospherics/unary/engine{dir = 8},/turf/space,/area/space) +"qT" = (/mob/living/simple_mob/humanoid/pirate/armored,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"rr" = (/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"rz" = (/obj/structure/closet/secure_closet/personal,/obj/machinery/light,/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"rG" = (/obj/effect/floor_decal/corner/black/diagonal,/turf/simulated/floor/tiled/steel_dirty,/area/awaymission/carpfarm/hostilebase) +"sm" = (/obj/machinery/light{dir = 8},/mob/living/simple_mob/humanoid/pirate/machete,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"sL" = (/obj/item/weapon/material/shard{icon_state = "small"},/turf/space,/area/space) +"tn" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"to" = (/obj/structure/table/rack/shelf,/obj/item/weapon/gun/projectile/automatic/serdy/hectate,/obj/item/ammo_magazine/hectate/ap,/obj/item/ammo_magazine/hectate/ap,/obj/item/ammo_magazine/hectate,/obj/item/ammo_magazine/hectate,/obj/item/ammo_magazine/hectate,/obj/item/ammo_magazine/hectate,/turf/simulated/floor/tiled/airless,/area/space) +"tA" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"tB" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"tY" = (/obj/structure/table/wooden_reinforced,/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"uc" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/airless,/area/space) +"uj" = (/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"ux" = (/obj/structure/table/wooden_reinforced,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"va" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel_ridged,/area/awaymission/carpfarm/hostilebase) +"vR" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_grid,/area/awaymission/carpfarm/hostilebase) +"wc" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/tiled/airless,/area/space) +"wB" = (/obj/machinery/power/apc{alarms_hidden = 1; dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"xQ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"yq" = (/obj/machinery/gateway/brass{dir = 5},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"yt" = (/obj/structure/shuttle/engine/heater{dir = 4},/turf/simulated/wall/r_wall,/area/space) +"ze" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"zp" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"zs" = (/obj/structure/dispenser/oxygen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"Ab" = (/obj/structure/table/wooden_reinforced,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"Ah" = (/obj/mecha/working/hoverpod/shuttlecraft,/turf/space,/area/space) +"At" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/tiled/airless,/area/space) +"AW" = (/mob/living/simple_mob/humanoid/pirate/shield/machete/armored,/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"Bf" = (/obj/machinery/vending/tool{dir = 1},/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"BS" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"CF" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel_ridged,/area/awaymission/carpfarm/hostilebase) +"CH" = (/obj/machinery/shower{pixel_y = 18},/obj/structure/window/reinforced/tinted/frosted{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 6},/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"Du" = (/obj/machinery/gateway/brass{dir = 10},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"Dx" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/table/steel,/obj/machinery/microwave/advanced,/obj/machinery/light,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"Ea" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"EL" = (/obj/machinery/gateway/brass{dir = 8},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"Fb" = (/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"Fx" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"FT" = (/obj/effect/landmark/loot_spawn/low,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"FZ" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"GP" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"GV" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"He" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"HU" = (/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"IV" = (/obj/effect/wingrille_spawn/reinforced_phoron,/turf/simulated/floor,/area/awaymission/carpfarm/hostilebase) +"Jy" = (/turf/simulated/floor/tiled/techmaint,/area/awaymission/carpfarm/hostilebase) +"Kl" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/vending/dinnerware,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"Ky" = (/obj/machinery/gateway/centeraway/mcguffin,/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"KF" = (/obj/machinery/light,/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"KG" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"KQ" = (/obj/item/device/multitool,/obj/item/device/multitool,/obj/structure/table/rack,/turf/simulated/floor/plating,/area/awaymission/carpfarm/hostilebase) +"KX" = (/obj/machinery/suit_cycler,/turf/simulated/floor/tiled/airless,/area/space) +"Lr" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/light,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"Mt" = (/obj/machinery/door/airlock/vault,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"MO" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/vending/radren,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"MT" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled/airless,/area/space) +"No" = (/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/airless,/area/space) +"Nx" = (/turf/simulated/wall/r_wall,/area/awaymission/carpfarm/hostilebase) +"NE" = (/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"NN" = (/obj/machinery/suit_cycler/syndicate,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"Ob" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/awaymission/carpfarm/hostilebase) +"OL" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"PK" = (/turf/simulated/floor/tiled/steel_ridged,/area/awaymission/carpfarm/hostilebase) +"Qa" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/vending/snack,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"QA" = (/obj/effect/floor_decal/industrial/hatch,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"QP" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel_grid,/area/awaymission/carpfarm/hostilebase) +"Rm" = (/mob/living/simple_mob/humanoid/pirate/las/armored,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"RW" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/vending/food,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"RY" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"SW" = (/obj/structure/sink{pixel_y = 16},/turf/simulated/floor/tiled/freezer,/area/awaymission/carpfarm/hostilebase) +"SY" = (/obj/effect/floor_decal/corner/black/diagonal,/mob/living/simple_mob/humanoid/pirate/mate/ranged/bosun,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"TU" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"US" = (/obj/effect/floor_decal/corner/black/diagonal,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"Vs" = (/obj/structure/table/rack/shelf/steel,/obj/item/clothing/suit/space/void,/obj/item/clothing/head/helmet/space/void,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"VH" = (/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"VJ" = (/obj/machinery/gateway/brass{dir = 6},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"WW" = (/obj/machinery/gateway/brass{dir = 4},/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"YF" = (/obj/machinery/door/airlock/security,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) +"Zd" = (/mob/living/simple_mob/humanoid/pirate/captain,/turf/simulated/floor/tiled,/area/awaymission/carpfarm/hostilebase) +"Zh" = (/obj/machinery/gateway/brass,/turf/simulated/floor/tiled/dark,/area/awaymission/carpfarm/hostilebase) +"ZC" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/tiled/techfloor/grid,/area/awaymission/carpfarm/hostilebase) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaeaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaeaaaaacacacacacacacacacacacacacahahahacacacacacacacacacacaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacahahahahahahahacacahahacacacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacahahahahahahahahahahahahahacacacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacahahacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaacacacacacacacacacacahahafahahahajahahahafahahacacacacacacacacacaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacahahahahahahacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaacacacacacacacacacacahahahahahahahahahahahacacacacacacacacacacacaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacahahahafahahacacacacacacacacaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaacacacacacacacacacacacahahahafahahahacacacacacacacacacacacacacaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacahajahahafahacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacahahahacacacacacacacacacacacacacacacaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacahahafahahahahacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacahahahahahacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacahahacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaacacaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamamamamamamamamamamamamamamamamamamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamanaoapamaqarasamatauavawamaxayaxamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamazaAaBamaCaDaEamaFaGamamamaHaIaHamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaMaNaOamaPaGavawamaIaIaIamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaQaQaQamaPaGamamamaRaIaxamamamamamamamamamakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaSaSaSamaPaGavawamaHaIaHamagagcdcdaiaTaTamakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamaWamamamaXamamamaYamamamamaZamamcdaUaVbebfcdcdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbdbcbcbcbdbcbcbcbcbdbcbcbcambgbhbebhbhbibkamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbjcdbebhblbebecdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcambmbhbebebhagbnamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamamamamamboamamambpamamamambpamambDbebhbebhbEcdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambqbrbsbtbubcbvambwbxbybzbAbBbxbCamcmcqcdbhagagagamakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambcbcbcbcbcbcbFambxbxbxbxbxbxbxbxamamamcdcdamamamamakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambcbcbGbHbIbJbKambxbxbxbLbLbxbxbxamcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambMbNbObPbQbQamambxbxbRbSbTbUbxbxamakcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamamamambVbWbXambYbxbxbZbZbxbxcaamakakcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalamcbcbamamamamamamamamamamamakcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaaaaaacccdcecdakcrcrcrcrcrcrcrcrcrcrcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfaaaaaacgchchciaaakcrcrcrcrcrcrcrcrcrcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalcrcrcrakcrakakakcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalcrakakakakakakakcrcrakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfaaalaacjckckclaaalaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalalakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaacfaaaaaacncococpaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaacfaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaacacacaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaacacacacacacacacacacacacacacacacacacacacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacahahahahahahahahahahacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacahahahahahahahahahahahahahacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacahahahahahahafahahahafahahahahahahacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacahahahahahahahahahahahahahafahahahahahacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacahahahahahajahahahahahahahahahacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacahahahahahahahahahahacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacNxNxNxNxNxacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacNxjKpdyqNxacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacNxELKyWWNxacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacNxDuZhVJNxacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacNxtBnrGVNxacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacNxHUHUHUNxacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacNxNxMtNxNxacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacNxNxNxNxNxNxNxNxNxNxNxNxNxVHrrVHNxNxNxNxNxNxNxNxNxNxacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacNxogFTvRFTogFTvReiogeiCFNxVHrrVHNxCHCHCHSWSWSWdcBSNxacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacNxogFTogFTogFTogeiogeiPKNxRYrrOLNxujujujujujujNxNxNxacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacNxogFTogFTogFTogeiogeiPKNxZdrrVHNxujujKFujujujdcBSNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacNxogogogogogogogogogogPKMtrrrrVHNxNxNxNxNxdcNxNxNxNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaacacacacNxNxNxNxNxNxogFTogFTogFTogeiogeiPKNxVHrrVHNxdznUdzJyJydznUdzNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaacacNxmZFbFbphNxogFTogFTogFTogeiogeiPKNxVHrrqTNxtYJytYJyJytYJytYNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaacacNxexFbFbxQNxogFTQPFTogFTQPeiogeivaNxsmrrOLNxdzJydzJyJydzJydzNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaNxwBFbFbphNxNxNxNxNxNxNxNxNxNxNxNxNxVHrrVHNxAbJytYJyJytYJyuxNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaNxzeFbkHxQNxVHVHlaVHVHVHnDVHlaVHVHNxVHrrVHNxJyJyJyAWJyJyJyJyNxacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaagSKQFbFbFbZCrrrrrrrrrrrrrrrrrrrrrrYFrrrrrrEaJyJyJyJyJyJyJyJyNxacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaagSKQFbFbBfNxVHVHGPdKVHVHVHrrGPVHVHNxVHrrVHNxFZrzFZFZFZFZrzFZNxacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacajajacacacacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNxNxNxNxNxNxNxNxNxNxNxNxNxoeNxNxNxNxRYrrOLNxNxNxNxNxNxNxNxNxNxacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacajajajajajajacacacacacacacaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacNxVsVsQArrrrVHrrlyNxVHrrVHefdlQaMORWhfTUKlNxacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacajajajafajajacacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacNxtnrrrrrrrrVHrrObNxVHrrVHeflhSYlhlhlhlhlhNxacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaacacacajajaaaaafahacacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacNxVsVsQArrrrVHrrNENxRmrrVHeflhKGKGKGfVlhlhNxacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacajaaaaaaaaajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacNxrrrrrrrrrrVHrrzsNxRYrrVHefHeUSUSUSUSehtANxacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacajaaaaaaajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacNxVsVsQArrrrVHrrzsNxVHrrVHNxlhzpzpzpzprGlhNxacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacNxtnrrrrrrrrVHrrokNxVHrrrrFxrGlhSYlhlhlhlhNxacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacNxVsVsQArrrrVHrrNNNxVHVHVHNxLrrGrGlhUSUSDxNxacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacNxNxNxNxererNxNxNxNxNxNxNxNxNxIVIVIVIVIVNxNxacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNxFbFbNxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNxererNxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalfTfTalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalfTfTalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalfTfTalalalalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafTfTfTfTfTfTfTfTfTfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafTfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAhaaAhaafTfTAhaaAhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafTfTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaeaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaeaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaeaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacajajacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacajajajajajajacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacajajajafajajacacacacacacacacaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacajajaaaaafahacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacajajafajaaajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacajajajajajajajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacajajajajajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaacacacacacacajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaalakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaalamamamamamamamamamamamamamamamamamamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamanaoapamasasasamatauavawamaxayaxamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamazaAaBamaSaSaEamaFaGamamamaHaIaHamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaSaSaSamaPaGavawamaIaIaIamakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaSaSaSamaPaGamamamaRaIaxamamamamamamamamamakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamaJaKaLamaSaSaSamaPaGavawamaHaIaHamagagcdcdaiaTaTamakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamaWamamamaXamamamaYamamamamaZamamcdaUaVbebfcdcdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbdbcbcbcbdbcbcbcbcbdbcbcbcambgbhbebhbhbibkamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbjcdbebhblbebecdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalbabbbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcambmbhbebebhagbnamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamamamamamboamamambpamamamambpamambDbebhbebhbEcdamakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambqbrbsbtbubcbvambwbxbybzbAbBbxbCamcmcqcdbhagagagamakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambcbcbcbcbcbcbFambxbxbxbxbxbxbxbxamamamcdcdamamamamakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambcbcbGbHbIbJbKambxbxbxbLbLbxbxbxamcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalambMbNbObPbQbQamambxbxbRbSbTbUbxbxamakcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalamamamamambVbWbXambYbxbxbZbZbxbxcaamakakcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalalalalalamcbcbamamamamamamamamamamamakcrcrcrakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalaaaaaacccdcecdakcrcrcrcrcrcrcrcrcrcrcrcrcrcrakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfaaaaaacgchchciaaakcrcrcrcrcrcrcrcrcrcrcrcrcrakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalcrcrcrakcrakakakcrcrcrcrakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalcrakakakakakakakcrcrakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfaaalaacjckckclaaalaaakakakakakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalakakakakakakakakakakakakakakakakakakakakakakakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaacfalalalcjckckclalalalalakakakakakakaaaaaaaaaaaaaaaaaaakakaaaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaacfaaaaaacncococpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaacfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaMaMaMaMaNaOaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMaMaQaQaQucucaQaQMTAtytqRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapTckckckwcaQaQaQaQaQaQaQytqRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafXNoalaQaQaQaQaQaQaQaQytqRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasLacacacacalaQtoiwiwiwKXaQytqRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaMaMaMaMaMaMaMaMaMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaacaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacaaacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacajajajajajajajajajajacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacajajajajajajajajajajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacajajajajajajafajajajafajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaajacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacajajajajajajajajajajajaaajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacajaaaaajajacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacajajajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacajajajajacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacajajacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaacacacacacajajajacacacacacacacacacacacacacacacaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacajajajajajacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacajajafajajajacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaacacacacacacacacacajajajajafajacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacajajajacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacajacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} diff --git a/maps/southern_cross/submaps/gateway/snowfield.dmm b/maps/southern_cross/submaps/gateway/snowfield.dmm index 555a86ec3b..23c489435d 100644 --- a/maps/southern_cross/submaps/gateway/snowfield.dmm +++ b/maps/southern_cross/submaps/gateway/snowfield.dmm @@ -183,14 +183,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/simulated/floor/cult, /area/awaymission/snowfield/command/bridge) -"aiA" = ( -/obj/structure/catwalk, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/vore/demonAI/avarn{ - faction = "cult" - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/security/security_cell) "aiX" = ( /obj/effect/floor_decal/borderfloor/corner{ dir = 4 @@ -1708,12 +1700,6 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock/glass_medical{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access = null; - req_one_access = null - }, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/front_desk) "bAP" = ( @@ -2230,7 +2216,6 @@ /obj/structure/sink/kitchen{ pixel_y = 17 }, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/engineering/restroom) "bYA" = ( @@ -2923,10 +2908,6 @@ }, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/service/cafeteria) -"cCl" = ( -/mob/living/simple_mob/animal/giant_spider/electric, -/turf/simulated/floor, -/area/awaymission/snowfield/security/firingrange) "cCA" = ( /obj/machinery/door/blast/gate/open, /turf/simulated/floor/outdoors/rocks, @@ -3158,7 +3139,6 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/electric, /turf/simulated/floor, /area/awaymission/snowfield/security/security_cell) "cQM" = ( @@ -3175,11 +3155,9 @@ /turf/simulated/floor/outdoors/rocks/caves, /area/awaymission/snowfield/hallway/commandhallway) "cQZ" = ( -/obj/structure/catwalk, -/obj/machinery/light/small, /obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) +/turf/simulated/floor/carpet/turcarpet, +/area/awaymission/snowfield/medical/staff_room) "cRf" = ( /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/warden) @@ -3876,7 +3854,7 @@ dir = 8 }, /obj/machinery/door/window/brigdoor/eastright{ - id = Cell2; + id = "cell2"; name = "Cell 2"; req_access = null; req_one_access = list(2,4) @@ -4453,7 +4431,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -4671,7 +4649,6 @@ /obj/item/weapon/tank/emergency/oxygen/double, /obj/item/clothing/mask/breath, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "dXU" = ( @@ -5390,7 +5367,6 @@ icon_state = "0-4" }, /obj/machinery/light, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/surgery) "eAM" = ( @@ -6087,6 +6063,7 @@ /obj/effect/floor_decal/industrial/warning{ dir = 1 }, +/obj/structure/door_assembly/door_assembly_med, /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/hallway/northhallway) "fkQ" = ( @@ -6121,11 +6098,6 @@ }, /turf/simulated/floor/tiled/monotile, /area/awaymission/snowfield/security/seconddesk) -"fnn" = ( -/obj/structure/catwalk, -/mob/living/simple_mob/animal/giant_spider/ion, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/security/security_cell) "fnD" = ( /obj/effect/floor_decal/borderfloorwhite{ dir = 10 @@ -6207,11 +6179,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/warden) -"fpL" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/tunneler/frequent, -/turf/simulated/floor, -/area/awaymission/snowfield/security/firingrange) "fqn" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -6522,9 +6489,10 @@ /turf/simulated/wall/r_wall, /area/awaymission/snowfield/public/publicrestroom) "fGG" = ( -/mob/living/simple_mob/animal/giant_spider/lurker, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/medical/patient_restroom) +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/spider/stickyweb, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "fIy" = ( /obj/item/weapon/stool, /obj/item/weapon/paper/awaygate/snowfield/evacuation_order, @@ -8710,6 +8678,7 @@ /area/awaymission/snowfield/engineering/engine_checkpoint) "hsn" = ( /mob/living/simple_mob/vore/demonAI/zellic{ + devourable = 0; faction = "cult"; health = 450 }, @@ -9746,7 +9715,6 @@ /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/hallway/northhallway) "ilY" = ( -/obj/effect/spider/stickyweb, /obj/machinery/light{ dir = 8 }, @@ -9982,6 +9950,7 @@ /obj/machinery/light{ dir = 4 }, +/obj/item/weapon/paper/awaygate/snowfield/final_note, /turf/simulated/floor/tiled/monotile, /area/awaymission/snowfield/security/seconddesk) "iAB" = ( @@ -10108,7 +10077,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -10645,6 +10614,7 @@ /obj/structure/catwalk, /obj/effect/decal/cleanable/dirt, /mob/living/simple_mob/vore/demonAI/ira{ + devourable = 0; faction = "cult" }, /turf/simulated/floor, @@ -10873,6 +10843,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/door_assembly/door_assembly_med, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/front_desk) "jhx" = ( @@ -11122,12 +11093,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/security/security_lockerroom) -"jtT" = ( -/obj/structure/lattice, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/tunneler/frequent, -/turf/simulated/floor/outdoors/rocks/caves, -/area/awaymission/snowfield/security/security_cell) "juu" = ( /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/green/border, @@ -12032,7 +11997,7 @@ /area/awaymission/snowfield/dorms/dorm7) "kcv" = ( /obj/machinery/door/window/brigdoor/eastright{ - id = Cell1; + id = "cell1"; name = "Cell 1"; req_access = null; req_one_access = list(2,4) @@ -12110,7 +12075,7 @@ req_one_access = list(1,11) }, /obj/machinery/door/blast/regular{ - id = "snowfieldenglockdown" + id = "snowfieldengroomlockdown" }, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/engineering/engine) @@ -12689,17 +12654,10 @@ /turf/simulated/floor/plating, /area/awaymission/snowfield/checkpointunpowered) "kIH" = ( -/obj/effect/floor_decal/steeldecal/steel_decals5{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals_central2, -/obj/effect/floor_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/carrier, -/turf/simulated/floor/tiled/steel, -/area/awaymission/snowfield/medical/storage_room) +/obj/structure/catwalk, +/obj/effect/spider/stickyweb, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "kIX" = ( /obj/effect/floor_decal/borderfloorblack{ dir = 1 @@ -12737,7 +12695,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -13736,20 +13694,12 @@ /turf/simulated/floor/outdoors/snow/sif/planetuse, /area/awaymission/snowfield/outside) "lxg" = ( -/obj/effect/floor_decal/steeldecal/steel_decals5, -/obj/effect/floor_decal/steeldecal/steel_decals_central2{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/floor_decal/industrial/warning, +/obj/structure/catwalk, +/obj/structure/catwalk, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/carrier, -/turf/simulated/floor/tiled/steel, -/area/awaymission/snowfield/medical/storage_room) +/mob/living/simple_mob/animal/giant_spider/pepper, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "lxq" = ( /obj/machinery/shower{ pixel_y = 18 @@ -13944,7 +13894,6 @@ /obj/machinery/iv_drip, /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/green/border, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/surgery) "lEI" = ( @@ -14171,7 +14120,6 @@ /obj/effect/floor_decal/corner/red/border{ dir = 10 }, -/mob/living/simple_mob/animal/giant_spider/tunneler/frequent, /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/firingrange) "lPD" = ( @@ -14668,7 +14616,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/medical/surgery) "mpk" = ( @@ -14884,7 +14831,6 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock/security, /turf/simulated/floor/tiled/red, /area/awaymission/snowfield/security/lobby) "myD" = ( @@ -15063,7 +15009,6 @@ /obj/structure/window/reinforced, /obj/effect/floor_decal/industrial/outline/yellow, /obj/item/weapon/storage/pill_bottle/assorted, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "mHr" = ( @@ -15141,10 +15086,11 @@ /turf/simulated/floor, /area/awaymission/snowfield/outside) "mKv" = ( -/obj/structure/catwalk, -/mob/living/simple_mob/animal/giant_spider/webslinger, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spider/stickyweb, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "mLz" = ( /obj/structure/sink{ dir = 4; @@ -15459,16 +15405,11 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "mWF" = ( -/obj/structure/table/steel_reinforced, -/obj/item/weapon/storage/firstaid/adv{ - starts_with = list(/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/ointment,/obj/item/stack/medical/advanced/ointment,/obj/item/stack/medical/advanced/ointment) - }, -/obj/item/weapon/storage/firstaid/adv{ - starts_with = list(/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/bruise_pack,/obj/item/stack/medical/advanced/ointment,/obj/item/stack/medical/advanced/ointment,/obj/item/stack/medical/advanced/ointment) - }, +/obj/structure/catwalk, +/obj/effect/decal/cleanable/dirt, /obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/medical/surgery) +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "mWM" = ( /obj/structure/table/woodentable, /obj/item/weapon/paper_bin, @@ -15713,16 +15654,11 @@ /turf/simulated/floor/tiled/monotile, /area/awaymission/snowfield/service/janitor) "ngO" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/gun/projectile/shotgun/pump/shorty{ - desc = "A clunky, lightly modified special carbine, this gun is often be seen in the old terran's prison, designed to suppress the prison riots."; - description_fluff = "Designed to suppress the prison riot, KS-23 has been developed in 1970s in Soviet Russia. Crude, but compact, it is easy to carry around while in patrol, and useful in close combat."; - name = "KS-23" - }, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/obj/item/ammo_magazine/ammo_box/b12g/pellet, -/turf/simulated/floor/carpet/turcarpet, -/area/awaymission/snowfield/medical/staff_room) +/obj/structure/catwalk, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_mob/animal/giant_spider/pepper, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "nhd" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -15762,7 +15698,6 @@ /area/awaymission/snowfield/checkpointunpowered) "niv" = ( /obj/effect/floor_decal/industrial/warning, -/mob/living/simple_mob/animal/giant_spider/pepper, /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/firingrange) "niM" = ( @@ -15993,9 +15928,12 @@ "nsL" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_mob/vore/demonAI/engorge{ + devourable = 0; faction = "cult"; - health = 400; - size_multiplier = 1.25 + health = 550; + size_multiplier = 1.5; + vore_pounce_chance = 30; + vore_pounce_maxhealth = 95 }, /turf/simulated/floor/cult, /area/awaymission/snowfield/command/bridge) @@ -16819,7 +16757,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -17328,18 +17266,8 @@ }, /obj/structure/table/steel_reinforced, /obj/item/weapon/storage/box/masks, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/surgery) -"owE" = ( -/obj/structure/catwalk, -/mob/living/simple_mob/animal/giant_spider/pepper, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/security/security_cell) -"oxs" = ( -/mob/living/simple_mob/animal/giant_spider/carrier, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/medical/surgery) "oxR" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/ore/glass, @@ -17607,9 +17535,16 @@ /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/medical/morgue) "oOl" = ( -/obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/engineering/restroom) +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/door_assembly/door_assembly_eng, +/turf/simulated/floor/plating, +/area/awaymission/snowfield/engineering/primary_storage) "oOF" = ( /obj/machinery/gateway, /obj/effect/decal/cleanable/dirt, @@ -17710,13 +17645,12 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "oWq" = ( -/obj/structure/catwalk, -/obj/machinery/light/small{ +/obj/machinery/light{ dir = 1 }, /obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) +/turf/simulated/floor/tiled/neutral, +/area/awaymission/snowfield/medical/patients) "oWy" = ( /obj/structure/artilleryplaceholder{ icon_state = "8" @@ -18005,6 +17939,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/effect/spider/stickyweb, /turf/simulated/floor/carpet/turcarpet, /area/awaymission/snowfield/medical/staff_room) "plx" = ( @@ -18166,7 +18101,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -18176,7 +18111,7 @@ /obj/machinery/door/blast/regular{ density = 0; icon_state = "pdoor0"; - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; opacity = 0 }, @@ -18244,11 +18179,6 @@ /obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/dark, /area/awaymission/snowfield/security/security_lockerroom) -"puf" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/simple_mob/animal/giant_spider/pepper, -/turf/simulated/floor/outdoors/rocks/caves, -/area/awaymission/snowfield/security/hallway2) "pun" = ( /turf/simulated/floor/outdoors/snow/sif/planetuse, /area/awaymission/snowfield/outside) @@ -19283,12 +19213,6 @@ /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/engineering/engine_checkpoint) "qgX" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access = null; - req_one_access = null - }, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/hallway) "qhs" = ( @@ -19374,18 +19298,9 @@ /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/command/bridge) "qjp" = ( -/obj/structure/table/steel_reinforced, -/obj/item/weapon/surgical/bonesetter, -/obj/item/weapon/surgical/bone_clamp{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/surgical/bonegel, -/obj/item/weapon/surgical/FixOVein, -/obj/item/weapon/surgical/cautery, /obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/medical/surgery) +/turf/simulated/floor/tiled/neutral, +/area/awaymission/snowfield/medical/patients) "qjJ" = ( /obj/machinery/button/remote/blast_door{ id = "snowfield emergency bunk"; @@ -19733,7 +19648,7 @@ "qww" = ( /obj/structure/table/reinforced, /obj/machinery/button/remote/blast_door{ - id = "englockdown"; + id = "snowfieldenglockdown"; name = "Engineering Lockdown"; pixel_x = -5; req_access = null; @@ -19743,7 +19658,7 @@ dir = 1 }, /obj/machinery/button/remote/blast_door{ - id = "snowfieldenglockdown"; + id = "snowfieldengroomlockdown"; name = "Engine Room Lockdown"; pixel_x = 5; req_one_access = list(1,10) @@ -19969,7 +19884,6 @@ d2 = 2; icon_state = "0-2" }, -/obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ dir = 4; @@ -20766,10 +20680,13 @@ /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/dorms/dorm11) "rvf" = ( -/obj/structure/catwalk, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) +/turf/simulated/floor/tiled/techfloor, +/area/awaymission/snowfield/engineering/hallway) "rvN" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -21020,7 +20937,6 @@ /obj/item/weapon/storage/firstaid/fire, /obj/structure/window/reinforced, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "rMo" = ( @@ -21079,6 +20995,7 @@ }, /obj/effect/floor_decal/corner/lightgrey/diagonal, /obj/effect/decal/cleanable/dirt, +/obj/structure/door_assembly/door_assembly_sec, /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/lobby) "rPn" = ( @@ -21236,7 +21153,7 @@ /obj/machinery/door/airlock/glass_medical{ name = "Medbay Equipment"; req_access = null; - req_one_access = list1,5) + req_one_access = list(1,5) }, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/storage_room) @@ -21615,7 +21532,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/window/brigdoor/eastright{ - id = Cell3; + id = "cell3"; name = "Cell 3"; req_access = null; req_one_access = list(2,4) @@ -22299,12 +22216,6 @@ /turf/simulated/floor/tiled/steel_grid, /area/awaymission/snowfield/dorms/dorm2) "tfe" = ( -/obj/machinery/door/airlock/glass_medical{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access = null; - req_one_access = null - }, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -22722,7 +22633,6 @@ pixel_x = 2; pixel_y = 2 }, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/surgery) "tuW" = ( @@ -23290,14 +23200,16 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/hallway/northhallway) "tWH" = ( -/obj/effect/floor_decal/corner/green/diagonal, -/obj/effect/floor_decal/corner/blue/diagonal{ - dir = 4 +/obj/structure/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/neutral, -/area/awaymission/snowfield/medical/staff_room) +/obj/structure/door_assembly/door_assembly_med, +/turf/simulated/floor, +/area/awaymission/snowfield/hallway/northhallway) "tXc" = ( /obj/effect/floor_decal/techfloor/orange{ dir = 4 @@ -23347,11 +23259,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Storage"; - req_one_access = list(1,10) - }, /obj/effect/decal/cleanable/dirt, +/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/engineering/primary_storage) "tYJ" = ( @@ -23681,7 +23590,6 @@ /obj/machinery/vending/coffee{ dir = 1 }, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/staff_room) "ulH" = ( @@ -24314,14 +24222,10 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/hallway/northhallway) "uOQ" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security, -/turf/simulated/floor/tiled/red, -/area/awaymission/snowfield/security/hallway) +/obj/effect/floor_decal/corner/lightgrey/diagonal, +/obj/structure/door_assembly/door_assembly_sec, +/turf/simulated/floor/tiled/steel, +/area/awaymission/snowfield/security/lobby) "uPe" = ( /obj/structure/filingcabinet, /obj/effect/floor_decal/borderfloor{ @@ -24338,16 +24242,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/effect/spider/stickyweb, /turf/simulated/floor/plating, /area/awaymission/snowfield/engineering/primary_storage) -"uPI" = ( -/obj/effect/spider/stickyweb, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/engineering/restroom) "uQl" = ( /obj/machinery/light_construct{ dir = 8 @@ -24366,12 +24263,6 @@ /obj/machinery/light, /turf/simulated/floor/tiled/steel_grid, /area/awaymission/snowfield/dorms/dorm1) -"uRb" = ( -/obj/structure/catwalk, -/mob/living/simple_mob/animal/giant_spider/webslinger, -/obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) "uRd" = ( /obj/machinery/vending/security{ description_fluff = "This security vending machine is kindly provided by the-... Sorry, how do you spell this company's name again?"; @@ -25059,7 +24950,6 @@ /obj/structure/mirror{ pixel_y = 35 }, -/obj/effect/spider/stickyweb, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/engineering/restroom) @@ -25134,7 +25024,7 @@ icon_state = "4-8" }, /obj/machinery/door/blast/regular{ - id = "snowfieldenglockdown" + id = "snowfieldengroomlockdown" }, /turf/simulated/floor, /area/awaymission/snowfield/engineering/engine) @@ -25268,12 +25158,6 @@ /obj/effect/floor_decal/industrial/outline, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/medical_locker) -"vCU" = ( -/obj/structure/table/rack/shelf/steel, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/spider/stickyweb, -/turf/simulated/floor/tiled/techfloor/grid, -/area/awaymission/snowfield/medical/storage_room) "vCY" = ( /turf/simulated/floor/tiled/red, /area/awaymission/snowfield/security/hallway) @@ -25839,7 +25723,6 @@ /obj/item/weapon/tank/air, /obj/item/clothing/mask/breath, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "wac" = ( @@ -25978,7 +25861,6 @@ /obj/item/weapon/storage/box/bodybags, /obj/item/weapon/storage/box/bodybags, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/medical/storage_room) "wfG" = ( @@ -26030,12 +25912,8 @@ pixel_y = 8 }, /obj/item/weapon/surgical/surgicaldrill, -/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/medical/surgery) -"whO" = ( -/turf/simulated/mineral/floor/cave, -/area/awaymission/snowfield/security/security_cell) "whW" = ( /obj/machinery/computer/secure_data{ dir = 1 @@ -26290,6 +26168,7 @@ /obj/effect/floor_decal/steeldecal/steel_decals10{ dir = 10 }, +/obj/effect/spider/stickyweb, /turf/simulated/floor/tiled/neutral, /area/awaymission/snowfield/medical/patients) "wwj" = ( @@ -26678,7 +26557,7 @@ req_one_access = list(1,10) }, /obj/machinery/door/blast/regular{ - id = "snowfieldenglockdown" + id = "snowfieldengroomlockdown" }, /turf/simulated/floor/tiled/techfloor, /area/awaymission/snowfield/engineering/monitor_room) @@ -26838,7 +26717,6 @@ d2 = 2; icon_state = "0-2" }, -/mob/living/simple_mob/animal/giant_spider/tunneler/frequent, /turf/simulated/floor/tiled/steel, /area/awaymission/snowfield/security/firingrange) "wSz" = ( @@ -27265,7 +27143,7 @@ /area/awaymission/snowfield/command/gateway) "xbT" = ( /obj/effect/floor_decal/industrial/outline/grey, -/obj/machinery/autolathe/armory, +/obj/structure/table/steel_reinforced, /turf/simulated/floor/tiled/techfloor/grid, /area/awaymission/snowfield/security/heavy_armory) "xcE" = ( @@ -27828,11 +27706,6 @@ }, /turf/simulated/floor/tiled/freezer, /area/awaymission/snowfield/public/cafeteria_restroom) -"xtE" = ( -/obj/effect/spider/stickyweb, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/tiled/freezer, -/area/awaymission/snowfield/engineering/restroom) "xtM" = ( /obj/structure/table/steel_reinforced, /turf/simulated/floor/tiled/techfloor/grid, @@ -38276,7 +38149,7 @@ bvS pZF oWf oWf -cQZ +osG pMX pMX bXH @@ -38533,7 +38406,7 @@ bvf aMQ rff aWv -vCU +sRX rMl pMX pMX @@ -38551,7 +38424,7 @@ sEL nKn sEL sEL -oOl +sEL aBn xIQ txs @@ -38785,14 +38658,14 @@ vDF vDF nyy nyy -oWq +wUo oWf oWf -kIH -lxg +bvS +pZF oWf -rvf -cQZ +oWf +osG xod xod xod @@ -38809,7 +38682,7 @@ hWV aBn bYx eyC -xtE +eyC aBn xIQ txs @@ -39049,7 +38922,7 @@ jXb ybq ybW wWF -vCU +sRX mHh xod vjO @@ -39067,7 +38940,7 @@ pEg aBn iHK eyC -xtE +sEL aBn hoT mZF @@ -39301,14 +39174,14 @@ vDF vDF nyy nyy -oWq -uRb +wUo +oWf oWf jDy pZF oWf -mKv -cQZ +oWf +osG xod afc qrK @@ -39582,7 +39455,7 @@ aBn cip ilY eyC -xtE +eyC eyC aBn kYw @@ -39841,7 +39714,7 @@ aIt sEL eyC eyC -xtE +eyC aBn lcA xIh @@ -40097,8 +39970,8 @@ uUw aBn aIt sEL -xtE -xtE +eyC +eyC eyC aBn ozF @@ -40354,8 +40227,8 @@ vMb oUE aBn vtt -uPI -oOl +nKn +sEL qJL ndW aBn @@ -40609,7 +40482,7 @@ qfq sHz xod pHG -uUw +fNR aBn aBn aBn @@ -41130,7 +41003,7 @@ mui oUE oUE oUE -mui +rvf oUE gRj pHG @@ -41895,10 +41768,10 @@ emW tQD jdk emW -rim +fGG slI fuU -hqb +oOl uYG meN rXj @@ -42152,7 +42025,7 @@ tNE uaB fuU fuU -uaB +lxg fuU fuU auz @@ -42664,14 +42537,14 @@ vUR oCc cJn uYG -rim +fGG emW kWO haJ emW lap bZx -fuU +mWF xzW uYG tkr @@ -42916,15 +42789,15 @@ iVZ xIO xXJ iDx -tWH +nBM aOC vUR vHw cIk uYG -emW +kIH uKp -emW +kIH emW uaB fuU @@ -43187,7 +43060,7 @@ rim emW rim rim -fuU +ngO veE uYG qxt @@ -43699,7 +43572,7 @@ uYG rim uKp fhb -rim +fGG fuU rim jdk @@ -43945,7 +43818,7 @@ vDF vUR vUR plr -ngO +xYW xYW tqN nBM @@ -43960,7 +43833,7 @@ fhb fhb cri rim -jdk +mKv uPg haJ uYG @@ -44202,7 +44075,7 @@ vDF vDF vUR vUR -tqN +cQZ dgL dgL tqN @@ -46830,7 +46703,7 @@ jSi eYO jSi jSi -uOQ +oAu ohs bZn bZn @@ -47333,7 +47206,7 @@ gHQ iiz vNa veK -mTL +tWH tSF inM fwr @@ -47870,7 +47743,7 @@ tvg aaw xDT aBy -fpL +xPZ nBr oGm pgb @@ -48077,7 +47950,7 @@ vDF vDF pgd pgd -qjp +hzb jKy xYD jKy @@ -48090,7 +47963,7 @@ hMq hMq hVe rZS -fGG +hVe qID qyT gbn @@ -48131,7 +48004,7 @@ aBy aBy rSH gWC -cCl +rSH bZn bZn bZn @@ -48335,10 +48208,10 @@ vDF vDF pgd pgd -mWF +iNT kCk ePu -oxs +jKy uxq bcr kFL @@ -48370,7 +48243,7 @@ uOb qqQ fwr aip -cnp +uOQ vII hMO qmj @@ -48642,7 +48515,7 @@ aKI iUn raJ mmT -puf +cwI mJi mJi mJi @@ -49120,11 +48993,11 @@ owy hMq hMq uiq -fGG +hVe rZS cdN qID -qyT +oWq fLg fLg fLg @@ -49419,7 +49292,7 @@ uDJ cTE eUs tlT -jtT +cTE uqf faB uDJ @@ -49643,7 +49516,7 @@ qID ahK xav sOl -fLg +qjp sOl oIi qID @@ -49678,7 +49551,7 @@ xBH shT cTE cRx -whO +tlT cRx gYN ocr @@ -50459,7 +50332,7 @@ ocr cQM bNc jje -aiA +rIV fMy ocr ocr @@ -50962,7 +50835,7 @@ byc aMr mFz mFz -owE +mFz rIV rIV mfc @@ -51228,7 +51101,7 @@ mFz fcB dFg mFz -fnn +mFz ocr ocr ocr diff --git a/maps/southern_cross/submaps/gateway/snowfield_ch.dm b/maps/southern_cross/submaps/gateway/snowfield_ch.dm index 62277ac203..0f625c3fe8 100644 --- a/maps/southern_cross/submaps/gateway/snowfield_ch.dm +++ b/maps/southern_cross/submaps/gateway/snowfield_ch.dm @@ -581,6 +581,17 @@ Punching bag, now.
    (00:59) Gosh, their screams are worser than my grandma. Who would know an overgrown lizard \ would sound like that..
    (01:07) Best to finish up, now. We can get more informations from'em. Yemelyan Fedoro, out." +/obj/item/weapon/paper/awaygate/snowfield/final_note + name = "Final note" + info = "Gosh. We have opened up the hell's gate...
    Everyone is screaming and yelling into mid-air like a mania, \ + and this... Whispering voice!
    It's in my head!

    Peoples who managed to escape after the initial lockdown \ + are now trying their damnnest to break back INSIDE the base!

    I tried my best to ignore the voice and cornered \ + in this security outpost, but I'm not sure how long I will maintain sane, unlike those peoples out there...\ + The voice is now yelling, SCREAMING at me as the time passes by!

    I can't take this anymore longer, \ + it is madness... Pure madness...
    I blew up the fastest way to the command center, so these maniacs won't be able to \ + get to the command center, where the voice is echoing... But they have guns now...
    I'm not sure how long the blockade \ + will last with that much firepower and manpower... And their pure will of madness...

    I don't want to be one of them..." + /obj/item/weapon/paper/awaygate/snowfield/note // Little easter egg for appreciation. desc = "A gift card with a heart on the cover. Hey, there's a scribble on its back..." name = "letter" diff --git a/maps/submaps/surface_submaps/valley/carriershuttle.dmm b/maps/submaps/surface_submaps/valley/carriershuttle.dmm index 76280a5c8b..769f687165 100644 --- a/maps/submaps/surface_submaps/valley/carriershuttle.dmm +++ b/maps/submaps/surface_submaps/valley/carriershuttle.dmm @@ -349,11 +349,6 @@ /obj/effect/floor_decal/corner/lightorange/diagonal, /turf/simulated/shuttle/floor/yellow, /area/submap/carriershuttle) -"zY" = ( -/mob/living/simple_mob/humanoid/merc/melee/sword/space, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/shuttle/floor/darkred, -/area/submap/carriershuttle) "As" = ( /mob/living/simple_mob/humanoid/merc/ranged/sniper, /obj/effect/floor_decal/corner/lime/diagonal, @@ -1157,9 +1152,9 @@ mM mM Qm BN -eT VX -eT +VX +VX BN Qm mM @@ -1183,9 +1178,9 @@ mM mM Qm BN -eT VX -eT +VX +VX BN Qm mM @@ -1279,12 +1274,12 @@ mM Qm CR QQ -zY QQ QQ QQ QQ -zY +QQ +QQ QQ QQ CR diff --git a/maps/submaps/surface_submaps/valley/clockwork.dmm b/maps/submaps/surface_submaps/valley/clockwork.dmm index 68ee0980c3..e7480f5c22 100644 --- a/maps/submaps/surface_submaps/valley/clockwork.dmm +++ b/maps/submaps/surface_submaps/valley/clockwork.dmm @@ -1,7 +1,11 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /obj/structure/catwalk, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "b" = ( /obj/structure/cliff/automatic{ @@ -11,7 +15,11 @@ /area/submap/clockwork) "d" = ( /obj/effect/decal/cleanable/ash, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "h" = ( /obj/structure/cliff/automatic{ @@ -30,7 +38,11 @@ /obj/structure/railing{ dir = 4 }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "n" = ( /obj/structure/cliff/automatic{ @@ -46,7 +58,11 @@ dir = 8; icon_state = "railing0" }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "p" = ( /obj/effect/landmark/loot_spawn/low, @@ -58,6 +74,13 @@ }, /turf/simulated/floor/outdoors/rocks/caves, /area/submap/clockwork) +"r" = ( +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, +/area/submap/clockwork) "t" = ( /obj/structure/cliff/automatic, /obj/structure/railing{ @@ -80,7 +103,11 @@ /area/submap/clockwork) "y" = ( /obj/structure/railing, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "z" = ( /turf/simulated/floor/outdoors/rocks/caves, @@ -123,7 +150,11 @@ /obj/structure/railing{ dir = 1 }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "H" = ( /obj/structure/cliff/automatic, @@ -180,7 +211,11 @@ /obj/structure/railing{ dir = 4 }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "U" = ( /obj/structure/cliff/automatic{ @@ -193,11 +228,19 @@ dir = 4; icon_state = "railing0" }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "W" = ( /mob/living/simple_mob/mechanical/mining_drone, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) "Z" = ( /obj/structure/railing{ @@ -206,7 +249,11 @@ /obj/structure/railing{ dir = 4 }, -/turf/simulated/floor/lava, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/clockwork) (1,1,1) = {" @@ -290,19 +337,19 @@ z z b J -M +r y a G -M -M -M -M -M +r +r +r +r +r y a G -M +r q I z @@ -314,16 +361,16 @@ F z b J -M +r W y a G -M -M -M -M -M +r +r +r +r +r y a G @@ -338,23 +385,23 @@ F F z C -M -M -M +r +r +r y a G -M -M -M -M -M +r +r +r +r +r y a G -M -M -M +r +r +r h z F @@ -369,11 +416,11 @@ V z z z -M -M -M -M -M +r +r +r +r +r z z z @@ -394,11 +441,11 @@ a z z z -M -M +r +r W -M -M +r +r z z z @@ -419,11 +466,11 @@ o z z z -M -M -M -M -M +r +r +r +r +r z z z @@ -438,23 +485,23 @@ F F z C -M -M -M +r +r +r y a G -M -M -M -M -M +r +r +r +r +r y a G -M -M -M +r +r +r h z F @@ -463,23 +510,23 @@ F F z C -M -M -M +r +r +r y a G -M +r z z z -M +r y a G -M -M -M +r +r +r h z F @@ -488,23 +535,23 @@ F F z C -M +r W -M +r y a G -M +r S k S -M +r y a G -M +r W -M +r h z F @@ -513,23 +560,23 @@ F F z C -M -M -M +r +r +r y a G -M +r z z z -M +r y a G -M -M -M +r +r +r h z F @@ -538,23 +585,23 @@ F F z C -M -M -M +r +r +r y a G -M +r y a G -M +r y a G -M -M -M +r +r +r h z F @@ -563,9 +610,9 @@ F F z C -M -M -M +r +r +r z z z @@ -577,9 +624,9 @@ T z z z -M -M -M +r +r +r h z F @@ -588,23 +635,23 @@ F F z C -M -M -M +r +r +r z z z a d -M +r d a z z z -M -M -M +r +r +r h z F @@ -613,9 +660,9 @@ F F z C -M -M -M +r +r +r z z z @@ -627,9 +674,9 @@ o z z z -M -M -M +r +r +r h z F @@ -638,23 +685,23 @@ F F z C -M -M -M -M -M -M -M -M -M -M -M -M -M -M -M -M -M +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r h z F @@ -664,21 +711,21 @@ F z R N -M -M -M -M -M -M -M +r +r +r +r +r +r +r W -M -M -M -M -M -M -M +r +r +r +r +r +r +r u K z @@ -690,19 +737,19 @@ z z R N -M -M -M -M -M -M -M -M -M -M -M -M -M +r +r +r +r +r +r +r +r +r +r +r +r +r u K z diff --git a/maps/submaps/surface_submaps/valley/cove.dmm b/maps/submaps/surface_submaps/valley/cove.dmm index b6cff9c32d..58bf4478eb 100644 --- a/maps/submaps/surface_submaps/valley/cove.dmm +++ b/maps/submaps/surface_submaps/valley/cove.dmm @@ -30,11 +30,11 @@ /obj/structure/railing{ dir = 8 }, -/turf/simulated/floor/wood, -/area/submap/cove) -"ds" = ( -/mob/living/simple_mob/humanoid/pirate/ranged/handcannon/armored, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "eO" = ( /obj/structure/table/rack, @@ -87,7 +87,11 @@ /area/submap/cove) "mh" = ( /obj/random/mob/merc/all, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "nt" = ( /obj/structure/table/bench/wooden, @@ -119,7 +123,11 @@ /area/submap/cove) "oM" = ( /obj/machinery/teleport/hub, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "ps" = ( /obj/structure/closet/crate/secure/loot, @@ -227,7 +235,11 @@ /area/submap/cove) "ED" = ( /mob/living/simple_mob/humanoid/pirate/shield/machete/armored, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "Gb" = ( /turf/simulated/floor/wood, @@ -259,8 +271,11 @@ /turf/simulated/floor/wood, /area/submap/cove) "IP" = ( -/mob/living/simple_mob/humanoid/pirate/mate/ranged/shotgun, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "Kk" = ( /mob/living/simple_mob/humanoid/pirate/las/armored, @@ -309,7 +324,11 @@ /obj/structure/railing{ dir = 8 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "RE" = ( /obj/structure/table/sifwooden_reinforced, @@ -338,7 +357,11 @@ /obj/structure/railing{ dir = 4 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "Wu" = ( /mob/living/simple_mob/humanoid/pirate/ranged/shotgun/armored, @@ -359,7 +382,11 @@ /obj/structure/railing{ dir = 1 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) "XJ" = ( /obj/structure/bed/double/padded, @@ -376,7 +403,11 @@ /obj/structure/railing{ dir = 4 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/cove) (1,1,1) = {" @@ -595,8 +626,8 @@ Tm lk Ox TN -ds -IP +Gb +Gb Ox Gb lk @@ -640,9 +671,9 @@ RT fq fq fq -Gb -Gb -Gb +IP +IP +IP fq fq fq @@ -672,9 +703,9 @@ RT fq fq fq -Gb +IP oM -Gb +IP fq fq fq @@ -704,9 +735,9 @@ RT fq fq fq -Gb -Gb -Gb +IP +IP +IP fq fq fq @@ -736,20 +767,20 @@ RT fq fq fq -Gb -Gb -Gb +IP +IP +IP mh mh -Gb -Gb -Gb +IP +IP +IP ED Wu qI qI Xl -Gb +IP lk Gb wO @@ -768,20 +799,20 @@ RT fq fq fq -Gb -Gb -Gb -Gb +IP +IP +IP +IP mh mh -Gb -Gb -Gb +IP +IP +IP qI nN qI -Gb -Gb +IP +IP sl Gb MQ @@ -800,20 +831,20 @@ RT fq fq fq -Gb -Gb -Gb +IP +IP +IP mh mh -Gb -Gb -Gb +IP +IP +IP ED Wu qI qI Xl -Gb +IP lk uM Hb @@ -832,9 +863,9 @@ RT RT uf fq -Gb -Gb -Gb +IP +IP +IP fq fq fq @@ -864,9 +895,9 @@ RT RT fq fq -Gb +IP oM -Gb +IP fq fq fq @@ -896,9 +927,9 @@ RT RT fq fq -Gb -Gb -Gb +IP +IP +IP fq fq fq diff --git a/maps/submaps/surface_submaps/valley/dronelord.dmm b/maps/submaps/surface_submaps/valley/dronelord.dmm index 70b48d8f58..a2fa6e71d9 100644 --- a/maps/submaps/surface_submaps/valley/dronelord.dmm +++ b/maps/submaps/surface_submaps/valley/dronelord.dmm @@ -193,12 +193,6 @@ "yh" = ( /turf/simulated/wall/durasteel, /area/submap/dronelord) -"yD" = ( -/mob/living/simple_mob/mechanical/mining_drone{ - faction = "syndicate" - }, -/turf/simulated/mineral/floor/ignore_mapgen/sif, -/area/submap/dronelord) "zi" = ( /obj/machinery/porta_turret/poi{ faction = "syndicate" @@ -418,13 +412,13 @@ RV RV tK tK -yD tK tK tK tK tK -yD +tK +tK tK tK RV @@ -498,7 +492,7 @@ RV (7,1,1) = {" RV tK -yD +tK tK tK aj @@ -512,7 +506,7 @@ aj aj tK tK -yD +tK tK RV "} @@ -624,7 +618,7 @@ RV (13,1,1) = {" RV tK -yD +tK tK tK aj @@ -638,7 +632,7 @@ dq aj tK tK -yD +tK tK RV "} @@ -750,7 +744,7 @@ RV (19,1,1) = {" RV tK -yD +tK tK tK aj @@ -764,7 +758,7 @@ aj aj tK tK -yD +tK tK RV "} @@ -876,7 +870,7 @@ RV (25,1,1) = {" RV tK -yD +tK tK tK TX @@ -890,7 +884,7 @@ TX TX tK tK -yD +tK tK RV "} @@ -964,13 +958,13 @@ RV tK tK tK -yD tK tK tK tK tK -yD +tK +tK tK tK tK diff --git a/maps/submaps/surface_submaps/valley/eclipseaqua.dmm b/maps/submaps/surface_submaps/valley/eclipseaqua.dmm index 05c65fd1cf..70edccdc54 100644 --- a/maps/submaps/surface_submaps/valley/eclipseaqua.dmm +++ b/maps/submaps/surface_submaps/valley/eclipseaqua.dmm @@ -23,6 +23,7 @@ /obj/structure/table/rack, /obj/item/weapon/rig/combat/equipped, /obj/item/rig_module/vision/nvg, +/obj/random/energy/highend, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "cC" = ( @@ -88,11 +89,9 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "jR" = ( -/obj/structure/table/steel, -/obj/random/maintenance/research, -/obj/random/maintenance/research, -/obj/random/maintenance/security, /obj/machinery/light, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/bluedouble, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "kd" = ( @@ -257,6 +256,7 @@ /obj/structure/table/rack, /obj/random/rigsuit, /obj/item/rig_module/mounted/egun, +/obj/random/energy/highend, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "Dw" = ( @@ -286,6 +286,7 @@ /obj/structure/table/rack, /obj/random/rigsuit, /obj/item/rig_module/chem_dispenser/combat, +/obj/random/energy/highend, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "EE" = ( @@ -332,7 +333,8 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "JQ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/bluedouble, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "Kh" = ( @@ -445,6 +447,7 @@ /obj/structure/table/rack, /obj/item/weapon/rig/breacher, /obj/item/rig_module/pat_module, +/obj/random/energy/highend, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) "UF" = ( @@ -508,6 +511,11 @@ /obj/random/gun/random, /turf/simulated/floor/tiled/dark, /area/submap/eclipseaqua) +"WG" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/iandouble, +/turf/simulated/floor/tiled/dark, +/area/submap/eclipseaqua) "WS" = ( /obj/structure/grille, /obj/structure/window/reinforced{ @@ -1411,7 +1419,7 @@ Qu Ry Ry Ry -rR +Ry Qc Qu Ry @@ -1419,7 +1427,7 @@ jw Ry ob Ry -gH +Ry Vg Vg Ry @@ -1750,8 +1758,8 @@ Qu Qu Ry jw -Ry -yn +JQ +KH Qu Vn Xm @@ -1794,11 +1802,11 @@ Ry sX Ry Qu -yn +WG +Ry +Ry +Ry JQ -Ry -Ry -KH Qu Ry Ry @@ -1832,7 +1840,7 @@ Ry gA ob Ry -JQ +Ry Ry Ej US @@ -1843,7 +1851,7 @@ Qu Qu IS Ry -Ry +gH Ry Ry ob @@ -1879,7 +1887,7 @@ Ry US Qu Oi -Ry +rR iy Zm Cv @@ -1891,7 +1899,7 @@ ob Ry Ry Ry -Ho +Ry jR Qu nf @@ -1929,13 +1937,13 @@ pq Kh eb Ry -Yt +Ry Qu Pf gR Pf Qu -yn +JQ KH Ry yn diff --git a/maps/submaps/surface_submaps/valley/eclipsedigsight.dmm b/maps/submaps/surface_submaps/valley/eclipsedigsight.dmm index a1e6d70994..52eea15506 100644 --- a/maps/submaps/surface_submaps/valley/eclipsedigsight.dmm +++ b/maps/submaps/surface_submaps/valley/eclipsedigsight.dmm @@ -6,8 +6,12 @@ /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "bl" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/radiation, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/floor_decal/corner/grey/diagonal, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/orangedouble, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "cm" = ( @@ -74,8 +78,14 @@ /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "gZ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/outdoors/dirt, +/obj/effect/floor_decal/corner/purple/diagonal, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/anodevice, +/obj/item/weapon/melee/baton/loaded, +/turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "hU" = ( /turf/template_noop, @@ -91,13 +101,16 @@ /area/submap/eclipsedigsight) "lk" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, /obj/machinery/light, +/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "ly" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/pummler, +/obj/machinery/cell_charger, +/obj/item/weapon/melee/baton/loaded, +/obj/item/device/geiger, +/obj/structure/table/reinforced, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "lF" = ( @@ -209,26 +222,16 @@ /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "vY" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/obj/structure/table/reinforced, -/obj/item/weapon/archaeological_find, -/obj/item/weapon/archaeological_find, -/obj/random/tool/alien, -/obj/machinery/light, +/obj/effect/floor_decal/corner/grey/diagonal, +/mob/living/simple_mob/humanoid/eclipse/solar/radiation, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "wd" = ( -/obj/structure/grille/cult{ - name = "Alien grille" - }, -/obj/structure/window/titanium/full, -/obj/structure/window/phoronreinforced{ - dir = 8 - }, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/obj/structure/window/phoronreinforced, +/obj/effect/floor_decal/corner/grey/diagonal, +/obj/structure/table/reinforced, +/obj/random/maintenance/foodstuff, +/obj/random/maintenance/foodstuff, +/obj/item/weapon/archaeological_find, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "wm" = ( @@ -243,12 +246,14 @@ /area/submap/eclipsedigsight) "wH" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/guardian, +/obj/structure/table/reinforced, +/obj/item/weapon/anodevice, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "xF" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/hellhound, +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/monkeycubes, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "zN" = ( @@ -259,7 +264,10 @@ /area/submap/eclipsedigsight) "AK" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/weapon/melee/baton/loaded, +/obj/item/device/geiger, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "CL" = ( @@ -267,12 +275,18 @@ /area/submap/eclipsedigsight) "CQ" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, +/obj/item/weapon/anodevice, +/obj/machinery/cell_charger, +/obj/item/weapon/melee/baton/loaded, +/obj/structure/table/reinforced, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Dp" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/wheel, -/turf/simulated/floor/outdoors/dirt, +/obj/effect/floor_decal/corner/purple/diagonal, +/obj/item/weapon/anodevice, +/obj/item/weapon/storage/box/monkeycubes, +/obj/structure/table/reinforced, +/turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Dq" = ( /obj/structure/cliff/automatic/corner{ @@ -290,33 +304,13 @@ }, /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) -"DX" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/tiled/monotile, -/area/submap/eclipsedigsight) "EM" = ( /obj/machinery/power/smes/buildable/point_of_interest, /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "EY" = ( -/obj/structure/grille/cult{ - name = "Alien grille" - }, -/obj/structure/window/titanium/full, -/obj/structure/window/phoronreinforced{ - dir = 8 - }, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/obj/structure/window/phoronreinforced{ - dir = 4 - }, -/obj/structure/window/phoronreinforced, +/obj/effect/floor_decal/corner/grey/diagonal, +/mob/living/simple_mob/humanoid/eclipse/solar/guardian, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Fc" = ( @@ -337,17 +331,9 @@ /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "FS" = ( -/obj/structure/grille/cult{ - name = "Alien grille" - }, -/obj/structure/window/titanium/full, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/obj/structure/window/phoronreinforced{ - dir = 4 - }, -/obj/structure/window/phoronreinforced, +/obj/effect/floor_decal/corner/grey/diagonal, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/orangedouble, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Gg" = ( @@ -367,12 +353,8 @@ /turf/simulated/floor/outdoors/dirt, /area/submap/eclipsedigsight) "Is" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/monotile, +/mob/living/simple_mob/humanoid/eclipse/solar/hellhound, +/turf/simulated/floor/outdoors/dirt, /area/submap/eclipsedigsight) "IA" = ( /obj/effect/floor_decal/corner/purple/diagonal, @@ -417,8 +399,11 @@ }, /area/submap/eclipsedigsight) "KQ" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/outdoors/dirt, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/floor_decal/corner/purple/diagonal, +/turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Le" = ( /obj/effect/floor_decal/borderfloorblack{ @@ -451,11 +436,6 @@ /obj/machinery/door/window/southright, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) -"NH" = ( -/obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/turf/simulated/floor/tiled/monotile, -/area/submap/eclipsedigsight) "NS" = ( /obj/effect/floor_decal/corner/purple/diagonal, /mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, @@ -468,6 +448,7 @@ /area/submap/eclipsedigsight) "ON" = ( /obj/machinery/light, +/mob/living/simple_mob/humanoid/eclipse/lunar/pummler, /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "Pb" = ( @@ -539,9 +520,7 @@ /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "TE" = ( -/obj/machinery/door/window/southright{ - dir = 8 - }, +/obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "TO" = ( @@ -549,29 +528,19 @@ /mob/living/simple_mob/humanoid/eclipse/lunar/shotgunner, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) -"Un" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/turf/simulated/floor/outdoors/dirt, -/area/submap/eclipsedigsight) "UD" = ( -/obj/structure/grille/cult{ - name = "Alien grille" - }, -/obj/structure/window/titanium/full, -/obj/structure/window/phoronreinforced{ +/obj/machinery/light{ dir = 8 }, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/obj/structure/window/phoronreinforced{ - dir = 4 - }, +/obj/effect/floor_decal/corner/grey/diagonal, +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/orangedouble, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "UV" = ( /obj/effect/floor_decal/corner/purple/diagonal, -/mob/living/simple_mob/humanoid/eclipse/lunar/ravanger, +/obj/item/weapon/storage/box/monkeycubes, +/obj/structure/table/reinforced, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Vh" = ( @@ -587,10 +556,10 @@ /turf/simulated/floor/reinforced, /area/submap/eclipsedigsight) "VA" = ( -/obj/effect/floor_decal/corner/purple/diagonal, /obj/machinery/light{ dir = 1 }, +/obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "VS" = ( @@ -605,8 +574,14 @@ /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "WX" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/outdoors/dirt, +/obj/effect/floor_decal/corner/purple/diagonal, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/weapon/anodevice, +/obj/item/weapon/melee/baton/loaded, +/turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "Xx" = ( /obj/structure/cliff/automatic/corner{ @@ -618,19 +593,9 @@ temperature = 243.15 }, /area/submap/eclipsedigsight) -"XC" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/firemoff, -/turf/simulated/floor/outdoors/dirt, -/area/submap/eclipsedigsight) "Ys" = ( -/obj/structure/grille/cult{ - name = "Alien grille" - }, -/obj/structure/window/titanium/full, -/obj/structure/window/phoronreinforced{ - dir = 1 - }, -/obj/structure/window/phoronreinforced, +/obj/effect/floor_decal/corner/grey/diagonal, +/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, /turf/simulated/floor/tiled/monotile, /area/submap/eclipsedigsight) "YH" = ( @@ -960,32 +925,32 @@ pW pW pW mm -sH -Th -sH -sH -sH -Th -sH +FS +UD +FS +FS +FS +UD +FS mm pW -XC pW pW pW -PW +pW +pW mm Oy sH -DX -sH -sH -TO -JB -sE +Th Zv IA sE +JB +Dp +CQ +ly +UV mm pW fF @@ -1002,18 +967,18 @@ pW pW pW es -sH -wH -sH -TO -sH -sH -sH +TE +TE +TE +Ys +TE +TE +TE mm pW pW pW -pW +PW pW pW es @@ -1022,9 +987,9 @@ sH sH sH sH -sH +ZT fa -cB +KQ sH sH ZT @@ -1044,29 +1009,29 @@ pW pW pW mm -sH -sH -CQ -sb -sH -sH -sH +TE +wd +wd +wd +wd +wd +TE mm pW pW pW -Dp +pW pW pW es sH sH sH -sH -sH -sH -Zk sE +cB +sE +Zk +sH sH sH sH @@ -1086,27 +1051,27 @@ pW pW pW mm -sH -AK +TE +TE vY -CL +TE EY TE -UD +TE mm pW pW pW -pW +Is pW pW mm Wc sH -Is +sb +sH sH sH -wH MR sH sH @@ -1124,24 +1089,24 @@ hU JD pW pW -WX +pW pW pW mm -sH -sH -sE +TE wd -nQ -jv -rn +wd +wd +wd +wd +TE mm pW -gZ pW pW pW -Un +pW +pW mm mm mm @@ -1171,12 +1136,12 @@ pW pW mm VA -sH -sE +TE +TE Ys -zN -gt -ed +TE +TE +TE mm pW pW @@ -1193,8 +1158,8 @@ pW pW pW mm -ly -xF +NS +sH lk mm pW @@ -1212,13 +1177,13 @@ pW pW pW mm -sH -sb -Zv FS -Pb -Le -Ro +bl +FS +FS +FS +bl +FS mm pW pW @@ -1307,10 +1272,10 @@ pW pW pW mm -sH -Th -sH -sH +wH +WX +AK +xF mm pW pW @@ -1349,14 +1314,14 @@ pW pW pW mm -rk sH -NS +sH +sH sH es pW pW -XC +pW pW pW pW @@ -1476,7 +1441,7 @@ jv rn Pv sH -sH +TO sH IA mm @@ -1517,8 +1482,8 @@ zN gt ed DN -bl -TO +sH +sH sH Mk mm @@ -1527,7 +1492,7 @@ pW pW pW pW -gZ +pW pW pW pW @@ -1560,7 +1525,7 @@ Le Ro Zo sH -sH +rk sH Zv mm @@ -1651,7 +1616,7 @@ mm pW pW pW -KQ +pW pW pW cm @@ -1685,9 +1650,9 @@ pW pW pW mm -UV sH -NH +sH +sH sH es pW @@ -1727,13 +1692,13 @@ pW pW pW mm -sH -sb -sH -sH +wH +gZ +AK +xF mm pW -PW +pW pW pW pW diff --git a/maps/submaps/surface_submaps/valley/eclipselava.dmm b/maps/submaps/surface_submaps/valley/eclipselava.dmm index 53ef755e8d..d70b1ab976 100644 --- a/maps/submaps/surface_submaps/valley/eclipselava.dmm +++ b/maps/submaps/surface_submaps/valley/eclipselava.dmm @@ -60,9 +60,14 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "df" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/obj/item/weapon/stool/padded, -/turf/simulated/floor/tiled/dark, +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/eclipselava) "dj" = ( /obj/structure/cable/green{ @@ -386,15 +391,32 @@ }, /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) +"pT" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 8 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, +/area/submap/eclipselava) "pX" = ( /obj/structure/bed/double/padded, /obj/item/weapon/bedsheet/orangedouble, /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "qb" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/obj/item/weapon/stool/padded, -/turf/simulated/floor/tiled/dark, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/eclipselava) "qq" = ( /obj/item/weapon/stool/padded, @@ -482,11 +504,16 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "vO" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/tiled/dark{ - temperature = 243.15; +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; oxygen = 20.7263; - nitrogen = 93.7835 + temperature = 243.15 }, /area/submap/eclipselava) "vR" = ( @@ -784,11 +811,16 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "EH" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/turf/simulated/floor/tiled/dark{ - temperature = 243.15; +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; oxygen = 20.7263; - nitrogen = 93.7835 + temperature = 243.15 }, /area/submap/eclipselava) "EW" = ( @@ -862,9 +894,14 @@ }, /area/submap/eclipselava) "Hp" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/obj/item/weapon/stool/padded, -/turf/simulated/floor/tiled/dark, +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/eclipselava) "HZ" = ( /obj/structure/railing/grey{ @@ -911,13 +948,14 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "Jr" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/radiation, -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/structure/railing{ + dir = 8 + }, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 }, -/turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "Js" = ( /obj/item/weapon/material/barbedwire{ @@ -940,8 +978,15 @@ /turf/simulated/floor/tiled/dark, /area/submap/eclipselava) "JJ" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/wheel, -/turf/simulated/floor/tiled/dark, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing, +/turf/simulated/floor/lava{ + nitrogen = 93.7835; + oxygen = 20.7263; + temperature = 243.15 + }, /area/submap/eclipselava) "Ke" = ( /turf/simulated/floor/lava, @@ -1019,6 +1064,9 @@ "Ov" = ( /obj/structure/table/rack, /obj/item/weapon/cell/slime, +/obj/item/weapon/cell/slime, +/obj/item/weapon/cell/slime, +/obj/item/weapon/cell/slime, /turf/simulated/floor/reinforced/carbon_dioxide{ carbon_dioxide = 100 }, @@ -1457,21 +1505,21 @@ Bm Bm Bm Bm -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS +EH +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +Jr +JJ Qh Qh Qh @@ -1508,6 +1556,7 @@ Bm Bm Bm Bm +df ZS ZS ZS @@ -1523,8 +1572,7 @@ ZS ZS ZS ZS -ZS -ZS +pT Qh Qh jU @@ -1559,6 +1607,7 @@ Bm Bm Bm Bm +df ZS ZS ZS @@ -1576,8 +1625,7 @@ ZS ZS ZS ZS -ZS -ZS +pT Qh jU bp @@ -1610,6 +1658,7 @@ Bm (6,1,1) = {" Bm Bm +df ZS ZS ZS @@ -1629,8 +1678,7 @@ ZS ZS ZS ZS -ZS -ZS +Jr jU bp Rz @@ -1662,7 +1710,7 @@ Bm (7,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1714,7 +1762,7 @@ Bm (8,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1766,7 +1814,7 @@ Bm (9,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1818,7 +1866,7 @@ Bm (10,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1854,7 +1902,7 @@ MO MO MO MO -JJ +MO MO bp Qh @@ -1870,7 +1918,7 @@ Bm (11,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1922,7 +1970,7 @@ Bm (12,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -1974,7 +2022,7 @@ Bm (13,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2010,7 +2058,7 @@ Pm MO bp hm -vO +hm as hm hm @@ -2026,7 +2074,7 @@ Bm (14,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2054,7 +2102,7 @@ gt at LV Vg -df +qq MO bp MO @@ -2078,7 +2126,7 @@ Bm (15,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2130,7 +2178,7 @@ Bm (16,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2154,7 +2202,7 @@ ZS Ad bp MO -qb +qq RA LV vN @@ -2182,7 +2230,7 @@ Bm (17,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2234,7 +2282,7 @@ Bm (18,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2286,7 +2334,7 @@ Bm (19,1,1) = {" Bm Bm -ZS +df ZS ZS Ke @@ -2338,7 +2386,7 @@ Bm (20,1,1) = {" Bm Bm -ZS +df ZS ZS Ke @@ -2390,7 +2438,7 @@ Bm (21,1,1) = {" Bm Bm -ZS +df ZS ZS Ke @@ -2442,7 +2490,7 @@ Bm (22,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2494,7 +2542,7 @@ Bm (23,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2546,7 +2594,7 @@ Bm (24,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2598,7 +2646,7 @@ Bm (25,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2650,7 +2698,7 @@ Bm (26,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2702,7 +2750,7 @@ Bm (27,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2754,7 +2802,7 @@ Bm (28,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2806,7 +2854,7 @@ Bm (29,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2858,7 +2906,7 @@ Bm (30,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2910,7 +2958,7 @@ Bm (31,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -2962,7 +3010,7 @@ Bm (32,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3014,7 +3062,7 @@ Bm (33,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3066,7 +3114,7 @@ Bm (34,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3118,7 +3166,7 @@ Bm (35,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3170,7 +3218,7 @@ Bm (36,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3222,7 +3270,7 @@ Bm (37,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3255,7 +3303,7 @@ XX RA qq RA -Hp +qq MO wA hm @@ -3274,7 +3322,7 @@ Bm (38,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3326,7 +3374,7 @@ Bm (39,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3362,7 +3410,7 @@ MO MO MO bp -EH +hm hm zn hm @@ -3378,7 +3426,7 @@ Bm (40,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3430,7 +3478,7 @@ Bm (41,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3482,7 +3530,7 @@ Bm (42,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3511,7 +3559,7 @@ MO MO wA MO -Jr +wU QN QN QN @@ -3534,7 +3582,7 @@ Bm (43,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3586,7 +3634,7 @@ Bm (44,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3638,7 +3686,7 @@ Bm (45,1,1) = {" Bm Bm -ZS +df ZS ZS ZS @@ -3690,6 +3738,7 @@ Bm (46,1,1) = {" Bm Bm +vO ZS ZS ZS @@ -3709,8 +3758,7 @@ ZS ZS ZS ZS -ZS -ZS +Hp jU bp MO @@ -3743,6 +3791,7 @@ Bm Bm Bm Bm +vO ZS ZS ZS @@ -3760,8 +3809,7 @@ ZS ZS ZS ZS -ZS -ZS +qb Qh jU bp @@ -3796,6 +3844,7 @@ Bm Bm Bm Bm +vO ZS ZS ZS @@ -3811,8 +3860,7 @@ ZS ZS ZS ZS -ZS -ZS +qb Qh Qh jU @@ -3849,21 +3897,21 @@ Bm Bm Bm Bm -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS -ZS +vO +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +Hp +qb Qh Qh Qh diff --git a/maps/submaps/surface_submaps/valley/eclipsemountain.dmm b/maps/submaps/surface_submaps/valley/eclipsemountain.dmm index cc277d3806..94ac7c248c 100644 --- a/maps/submaps/surface_submaps/valley/eclipsemountain.dmm +++ b/maps/submaps/surface_submaps/valley/eclipsemountain.dmm @@ -12,7 +12,11 @@ "bY" = ( /obj/structure/table/wooden_reinforced, /obj/random/contraband, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "cW" = ( /obj/structure/grille, @@ -37,7 +41,11 @@ /obj/structure/railing/grey{ dir = 1 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "dJ" = ( /turf/simulated/floor/bluegrid, @@ -75,7 +83,11 @@ /obj/random/tool/alien, /obj/random/contraband, /obj/machinery/light, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "ki" = ( /turf/simulated/floor/tiled/red, @@ -154,9 +166,6 @@ }, /turf/simulated/floor/tiled/steel, /area/submap/eclipsemountain) -"qQ" = ( -/turf/simulated/floor/wood, -/area/submap/eclipsemountain) "rI" = ( /mob/living/simple_mob/humanoid/eclipse/solar/radiation, /turf/simulated/floor/tiled/steel, @@ -176,7 +185,11 @@ dir = 1 }, /mob/living/simple_mob/humanoid/eclipse/solar/snipertesh, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "tQ" = ( /mob/living/simple_mob/humanoid/eclipse/lunar/ravanger, @@ -233,7 +246,11 @@ /obj/structure/railing/grey{ dir = 8 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "xO" = ( /obj/structure/bed/double/padded, @@ -257,7 +274,11 @@ dir = 8 }, /mob/living/simple_mob/humanoid/eclipse/lunar/bulletstorm, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "zZ" = ( /obj/machinery/power/terminal{ @@ -315,10 +336,6 @@ }, /turf/simulated/floor/tiled/red, /area/submap/eclipsemountain) -"EG" = ( -/mob/living/simple_mob/humanoid/eclipse/lunar/silvernoodle, -/turf/simulated/floor/wood, -/area/submap/eclipsemountain) "EZ" = ( /obj/structure/cliff/automatic{ dir = 9 @@ -341,10 +358,6 @@ /obj/structure/cable, /turf/simulated/floor/tiled/steel, /area/submap/eclipsemountain) -"GU" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/guardian, -/turf/simulated/floor/tiled/steel, -/area/submap/eclipsemountain) "HN" = ( /obj/structure/cliff/automatic{ dir = 4 @@ -377,8 +390,11 @@ /turf/simulated/floor/tiled/red, /area/submap/eclipsemountain) "JO" = ( -/mob/living/simple_mob/humanoid/eclipse/solar/teslanoodle, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "Ky" = ( /obj/machinery/door/blast/puzzle{ @@ -488,7 +504,11 @@ "QT" = ( /obj/structure/table/wooden_reinforced, /obj/random/toolbox, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "Rg" = ( /obj/machinery/power/smes/buildable/point_of_interest, @@ -505,14 +525,22 @@ /obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "Tp" = ( /obj/structure/table/wooden_reinforced, /obj/random/contraband, /obj/random/contraband, /obj/random/firstaid, -/turf/simulated/floor/wood, +/turf/simulated/floor/wood{ + oxygen = 20.7263; + nitrogen = 93.7835; + temperature = 243.15 + }, /area/submap/eclipsemountain) "TT" = ( /obj/structure/table/rack, @@ -838,7 +866,7 @@ Cz Cz la Cz -la +Cz la Cz Cz @@ -1258,9 +1286,9 @@ yY MM QT JO -qQ -qQ -qQ +JO +JO +JO MM iU LV @@ -1298,11 +1326,11 @@ Cz Cz yY dt -EG -qQ -qQ -qQ -qQ +JO +JO +JO +JO +JO Tb AR LV @@ -1340,10 +1368,10 @@ Cz Pq UA tI -qQ -qQ -qQ -qQ +JO +JO +JO +JO jt MM iU @@ -1382,10 +1410,10 @@ Cz yY Cz dt -qQ -qQ -qQ -qQ +JO +JO +JO +JO bY MM LV @@ -1424,8 +1452,8 @@ Cz yY Cz MM -qQ -qQ +JO +JO Tc bY Tp @@ -1551,7 +1579,7 @@ yY Cz MM xO -tQ +iU VM vC xO @@ -1637,7 +1665,7 @@ MM xO IQ VM -GU +iU xO Yh MK diff --git a/maps/submaps/surface_submaps/valley/metroidmaze.dmm b/maps/submaps/surface_submaps/valley/metroidmaze.dmm index dd14c211ae..41323d62fb 100644 --- a/maps/submaps/surface_submaps/valley/metroidmaze.dmm +++ b/maps/submaps/surface_submaps/valley/metroidmaze.dmm @@ -71,7 +71,7 @@ D D Z Z -a +p Z Z Z @@ -384,7 +384,7 @@ Z a a a -a +p D "} (12,1,1) = {" @@ -709,7 +709,7 @@ D "} (22,1,1) = {" D -a +p a a a @@ -958,7 +958,7 @@ Z Z Z Z -a +p Z Z D diff --git a/maps/submaps/surface_submaps/valley/mouseattack.dmm b/maps/submaps/surface_submaps/valley/mouseattack.dmm index 49a60e59e8..9d89dac71a 100644 --- a/maps/submaps/surface_submaps/valley/mouseattack.dmm +++ b/maps/submaps/surface_submaps/valley/mouseattack.dmm @@ -115,12 +115,8 @@ /obj/random/maintenance/security, /turf/simulated/floor/tiled/yellow, /area/submap/mouseattack) -"D" = ( -/mob/living/simple_mob/mechanical/mecha/mouse_tank/eraticator/manned, -/turf/simulated/floor/tiled/yellow, -/area/submap/mouseattack) "J" = ( -/mob/living/simple_mob/mechanical/mecha/mouse_tank/livewire/manned, +/mob/living/simple_mob/animal/space/mouse_army/pyro, /turf/simulated/floor/tiled/yellow, /area/submap/mouseattack) "N" = ( @@ -210,7 +206,7 @@ s s s s -q +s s X a @@ -249,7 +245,7 @@ j c c B -c +B c c t @@ -268,12 +264,12 @@ s s s j -J +c c N w c -J +c t b s @@ -292,7 +288,7 @@ s j c c -c +B B c c @@ -342,7 +338,7 @@ s s s s -q +s s X a @@ -430,7 +426,7 @@ s s s s -Y +s s X a @@ -468,8 +464,8 @@ s j c c -c -u +J +J c c t @@ -488,12 +484,12 @@ s s s j -D +c c v o c -D +c t b s @@ -512,8 +508,8 @@ s j c c -c -u +J +J c c t @@ -562,7 +558,7 @@ s s s s -Y +s s X a @@ -650,7 +646,7 @@ s s s s -Y +s s X a @@ -688,7 +684,7 @@ s j c c -c +u u c c @@ -708,12 +704,12 @@ s s s j -J +c c i C c -J +c t b s @@ -732,8 +728,8 @@ s j c c -B -c +u +u c c t @@ -748,7 +744,7 @@ a a z s -l +q s s j @@ -782,7 +778,7 @@ s s s s -q +s s X a diff --git a/maps/submaps/surface_submaps/valley/piratevessel.dmm b/maps/submaps/surface_submaps/valley/piratevessel.dmm index 9f303858f0..4b450d7baf 100644 --- a/maps/submaps/surface_submaps/valley/piratevessel.dmm +++ b/maps/submaps/surface_submaps/valley/piratevessel.dmm @@ -30,11 +30,6 @@ /obj/machinery/portable_atmospherics/canister/empty, /turf/simulated/shuttle/floor/black, /area/submap/piratevessel) -"cO" = ( -/mob/living/simple_mob/humanoid/pirate, -/obj/effect/floor_decal/corner/purple/diagonal, -/turf/simulated/shuttle/floor/yellow, -/area/submap/piratevessel) "dt" = ( /turf/template_noop, /area/template_noop) @@ -508,11 +503,6 @@ /obj/random/contraband, /turf/simulated/shuttle/floor/yellow, /area/submap/piratevessel) -"Io" = ( -/mob/living/simple_mob/humanoid/pirate/machete, -/obj/effect/floor_decal/corner/purple/diagonal, -/turf/simulated/shuttle/floor/yellow, -/area/submap/piratevessel) "Jd" = ( /obj/structure/closet/crate/freezer/nanotrasen, /obj/effect/floor_decal/corner/purple/diagonal, @@ -656,11 +646,6 @@ /obj/structure/janitorialcart, /turf/simulated/shuttle/floor/yellow, /area/submap/piratevessel) -"Rj" = ( -/mob/living/simple_mob/humanoid/pirate/machete, -/obj/effect/floor_decal/corner/green/diagonal, -/turf/simulated/shuttle/floor/yellow, -/area/submap/piratevessel) "RF" = ( /obj/effect/floor_decal/corner/blue/border{ dir = 8 @@ -720,11 +705,6 @@ /obj/random/maintenance/foodstuff, /turf/simulated/shuttle/floor/yellow, /area/submap/piratevessel) -"UN" = ( -/mob/living/simple_mob/humanoid/pirate, -/obj/effect/floor_decal/corner/green/diagonal, -/turf/simulated/shuttle/floor/yellow, -/area/submap/piratevessel) "Vb" = ( /obj/effect/floor_decal/corner/purple/diagonal, /obj/structure/mopbucket, @@ -764,11 +744,6 @@ /obj/effect/floor_decal/corner/green/diagonal, /turf/simulated/shuttle/floor/yellow, /area/submap/piratevessel) -"Xb" = ( -/mob/living/simple_mob/humanoid/pirate/ranged/shotgun, -/obj/effect/floor_decal/corner/red/diagonal, -/turf/simulated/shuttle/floor/yellow, -/area/submap/piratevessel) "Yl" = ( /mob/living/simple_mob/mechanical/mecha/ripley/pirate, /obj/effect/floor_decal/corner/red/diagonal, @@ -1091,7 +1066,7 @@ mq pR Ev Ev -UN +Ev NO mq Hf @@ -1104,7 +1079,7 @@ WG qW mq Wd -cO +Wd tX Wd tI @@ -1194,7 +1169,7 @@ YF qW mq Wd -Io +Wd tX Wd Jd @@ -1211,7 +1186,7 @@ mq JU Nz Ev -Rj +Ev dO mq ZA @@ -1541,7 +1516,7 @@ dt dt mq Tg -Xb +Wy ML mq dt @@ -1554,7 +1529,7 @@ dt dt mq Tg -Xb +Wy ML mq dt diff --git a/maps/submaps/surface_submaps/valley/siegepoint.dmm b/maps/submaps/surface_submaps/valley/siegepoint.dmm index b66fbecc22..b91f083d88 100644 --- a/maps/submaps/surface_submaps/valley/siegepoint.dmm +++ b/maps/submaps/surface_submaps/valley/siegepoint.dmm @@ -17,6 +17,12 @@ /mob/living/simple_mob/mechanical/mecha/ripley/pirate/manned, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"dC" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "fx" = ( /mob/living/simple_mob/humanoid/pirate/ranged/handcannon/armored, /turf/simulated/floor/tiled/techfloor, @@ -40,6 +46,18 @@ "hs" = ( /turf/template_noop, /area/template_noop) +"hN" = ( +/obj/machinery/power/terminal{ + dir = 1; + icon_state = "term" + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "iQ" = ( /mob/living/simple_mob/humanoid/pirate/shield/machete/armored, /obj/random/ammo, @@ -63,6 +81,10 @@ /obj/structure/salvageable/computer, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"kK" = ( +/mob/living/simple_mob/mechanical/mecha/ripley/deathripley/manned, +/turf/simulated/floor/tiled/techfloor, +/area/submap/siegepoint) "lc" = ( /obj/structure/table/steel_reinforced, /obj/item/clothing/suit/armor/pcarrier/blue/sol, @@ -85,6 +107,17 @@ "oW" = ( /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"ps" = ( +/obj/item/stolenpackage, +/obj/structure/table/rack, +/obj/machinery/light/small/emergency/flicker{ + dir = 1 + }, +/obj/item/stack/material/phoron{ + amount = 25 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "pC" = ( /mob/living/simple_mob/humanoid/pirate/shield/machete/armored, /obj/machinery/light/poi{ @@ -143,6 +176,13 @@ }, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"uP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/rack, +/obj/item/stack/material/mhydrogen, +/obj/item/stack/material/mhydrogen, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "vu" = ( /obj/structure/salvageable/server, /turf/simulated/floor/tiled/techfloor, @@ -212,6 +252,15 @@ /obj/item/weapon/gun/projectile/revolver/webley, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"Bz" = ( +/obj/machinery/power/smes/buildable/point_of_interest, +/obj/structure/cable/cyan{ + d2 = 8; + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "BY" = ( /obj/structure/table/steel_reinforced, /obj/item/weapon/gun/projectile/revolver/saa, @@ -239,6 +288,14 @@ }, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"FN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) +"FV" = ( +/turf/template_noop, +/area/submap/siegepoint) "GW" = ( /mob/living/simple_mob/humanoid/merc/ranged{ health = 15; @@ -261,6 +318,12 @@ /mob/living/simple_mob/humanoid/pirate/shield/machete/armored, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"IF" = ( +/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "IW" = ( /obj/structure/table/steel_reinforced, /obj/machinery/recharger, @@ -275,6 +338,20 @@ /obj/random/medical, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"KZ" = ( +/obj/structure/cable/cyan{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "PAPC"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/techfloor/grid, +/area/submap/siegepoint) "Lo" = ( /mob/living/simple_mob/humanoid/pirate/ranged/handcannon/armored, /obj/machinery/light/poi{ @@ -370,6 +447,16 @@ /obj/item/clothing/suit/armor/pcarrier/riot/full, /turf/simulated/floor/tiled/techfloor, /area/submap/siegepoint) +"XH" = ( +/obj/machinery/light/poi{ + dir = 4 + }, +/mob/living/simple_mob/humanoid/merc/ranged{ + health = 15; + maxHealth = 15 + }, +/turf/simulated/floor/tiled/techfloor, +/area/submap/siegepoint) "XZ" = ( /mob/living/simple_mob/humanoid/pirate/mate/ranged/rifle, /turf/simulated/floor/tiled/techfloor, @@ -403,13 +490,13 @@ hs hs hs hs -hs -hs -hs -hs -hs -hs -hs +FV +FV +FV +FV +FV +FV +FV hs hs hs @@ -420,28 +507,28 @@ hs "} (2,1,1) = {" hs -hs +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV xK xK xK xK xK -xK -xK -xK -xK -xK -xK -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +FV hs hs hs @@ -452,7 +539,39 @@ hs "} (3,1,1) = {" hs +FV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +FV +FV +FV +FV +xK +ps +FN +uP +xK +FV +FV +FV +FV +FV +FV +FV hs +"} +(4,1,1) = {" +hs +FV xK Ji Ji @@ -469,22 +588,22 @@ xK xK xK xK -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +KZ +IF +FN +xK +FV +FV +FV +FV +FV +FV +FV hs "} -(4,1,1) = {" -hs +(5,1,1) = {" hs +FV xK jk Rz @@ -501,22 +620,22 @@ Pm Pm yP xK -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Bz +hN +dC +xK +FV +FV +FV +FV +FV +FV +FV hs "} -(5,1,1) = {" -hs +(6,1,1) = {" hs +FV xK Ji oW @@ -534,6 +653,7 @@ xE Pm xK xK +Xi xK xK xK @@ -542,13 +662,12 @@ xK xK xK xK -xK -hs +FV hs "} -(6,1,1) = {" -hs +(7,1,1) = {" hs +FV xK Ji oW @@ -575,12 +694,12 @@ ty oW oW xK -hs +FV hs "} -(7,1,1) = {" -hs +(8,1,1) = {" hs +FV xK wV Io @@ -607,12 +726,12 @@ oW oW oW xK -hs +FV hs "} -(8,1,1) = {" -hs +(9,1,1) = {" hs +FV xK Ji Ji @@ -639,10 +758,10 @@ oW AO oW xK -hs +FV hs "} -(9,1,1) = {" +(10,1,1) = {" hs xK xK @@ -671,10 +790,10 @@ Xi xK xK xK -hs +FV hs "} -(10,1,1) = {" +(11,1,1) = {" hs xK nl @@ -699,14 +818,14 @@ oW xK oW oW -oW +ZG oW AO xK -hs +FV hs "} -(11,1,1) = {" +(12,1,1) = {" hs xK zJ @@ -717,7 +836,7 @@ oW Xi oW ae -oW +ZG oW oW ZG @@ -735,10 +854,10 @@ oW tl oW xK -hs +FV hs "} -(12,1,1) = {" +(13,1,1) = {" hs xK jH @@ -767,10 +886,10 @@ Jv Yc Nv xK -hs +FV hs "} -(13,1,1) = {" +(14,1,1) = {" hs xK sI @@ -799,10 +918,10 @@ oW Ap oW xK -hs +FV hs "} -(14,1,1) = {" +(15,1,1) = {" hs xK zJ @@ -831,10 +950,10 @@ GW oW oW xK -hs +FV hs "} -(15,1,1) = {" +(16,1,1) = {" hs xK zJ @@ -863,10 +982,10 @@ oW QF oW xK -hs +FV hs "} -(16,1,1) = {" +(17,1,1) = {" hs xK QI @@ -877,7 +996,7 @@ zJ xK oW Tg -oW +kK Xi oW lc @@ -895,10 +1014,10 @@ Jv Yc Nv xK -hs +FV hs "} -(17,1,1) = {" +(18,1,1) = {" hs xK cM @@ -927,10 +1046,10 @@ oW Rs oW xK -hs +FV hs "} -(18,1,1) = {" +(19,1,1) = {" hs xK cM @@ -955,14 +1074,14 @@ oW xK oW oW -gR +XH oW AO xK -hs +FV hs "} -(19,1,1) = {" +(20,1,1) = {" hs xK Ey @@ -991,10 +1110,10 @@ xK xK xK xK -hs +FV hs "} -(20,1,1) = {" +(21,1,1) = {" hs xK zJ @@ -1023,10 +1142,10 @@ oW oW oW xK -hs +FV hs "} -(21,1,1) = {" +(22,1,1) = {" hs xK gA @@ -1055,10 +1174,10 @@ oW oW oW Xi -hs +FV hs "} -(22,1,1) = {" +(23,1,1) = {" hs xK gA @@ -1087,10 +1206,10 @@ oW oW oW xK -hs +FV hs "} -(23,1,1) = {" +(24,1,1) = {" hs xK xK @@ -1119,101 +1238,69 @@ Nv xK xK xK -hs -hs -"} -(24,1,1) = {" -hs -hs -hs -xK -oW -oW -oW -oW -Lu -xQ -xD -xQ -xQ -xQ -xQ -xQ -xQ -xD -xQ -xQ -oW -oW -oW -Lu -oW -xK -hs -hs -hs +FV hs "} (25,1,1) = {" hs -hs -hs +FV +FV xK oW oW -ZG -oW -oW -oW -oW -oW -AO -fx -oW -oW -oW -fx -oW -oW -ZG +oW +oW +Lu +xQ +xD +xQ +xQ +xQ +xQ +xQ +xQ +xD +xQ +xQ oW oW oW +Lu oW xK -hs -hs -hs +FV +FV +FV hs "} (26,1,1) = {" hs hs -hs +FV xK oW -AO -Io -oW -oW -oW -oW -oW oW ZG oW oW oW -Lu oW oW -Io +AO +fx +oW +oW +oW +fx +oW +oW +ZG oW oW oW oW xK -hs +FV hs hs hs @@ -1221,7 +1308,39 @@ hs (27,1,1) = {" hs hs +FV +xK +oW +AO +Io +oW +oW +oW +oW +oW +oW +ZG +oW +oW +oW +Lu +oW +oW +Io +oW +oW +oW +oW +xK +FV hs +hs +hs +"} +(28,1,1) = {" +hs +hs +FV xK oW gR @@ -1245,39 +1364,7 @@ oW gR fx xK -hs -hs -hs -hs -"} -(28,1,1) = {" -hs -hs -hs -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -xK -hs +FV hs hs hs @@ -1285,31 +1372,31 @@ hs (29,1,1) = {" hs hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +FV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +FV hs hs hs @@ -1317,31 +1404,31 @@ hs (30,1,1) = {" hs hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV +FV hs hs hs diff --git a/maps/submaps/surface_submaps/valley/vault.dmm b/maps/submaps/surface_submaps/valley/vault.dmm index 798071a729..99c42e14e2 100644 --- a/maps/submaps/surface_submaps/valley/vault.dmm +++ b/maps/submaps/surface_submaps/valley/vault.dmm @@ -19,10 +19,6 @@ /obj/item/weapon/implantcase/chem, /turf/simulated/shuttle/floor/alienplating/blue, /area/submap/vault) -"h" = ( -/mob/living/simple_mob/mechanical/hivebot/precusor/lobber, -/turf/simulated/shuttle/floor/alienplating/blue, -/area/submap/vault) "i" = ( /obj/structure/loot_pile/surface/alien/security, /turf/simulated/shuttle/floor/alienplating/blue, @@ -31,10 +27,6 @@ /obj/structure/loot_pile/surface/alien/end, /turf/simulated/shuttle/floor/alienplating/blue, /area/submap/vault) -"o" = ( -/mob/living/simple_mob/mechanical/hivebot/ranged_damage/siege/fragmentation, -/turf/simulated/shuttle/floor/alien, -/area/submap/vault) "p" = ( /turf/space, /area/submap/vault) @@ -153,9 +145,7 @@ /turf/space, /area/submap/vault) "X" = ( -/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced{ - faction = "hivebot" - }, +/mob/living/simple_mob/mechanical/hivebot/precusor/chrono, /turf/simulated/shuttle/floor/alienplating/blue, /area/submap/vault) "Y" = ( @@ -882,7 +872,7 @@ c c a a -o +z I z a @@ -965,7 +955,7 @@ c c a z -h +a z v D @@ -1046,7 +1036,7 @@ c c a a -o +z I z a diff --git a/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm b/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm index 59626e2adc..305a26567d 100644 --- a/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm +++ b/maps/submaps/surface_submaps/wilderness/leopardmanderden.dmm @@ -1,1030 +1,1030 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aK" = ( -/obj/item/weapon/ore/silver, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"aT" = ( -/obj/structure/table/bench/sifwooden/padded, -/mob/living/simple_mob/animal/sif/siffet{ - faction = "neutral" - }, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"bj" = ( -/obj/item/weapon/ore/bluespace_crystal, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"bO" = ( -/obj/item/stack/material/gold, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"cu" = ( -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"dA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/simple_door/sifwood, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"eD" = ( -/obj/structure/railing/grey{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"eF" = ( -/obj/structure/ledge/ledge_stairs, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/template_noop) -"fe" = ( -/obj/item/weapon/coin/diamond, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"fQ" = ( -/obj/effect/landmark/loot_spawn/low, -/obj/item/weapon/ore/gold, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"gg" = ( -/obj/random/obstruction, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"gC" = ( -/obj/item/weapon/flame/lighter/zippo/gold, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"gD" = ( -/obj/structure/flora/smallbould, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"gP" = ( -/obj/structure/cliff/automatic, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"gU" = ( -/obj/item/weapon/coin/gold, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"hi" = ( -/obj/structure/sign/warning/falling, -/turf/simulated/wall/gold, -/area/submap/LeopardmanderDen) -"hr" = ( -/obj/structure/flora/rocks1, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"hw" = ( -/obj/structure/cliff/automatic{ - dir = 9 - }, -/obj/structure/railing/grey{ - dir = 1 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"iV" = ( -/obj/structure/cliff/automatic/corner{ - dir = 6 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"jb" = ( -/obj/machinery/crystal/ice, -/turf/template_noop, -/area/template_noop) -"jE" = ( -/obj/structure/cliff/automatic{ - dir = 8 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"ki" = ( -/obj/structure/table/bench/sifwooden/padded, -/obj/item/clothing/head/pin/flower/violet, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"kx" = ( -/obj/item/stack/material/gold, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"kO" = ( -/obj/structure/cliff/automatic{ - dir = 6 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"lb" = ( -/obj/structure/cliff/automatic{ - dir = 10 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"ll" = ( -/obj/structure/cliff/automatic/corner{ - dir = 10 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"mi" = ( -/obj/structure/cliff/automatic/ramp{ - dir = 9 - }, -/obj/structure/railing/grey{ - dir = 8 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"mu" = ( -/obj/structure/flora/rocks2, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"mW" = ( -/obj/structure/railing/grey, -/obj/structure/railing/grey{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"nw" = ( -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"nG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"nR" = ( -/mob/living/simple_mob/animal/sif/sakimm, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"oD" = ( -/obj/fiftyspawner/silver, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"pQ" = ( -/obj/structure/cliff/automatic/corner, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"qa" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"qg" = ( -/obj/structure/bed/chair/oldsofa/right{ - dir = 8 - }, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"rn" = ( -/turf/template_noop, -/area/template_noop) -"ro" = ( -/obj/structure/flora/lily3, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"rD" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"rG" = ( -/obj/structure/flora/pottedplant/flower, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"sl" = ( -/obj/machinery/crystal/ice, -/obj/structure/railing/grey{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"sN" = ( -/mob/living/simple_mob/otie/red/chubby{ - desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit. It has a collar around one of its ankles that reads 'Tawny'."; - name = "Tawny" - }, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"sY" = ( -/mob/living/simple_mob/animal/sif/sakimm{ - faction = "neutral" - }, -/turf/template_noop, -/area/template_noop) -"tP" = ( -/mob/living/simple_mob/animal/sif/sakimm{ - faction = "neutral" - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"uw" = ( -/obj/structure/ledge/ledge_stairs{ - dir = 4 - }, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/template_noop) -"uz" = ( -/obj/structure/cliff/automatic{ - dir = 8 - }, -/obj/structure/railing/grey{ - dir = 8 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"vk" = ( -/mob/living/simple_mob/animal/sif/tymisian{ - faction = "neutral" - }, -/turf/template_noop, -/area/template_noop) -"xf" = ( -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"xg" = ( -/obj/item/weapon/ore/silver, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"xL" = ( -/obj/random/outcrop, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"yl" = ( -/turf/simulated/wall/golddiamond, -/area/submap/LeopardmanderDen) -"yz" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"zJ" = ( -/mob/living/simple_mob/animal/sif/siffet{ - faction = "neutral" - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"zW" = ( -/obj/structure/cliff/automatic/corner{ - dir = 9 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Ah" = ( -/obj/structure/flora/grass/green, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"AF" = ( -/turf/simulated/floor/water/ocean, -/area/submap/LeopardmanderDen) -"AP" = ( -/obj/structure/bed/chair/oldsofa/right{ - dir = 4 - }, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"BE" = ( -/obj/item/stack/material/diamond, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"DI" = ( -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"DJ" = ( -/obj/structure/flora/log1, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Ez" = ( -/obj/structure/flora/bboulder2, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"EH" = ( -/obj/structure/ledge/ledge_stairs, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Gl" = ( -/obj/structure/cliff/automatic{ - dir = 9 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Gw" = ( -/obj/item/weapon/ore/gold, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Hx" = ( -/obj/structure/sign/warning/falling, -/turf/simulated/wall/sifwood, -/area/template_noop) -"HV" = ( -/obj/structure/bed/chair/oldsofa/left{ - dir = 4 - }, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Ih" = ( -/obj/random/obstruction, -/turf/template_noop, -/area/template_noop) -"IQ" = ( -/turf/simulated/mineral/ignore_mapgen, -/area/submap/LeopardmanderDen) -"Jk" = ( -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/template_noop) -"Kd" = ( -/obj/structure/cliff/automatic, -/obj/structure/railing/grey{ - dir = 1 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Kv" = ( -/obj/random/outcrop, -/turf/template_noop, -/area/template_noop) -"KT" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/structure/flora/tree/winter, -/turf/simulated/floor/outdoors/grass/sif/forest, -/area/submap/LeopardmanderDen) -"Lb" = ( -/obj/structure/cliff/automatic{ - dir = 5 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Ls" = ( -/obj/structure/cliff/automatic{ - dir = 2 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"MQ" = ( -/obj/machinery/crystal/ice, -/obj/structure/railing/grey{ - dir = 8 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"NS" = ( -/obj/structure/cliff/automatic{ - dir = 10 - }, -/obj/structure/railing/grey, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Pc" = ( -/obj/item/stack/material/diamond, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"Pr" = ( -/turf/unsimulated/wall/bronze, -/area/submap/LeopardmanderDen) -"PO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/flora/rocks2, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Qa" = ( -/obj/machinery/crystal/ice, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"QQ" = ( -/obj/item/stack/material/gold, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"RA" = ( -/obj/fiftyspawner/gold, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"Sk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/flora/rocks1, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Sm" = ( -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"SM" = ( -/obj/structure/flora/log2, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Te" = ( -/obj/item/weapon/coin/silver, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Tj" = ( -/mob/living/simple_mob/animal/sif/tymisian{ - faction = "neutral" - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"Tt" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/item/weapon/coin/iron, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"TF" = ( -/obj/structure/bed/chair/oldsofa/left{ - dir = 8 - }, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Uc" = ( -/obj/item/weapon/ore/diamond, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"Ul" = ( -/obj/item/weapon/ore/gold, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) -"UA" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/item/weapon/coin/gold, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Vi" = ( -/obj/structure/flora/lily2, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Vp" = ( -/obj/effect/map_effect/interval/effect_emitter/steam, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"VM" = ( -/turf/simulated/wall/gold, -/area/submap/LeopardmanderDen) -"VV" = ( -/obj/structure/flora/lily1, -/turf/simulated/floor/water/ocean{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"WB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/outdoors/rocks{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Xt" = ( -/mob/living/simple_mob/vore/leopardmander, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"XR" = ( -/obj/effect/map_effect/interval/effect_emitter/steam, -/turf/simulated/floor/water/ocean, -/area/submap/LeopardmanderDen) -"Yq" = ( -/obj/structure/cliff/automatic{ - dir = 4 - }, -/turf/simulated/floor/outdoors/dirt, -/area/template_noop) -"YJ" = ( -/obj/item/weapon/ore/diamond, -/turf/simulated/floor/outdoors/grass/sif/forest{ - outdoors = 0 - }, -/area/submap/LeopardmanderDen) -"Zj" = ( -/mob/living/simple_mob/animal/sif/tymisian{ - faction = "neutral" - }, -/turf/simulated/floor/outdoors/grass/sif, -/area/submap/LeopardmanderDen) - -(1,1,1) = {" -rn -Ih -iV -Yq -Yq -Yq -Yq -Yq -Yq -Yq -pQ -Sm -Sm -Sm -Sm -rn -rn -rn -rn -rn -"} -(2,1,1) = {" -rn -iV -kO -IQ -IQ -IQ -IQ -IQ -IQ -IQ -Lb -Yq -Yq -Yq -pQ -Sm -sY -rn -Sm -rn -"} -(3,1,1) = {" -iV -kO -IQ -IQ -Qa -yl -IQ -IQ -IQ -IQ -IQ -IQ -IQ -IQ -Lb -Yq -pQ -Sm -Ih -rn -"} -(4,1,1) = {" -Ls -IQ -IQ -cu -xf -bj -Pc -xf -IQ -Pr -IQ -IQ -IQ -IQ -IQ -IQ -Lb -pQ -Sm -rn -"} -(5,1,1) = {" -Ls -IQ -IQ -xL -BE -DI -PO -DI -kx -gU -DI -Uc -xL -cu -IQ -IQ -IQ -Lb -Yq -pQ -"} -(6,1,1) = {" -Ls -IQ -IQ -xf -fe -Xt -nw -Vi -YJ -yz -Ah -xg -Zj -Qa -cu -IQ -IQ -IQ -IQ -gP -"} -(7,1,1) = {" -Ls -IQ -IQ -RA -DI -nw -SM -nw -nw -ro -nw -nR -DI -Pc -xL -IQ -IQ -IQ -IQ -gP -"} -(8,1,1) = {" -Ls -IQ -Pr -xf -mu -nw -nw -AF -UA -XR -nw -DJ -hr -YJ -Uc -IQ -Qa -IQ -IQ -gP -"} -(9,1,1) = {" -Ls -IQ -IQ -IQ -QQ -nw -nw -rD -KT -Tt -nw -nw -AF -fQ -xf -IQ -HV -AP -IQ -gP -"} -(10,1,1) = {" -Ls -IQ -IQ -cu -gC -nG -nw -Vp -Ez -VV -AF -nw -ki -Gw -bO -cu -cu -cu -IQ -gP -"} -(11,1,1) = {" -Ls -IQ -IQ -cu -xL -DI -DI -AF -nw -nw -nw -nw -aT -Ul -qa -VM -qg -TF -IQ -gP -"} -(12,1,1) = {" -ll -lb -IQ -IQ -VM -Qa -sN -aK -Te -DJ -Ah -rG -Sk -qa -oD -IQ -IQ -IQ -IQ -gP -"} -(13,1,1) = {" -rn -ll -lb -IQ -IQ -IQ -IQ -Qa -DI -hr -DI -xf -xf -xL -cu -IQ -IQ -IQ -IQ -gP -"} -(14,1,1) = {" -rn -gg -Ls -IQ -IQ -IQ -IQ -IQ -IQ -IQ -xf -cu -cu -Qa -Pr -IQ -IQ -IQ -Gl -zW -"} -(15,1,1) = {" -rn -Sm -ll -jE -lb -IQ -IQ -IQ -IQ -IQ -gD -cu -WB -IQ -IQ -IQ -IQ -Gl -zW -rn -"} -(16,1,1) = {" -rn -Sm -gg -Sm -ll -lb -IQ -IQ -IQ -IQ -IQ -hi -dA -VM -IQ -Gl -jE -zW -rn -Kv -"} -(17,1,1) = {" -rn -rn -tP -rn -Sm -ll -jE -jE -jE -jE -jE -NS -uw -hw -jE -zW -Sm -jb -zJ -rn -"} -(18,1,1) = {" -rn -Sm -Sm -Sm -Tj -Sm -Sm -Hx -Sm -sl -eD -mW -uw -Kd -Sm -vk -tP -rn -rn -rn -"} -(19,1,1) = {" -rn -rn -Sm -rn -Sm -tP -Sm -zJ -Sm -EH -eF -eF -Jk -Kd -Sm -Ih -rn -rn -rn -rn -"} -(20,1,1) = {" -rn -rn -rn -rn -rn -Sm -Sm -Sm -Sm -MQ -mi -uz -uz -zW -rn -rn -rn -rn -rn -rn -"} +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aK" = ( +/obj/item/weapon/ore/silver, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"aT" = ( +/obj/structure/table/bench/sifwooden/padded, +/mob/living/simple_mob/animal/sif/siffet{ + faction = "neutral" + }, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"bj" = ( +/obj/item/weapon/bluespace_crystal, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"bO" = ( +/obj/item/stack/material/gold, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"cu" = ( +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"dA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/simple_door/sifwood, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"eD" = ( +/obj/structure/railing/grey{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"eF" = ( +/obj/structure/ledge/ledge_stairs, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/template_noop) +"fe" = ( +/obj/item/weapon/coin/diamond, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"fQ" = ( +/obj/effect/landmark/loot_spawn/low, +/obj/item/weapon/ore/gold, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"gg" = ( +/obj/random/obstruction, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"gC" = ( +/obj/item/weapon/flame/lighter/zippo/gold, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"gD" = ( +/obj/structure/flora/smallbould, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"gP" = ( +/obj/structure/cliff/automatic, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"gU" = ( +/obj/item/weapon/coin/gold, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"hi" = ( +/obj/structure/sign/warning/falling, +/turf/simulated/wall/gold, +/area/submap/LeopardmanderDen) +"hr" = ( +/obj/structure/flora/rocks1, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"hw" = ( +/obj/structure/cliff/automatic{ + dir = 9 + }, +/obj/structure/railing/grey{ + dir = 1 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"iV" = ( +/obj/structure/cliff/automatic/corner{ + dir = 6 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"jb" = ( +/obj/machinery/crystal/ice, +/turf/template_noop, +/area/template_noop) +"jE" = ( +/obj/structure/cliff/automatic{ + dir = 8 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"ki" = ( +/obj/structure/table/bench/sifwooden/padded, +/obj/item/clothing/head/pin/flower/violet, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"kx" = ( +/obj/item/stack/material/gold, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"kO" = ( +/obj/structure/cliff/automatic{ + dir = 6 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"lb" = ( +/obj/structure/cliff/automatic{ + dir = 10 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"ll" = ( +/obj/structure/cliff/automatic/corner{ + dir = 10 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"mi" = ( +/obj/structure/cliff/automatic/ramp{ + dir = 9 + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"mu" = ( +/obj/structure/flora/rocks2, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"mW" = ( +/obj/structure/railing/grey, +/obj/structure/railing/grey{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"nw" = ( +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"nG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"nR" = ( +/mob/living/simple_mob/animal/sif/sakimm, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"oD" = ( +/obj/fiftyspawner/silver, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"pQ" = ( +/obj/structure/cliff/automatic/corner, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"qg" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 8 + }, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"rn" = ( +/turf/template_noop, +/area/template_noop) +"ro" = ( +/obj/structure/flora/lily3, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"rD" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"rG" = ( +/obj/structure/flora/pottedplant/flower, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"sl" = ( +/obj/machinery/crystal/ice, +/obj/structure/railing/grey{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"sN" = ( +/mob/living/simple_mob/otie/red/chubby{ + desc = "Seems this ominous looking longdog has been infused with wicked infernal forces. What an absolute unit. It has a collar around one of its ankles that reads 'Tawny'."; + name = "Tawny" + }, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"sY" = ( +/mob/living/simple_mob/animal/sif/sakimm{ + faction = "neutral" + }, +/turf/template_noop, +/area/template_noop) +"tP" = ( +/mob/living/simple_mob/animal/sif/sakimm{ + faction = "neutral" + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"uw" = ( +/obj/structure/ledge/ledge_stairs{ + dir = 4 + }, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/template_noop) +"uz" = ( +/obj/structure/cliff/automatic{ + dir = 8 + }, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"vk" = ( +/mob/living/simple_mob/animal/sif/tymisian{ + faction = "neutral" + }, +/turf/template_noop, +/area/template_noop) +"xf" = ( +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"xg" = ( +/obj/item/weapon/ore/silver, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"xL" = ( +/obj/random/outcrop, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"yl" = ( +/turf/simulated/wall/golddiamond, +/area/submap/LeopardmanderDen) +"yz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"zJ" = ( +/mob/living/simple_mob/animal/sif/siffet{ + faction = "neutral" + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"zW" = ( +/obj/structure/cliff/automatic/corner{ + dir = 9 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Ah" = ( +/obj/structure/flora/grass/green, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"AF" = ( +/turf/simulated/floor/water/ocean, +/area/submap/LeopardmanderDen) +"AP" = ( +/obj/structure/bed/chair/oldsofa/right{ + dir = 4 + }, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"BE" = ( +/obj/item/stack/material/diamond, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"DI" = ( +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"DJ" = ( +/obj/structure/flora/log1, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Ez" = ( +/obj/structure/flora/bboulder2, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"EH" = ( +/obj/structure/ledge/ledge_stairs, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Gl" = ( +/obj/structure/cliff/automatic{ + dir = 9 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Gw" = ( +/obj/item/weapon/ore/gold, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Hx" = ( +/obj/structure/sign/warning/falling, +/turf/simulated/wall/sifwood, +/area/template_noop) +"HV" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 4 + }, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Ih" = ( +/obj/random/obstruction, +/turf/template_noop, +/area/template_noop) +"IQ" = ( +/turf/simulated/mineral/ignore_mapgen, +/area/submap/LeopardmanderDen) +"Jk" = ( +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/template_noop) +"Kd" = ( +/obj/structure/cliff/automatic, +/obj/structure/railing/grey{ + dir = 1 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Kv" = ( +/obj/random/outcrop, +/turf/template_noop, +/area/template_noop) +"KT" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/structure/flora/tree/winter, +/turf/simulated/floor/outdoors/grass/sif/forest, +/area/submap/LeopardmanderDen) +"Lb" = ( +/obj/structure/cliff/automatic{ + dir = 5 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Ls" = ( +/obj/structure/cliff/automatic{ + dir = 2 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"MQ" = ( +/obj/machinery/crystal/ice, +/obj/structure/railing/grey{ + dir = 8 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"NS" = ( +/obj/structure/cliff/automatic{ + dir = 10 + }, +/obj/structure/railing/grey, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Pc" = ( +/obj/item/stack/material/diamond, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"Pr" = ( +/turf/unsimulated/wall/bronze, +/area/submap/LeopardmanderDen) +"PO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/rocks2, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Qa" = ( +/obj/machinery/crystal/ice, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"QQ" = ( +/obj/item/stack/material/gold, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"RA" = ( +/obj/fiftyspawner/gold, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"Sk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/rocks1, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Sm" = ( +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"SM" = ( +/obj/structure/flora/log2, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Te" = ( +/obj/item/weapon/coin/silver, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Tj" = ( +/mob/living/simple_mob/animal/sif/tymisian{ + faction = "neutral" + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"Tt" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/item/weapon/coin/iron, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"TF" = ( +/obj/structure/bed/chair/oldsofa/left{ + dir = 8 + }, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Uc" = ( +/obj/item/weapon/ore/diamond, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"Ul" = ( +/obj/item/weapon/ore/gold, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) +"UA" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/item/weapon/coin/gold, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Vi" = ( +/obj/structure/flora/lily2, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Vp" = ( +/obj/effect/map_effect/interval/effect_emitter/steam, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"VM" = ( +/turf/simulated/wall/gold, +/area/submap/LeopardmanderDen) +"VV" = ( +/obj/structure/flora/lily1, +/turf/simulated/floor/water/ocean{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"WB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/outdoors/rocks{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Xt" = ( +/mob/living/simple_mob/vore/leopardmander, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"XR" = ( +/obj/effect/map_effect/interval/effect_emitter/steam, +/turf/simulated/floor/water/ocean, +/area/submap/LeopardmanderDen) +"Yq" = ( +/obj/structure/cliff/automatic{ + dir = 4 + }, +/turf/simulated/floor/outdoors/dirt, +/area/template_noop) +"YJ" = ( +/obj/item/weapon/ore/diamond, +/turf/simulated/floor/outdoors/grass/sif/forest{ + outdoors = 0 + }, +/area/submap/LeopardmanderDen) +"Zj" = ( +/mob/living/simple_mob/animal/sif/tymisian{ + faction = "neutral" + }, +/turf/simulated/floor/outdoors/grass/sif, +/area/submap/LeopardmanderDen) + +(1,1,1) = {" +rn +Ih +iV +Yq +Yq +Yq +Yq +Yq +Yq +Yq +pQ +Sm +Sm +Sm +Sm +rn +rn +rn +rn +rn +"} +(2,1,1) = {" +rn +iV +kO +IQ +IQ +IQ +IQ +IQ +IQ +IQ +Lb +Yq +Yq +Yq +pQ +Sm +sY +rn +Sm +rn +"} +(3,1,1) = {" +iV +kO +IQ +IQ +Qa +yl +IQ +IQ +IQ +IQ +IQ +IQ +IQ +IQ +Lb +Yq +pQ +Sm +Ih +rn +"} +(4,1,1) = {" +Ls +IQ +IQ +cu +xf +bj +Pc +xf +IQ +Pr +IQ +IQ +IQ +IQ +IQ +IQ +Lb +pQ +Sm +rn +"} +(5,1,1) = {" +Ls +IQ +IQ +xL +BE +DI +PO +DI +kx +gU +DI +Uc +xL +cu +IQ +IQ +IQ +Lb +Yq +pQ +"} +(6,1,1) = {" +Ls +IQ +IQ +xf +fe +Xt +nw +Vi +YJ +yz +Ah +xg +Zj +Qa +cu +IQ +IQ +IQ +IQ +gP +"} +(7,1,1) = {" +Ls +IQ +IQ +RA +DI +nw +SM +nw +nw +ro +nw +nR +DI +Pc +xL +IQ +IQ +IQ +IQ +gP +"} +(8,1,1) = {" +Ls +IQ +Pr +xf +mu +nw +nw +AF +UA +XR +nw +DJ +hr +YJ +Uc +IQ +Qa +IQ +IQ +gP +"} +(9,1,1) = {" +Ls +IQ +IQ +IQ +QQ +nw +nw +rD +KT +Tt +nw +nw +AF +fQ +xf +IQ +HV +AP +IQ +gP +"} +(10,1,1) = {" +Ls +IQ +IQ +cu +gC +nG +nw +Vp +Ez +VV +AF +nw +ki +Gw +bO +cu +cu +cu +IQ +gP +"} +(11,1,1) = {" +Ls +IQ +IQ +cu +xL +DI +DI +AF +nw +nw +nw +nw +aT +Ul +qa +VM +qg +TF +IQ +gP +"} +(12,1,1) = {" +ll +lb +IQ +IQ +VM +Qa +sN +aK +Te +DJ +Ah +rG +Sk +qa +oD +IQ +IQ +IQ +IQ +gP +"} +(13,1,1) = {" +rn +ll +lb +IQ +IQ +IQ +IQ +Qa +DI +hr +DI +xf +xf +xL +cu +IQ +IQ +IQ +IQ +gP +"} +(14,1,1) = {" +rn +gg +Ls +IQ +IQ +IQ +IQ +IQ +IQ +IQ +xf +cu +cu +Qa +Pr +IQ +IQ +IQ +Gl +zW +"} +(15,1,1) = {" +rn +Sm +ll +jE +lb +IQ +IQ +IQ +IQ +IQ +gD +cu +WB +IQ +IQ +IQ +IQ +Gl +zW +rn +"} +(16,1,1) = {" +rn +Sm +gg +Sm +ll +lb +IQ +IQ +IQ +IQ +IQ +hi +dA +VM +IQ +Gl +jE +zW +rn +Kv +"} +(17,1,1) = {" +rn +rn +tP +rn +Sm +ll +jE +jE +jE +jE +jE +NS +uw +hw +jE +zW +Sm +jb +zJ +rn +"} +(18,1,1) = {" +rn +Sm +Sm +Sm +Tj +Sm +Sm +Hx +Sm +sl +eD +mW +uw +Kd +Sm +vk +tP +rn +rn +rn +"} +(19,1,1) = {" +rn +rn +Sm +rn +Sm +tP +Sm +zJ +Sm +EH +eF +eF +Jk +Kd +Sm +Ih +rn +rn +rn +rn +"} +(20,1,1) = {" +rn +rn +rn +rn +rn +Sm +Sm +Sm +Sm +MQ +mi +uz +uz +zW +rn +rn +rn +rn +rn +rn +"} diff --git a/maps/submaps/surface_submaps/wilderness/wilderness.dm b/maps/submaps/surface_submaps/wilderness/wilderness.dm index 258d92ea36..6578a0a40c 100644 --- a/maps/submaps/surface_submaps/wilderness/wilderness.dm +++ b/maps/submaps/surface_submaps/wilderness/wilderness.dm @@ -108,7 +108,7 @@ desc = "Production of experimental combat robots gone rogue." mappath = 'maps/submaps/surface_submaps/wilderness/borglabAlt.dmm' cost = 30 - template_group = "Shuttle Down" + template_group = "Borg Lab" /datum/map_template/surface/wilderness/normal/butchershack name = "Butcher Shack" diff --git a/maps/tether/submaps/underdark_pois/goldhall.dmm b/maps/tether/submaps/underdark_pois/goldhall.dmm index 5392bded75..4bbeb7fa00 100644 --- a/maps/tether/submaps/underdark_pois/goldhall.dmm +++ b/maps/tether/submaps/underdark_pois/goldhall.dmm @@ -23,7 +23,7 @@ /area/mine/explored/underdark) "g" = ( /obj/effect/decal/remains, -/obj/item/weapon/ore/bluespace_crystal, +/obj/item/weapon/bluespace_crystal, /turf/simulated/floor/tiled/kafel_full/yellow/virgo3b, /area/mine/explored/underdark) diff --git a/modular_chomp/code/_onclick/hud/alert.dm b/modular_chomp/code/_onclick/hud/alert.dm new file mode 100644 index 0000000000..09e06fa641 --- /dev/null +++ b/modular_chomp/code/_onclick/hud/alert.dm @@ -0,0 +1,14 @@ +/obj/screen/alert/open_ticket + icon = 'modular_chomp/icons/logo.dmi' + name = "Admin Chat Request" + desc = "A Administrator would like to chat with you. \ + Click here to begin." + icon_state = "32x32" + +/obj/screen/alert/open_ticket/Click() + if(!usr || !usr.client) return + + // Open a new chat with the user + var/datum/ticket_chat/TC = new() + TC.T = usr.client.current_ticket + TC.tgui_interact(usr.client.mob) diff --git a/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm b/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm new file mode 100644 index 0000000000..c4d485e14f --- /dev/null +++ b/modular_chomp/code/game/objects/items/weapons/cigs_lighters.dm @@ -0,0 +1,161 @@ +/obj/item/weapon/flame/lighter/safesmzippo + name = "Supermatter Zippo" + desc = "State of the Art Supermatter Lighter." + description_fluff = "A zippo style lighter with a tiny supermatter sliver held by a hardlight shield. When lighting a cigar, make sure to hover the tip near the sliver, not against it!" + icon = 'icons/obj/zippo_ch.dmi' + icon_state = "SMzippo" + item_state = "SMzippo" + activation_sound = 'modular_chomp/sound/items/open.ogg' + deactivation_sound = 'sound/items/zippo_off.ogg' + +/obj/item/weapon/flame/lighter/syndismzippo + name = "Syndicate SM Zippo" + desc = "State of the Art Supermatter Lighter." + description_fluff = "A red zippo style lighter with a tiny supermatter sliver held by a phoron field." + icon = 'icons/obj/zippo_ch.dmi' + icon_state = "SyndiSMzippo" + item_state = "SyndiSMzippo" + activation_sound = 'modular_chomp/sound/items/open.ogg' + deactivation_sound = 'sound/items/zippo_off.ogg' + +// safe smzippo +/obj/item/weapon/flame/lighter/safesmzippo/attack_self(mob/living/user) + if(!base_state) + base_state = icon_state + if(!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + if(prob(50)) + user.visible_message("[user] safely activates the [src] with a push of a button!") + else + if(prob(95)) + user.visible_message("After a few attempts, [user] manages to excite the supermatter within the [src].") + else + to_chat(user, "You hurt yourself on the shielding!") + if (user.get_left_hand() == src) + user.apply_damage(1,SEARING,"l_hand") + user.apply_damage(2,ELECTROCUTE,"l_hand") + user.apply_damage(3,CLONE,"l_hand") + user.apply_damage(4,ELECTROMAG,"l_hand") + else + user.apply_damage(1,SEARING,"l_hand") + user.apply_damage(2,ELECTROCUTE,"r_hand") + user.apply_damage(3,CLONE,"r_hand") + user.apply_damage(4,ELECTROMAG,"l_hand") + user.visible_message("After a few attempts, [user] manages to activate the [src], they however sting themselves on the shielding!") + + set_light(2) + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + if(istype(src, /obj/item/weapon/flame/lighter/safesmzippo) ) + user.visible_message("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.") + else + user.visible_message("[user] quietly shuts the [src].") + + set_light(0) + STOP_PROCESSING(SSobj, src) + return + + +/obj/item/weapon/flame/lighter/safesmzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(lit == 1) + M.IgniteMob() + add_attack_logs(user,M,"Lit on fire with [src]") + + if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask + if(M == user) + cig.attackby(src, user) + else + if(istype(src, /obj/item/weapon/flame/lighter/zippo)) + cig.light("[user] whips the [name] out and holds it for [M].") + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/weapon/flame/lighter/safesmzippo/process() + var/turf/location = get_turf(src) + if(location) + location.hotspot_expose(700, 5) + return + +// syndicate smzippo +/obj/item/weapon/flame/lighter/syndismzippo/attack_self(mob/living/user) + if(!base_state) + base_state = icon_state + if(!lit) + lit = 1 + icon_state = "[base_state]on" + item_state = "[base_state]on" + playsound(src, activation_sound, 75, 1) + if(prob(50)) + user.visible_message("[user] safely activates the [src] with a push of a button!") + else + if(prob(99)) + user.visible_message("After a few attempts, [user] manages to excite the supermatter within the [src].") + else + to_chat(user, "You singe yourself on the phoron shielding the excited supermatter!") + if (user.get_left_hand() == src) + user.apply_damage(30,HALLOSS,"l_hand") + user.apply_damage(20,CLONE,"l_hand") + user.apply_damage(5,BURN,"l_hand") + user.apply_damage(5,ELECTROCUTE,"l_hand") + else + user.apply_damage(30,HALLOSS,"r_hand") + user.apply_damage(20,CLONE,"r_hand") + user.apply_damage(5,BURN,"r_hand") + user.apply_damage(5,ELECTROCUTE,"r_hand") + user.visible_message("After a few attempts, [user] manages to activate the [src], they however burn themselves with the heated phoron field!") + + set_light(2) + START_PROCESSING(SSobj, src) + else + lit = 0 + icon_state = "[base_state]" + item_state = "[base_state]" + playsound(src, deactivation_sound, 75, 1) + if(istype(src, /obj/item/weapon/flame/lighter/syndismzippo) ) + user.visible_message("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.") + else + user.visible_message("[user] quietly shuts the [src].") + + set_light(0) + STOP_PROCESSING(SSobj, src) + return + + +/obj/item/weapon/flame/lighter/syndismzippo/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(!istype(M, /mob)) + return + + if(lit == 1) + M.IgniteMob() + add_attack_logs(user,M,"Lit on fire with [src]") + + if(istype(M.wear_mask, /obj/item/clothing/mask/smokable/cigarette) && user.zone_sel.selecting == O_MOUTH && lit) + var/obj/item/clothing/mask/smokable/cigarette/cig = M.wear_mask + if(M == user) + cig.attackby(src, user) + else + if(istype(src, /obj/item/weapon/flame/lighter/syndismzippo)) + cig.light("[user] whips the [name] out and holds it for [M].") + else + cig.light("[user] holds the [name] out for [M], and lights the [cig.name].") + else + ..() + +/obj/item/weapon/flame/lighter/process() + var/turf/location = get_turf(src) + if(location) + location.hotspot_expose(700, 5) + return diff --git a/modular_chomp/code/modules/clothing/clothing.dm b/modular_chomp/code/modules/clothing/clothing.dm index ec4901779f..980ae677a8 100644 --- a/modular_chomp/code/modules/clothing/clothing.dm +++ b/modular_chomp/code/modules/clothing/clothing.dm @@ -81,4 +81,93 @@ /obj/item/clothing/under/equipped(var/mob/user, var/slot) . = ..() - handle_digitigrade(user) \ No newline at end of file + handle_digitigrade(user) + +//In shoe steppies! +/obj/item/clothing/shoes/proc/handle_inshoe_stepping(var/mob/living/carbon/human/pred, var/mob/living/carbon/human/prey) + if(!istype(pred)) return //Sorry, inshoe steppies only for carbon/human/ for now. Based on the regular stepping mechanics + if(!istype(prey)) return + if(!pred.canmove || pred.buckled) return //We can't be stepping on anyone if buckled or incapable of moving + if(pred in buckled_mobs) return + if(pred.flying) return //If we're flying, can't really step. + + // I kept interactions very similar to normal steppies, and removed some attack logs unless harm intent: + // I_HELP: No painful description, messages only sent to prey. Similar to inshoe steppies from before. + // I_DISARM: Painful yet harmless descriptions, weaken on walk. Attack logs on weaken. + // I_GRAB: Grabby/Squishing descriptions, weaken on walk. Attack logs on weaken. + // I_HARM: Rand .5-1.5 multiplied by .25 min or 1.75 max, multiplied by 3.5 on walk. Ranges from .125 min to 9.1875 max damage to each limb + var/message_pred = null + var/message_prey = null + + switch(pred.a_intent) + if(I_HELP) + if(prob(40)) //Reducing spam exclusively on I_HELP. Still more frequent than old pitiful prob(1) + if(pred.m_intent == "run") + message_prey = pick( + "You feel weightless for a brief moment as \the [name] move upwards.", + "[pred]'s weight bears down on you with each of their steps.", + "\The [name] are a ride you've got no choice but to participate in as the wearer moves.", + "The wearer of \the [name] moves, and their feet press down on you with each step.", + "With each step, you're sandwiched again between [pred]'s feet and the insole of their boots.", + "As [pred] moves, their foot presses you tightly against the insole of their boots with each step.") + else + message_prey = pick( + "You feel weightless for a brief moment as \the [name] move upwards.", + "[pred]'s weight bears down on you with each of the calm steps of their walk.", + "\The [name] are a ride you've got no choice but to participate in as the wearer walks.", + "The wearer of \the [name] walks, and their feet press down on you heavily with each step.", + "With each step of their unhurried walk, you're tightly sandwiched between [pred]'s feet and the insole of their boots.", + "As [pred] walks, their foot presses you tightly against the insole of their boots with each step.") + to_chat(prey, span_emote_subtle("[message_prey]")) + + return //No message for pred if I_HELP + + if(I_DISARM) + if(pred.m_intent == "run") + message_pred = "You step on [prey], squishing and pinning them within your [name]!" + message_prey = "[pred] steps on you, squishing and pinning you within their [name]!" + else + message_pred = "You firmly push your foot down on [prey], painfully but harmlessly pinning them to the sole of your [name]!" + message_prey = "[pred] firmly pushes their foot down on you, painfully but harmlessly pinning you to the sole of their [name]!" + prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe + add_attack_logs(pred, prey, "Pinned inshoe (walk, weaken(5))") + + if(I_GRAB) + if(pred.m_intent == "run") + message_pred = "You step down onto [prey], squishing and trapping them inbetween your toes!" + message_prey = "[pred] steps down on you, squishing and trapping you inbetween their toes!" + else + message_pred = "You pin [prey] down against the sole of your [name] with your foot, your toes curling up around their body, tightly trapping them inbetween them!" + message_prey = "[pred] pins you down against the sole of their [name] with their foot, their toes curling up around your body, tighly trapping you inbetween them!" + prey.Weaken(5) // For flavour, only noticed prey if tossed out of shoe + add_attack_logs(pred, prey, "Grabbed inshoe (walk, weaken(5))") + + if(I_HURT) + var/size_damage_multiplier = pred.size_multiplier - prey.size_multiplier + + if(size_damage_multiplier < 0) // In case of odd situations such as wearing a shoe containing someone bigger than you. + size_damage_multiplier = 0 + + //Assuming regular micro pickup sizes outside dorms, size_damage multiplier should range from .25 to 1.75... right? + var/damage = (rand(5, 15) * size_damage_multiplier) / 10 // This will sting, but not kill unless pred walks. Will range from .125 to 2.625 damage, randomly, to each limb + + if(pred.m_intent == "run") + message_pred = "You carelessly step down onto [prey], crushing them within your [name]!" + message_prey = "[pred] steps carelessly on your body, crushing you within their [name]!" + add_attack_logs(pred, prey, "Crushed underfoot (run, about [damage] damage per limb)") + else + message_pred = "You methodically place your foot down upon [prey]'s body, applying pressure, crushing them against the sole of your [name]!" + message_prey = "[pred] methodically places their foot upon your body, applying pressure, crushing you against the sole of their [name]!" + damage *= 3.5 //Walking damage multiplier + add_attack_logs(pred, prey, "Crushed underfoot (walk, about [damage] damage per limb)") + + for(var/obj/item/organ/external/I in prey.organs) + // Running Total: 1.50 damage min, 28.875 damage max, depending on size & RNG. + // Walking Total: 5.25 damage min, 101.0625 damage max, depending on size & RNG. Ouch. + I.take_damage(damage, 0) + + if(message_pred != null) + to_chat(pred, span_warning(message_pred)) + to_chat(prey, span_warning(message_prey)) + + return diff --git a/modular_chomp/code/modules/mob/living/living.dm b/modular_chomp/code/modules/mob/living/living.dm index 76c36f6309..d926f49e51 100644 --- a/modular_chomp/code/modules/mob/living/living.dm +++ b/modular_chomp/code/modules/mob/living/living.dm @@ -11,6 +11,8 @@ var/species_sounds = "None" // By default, we have nothing. var/death_sound_override = null var/virtual_reality_mob = FALSE // gross boolean for keeping VR mobs in VR + var/datum/looping_sound/mob/on_fire/firesoundloop + // var/datum/looping_sound/mob/stunned/stunnedloop /* // Not sure if needed, screams aren't a carbon thing rn. var/scream_sound = null var/female_scream_sound = null @@ -22,11 +24,23 @@ . = ..() deaf_loop = new(list(src), FALSE) + firesoundloop = new(list(src), FALSE) + // stunnedloop = new(list(src), FALSE) + if(firesoundloop) // Partly safety, partly so we can have different probs for randomization + if(prob(40)) // Randomize our end_sound. Can't really do this easily in looping_sound without some work + if(prob(30)) + firesoundloop.end_sound = 'sound/effects/mob_effects/on_fire/fire_extinguish2.ogg' + else if(prob(20)) + firesoundloop.end_sound = 'sound/effects/mob_effects/on_fire/fire_extinguish3.ogg' + else + firesoundloop.end_sound = 'sound/effects/mob_effects/on_fire/fire_extinguish4.ogg' /mob/living/Destroy() . = ..() QDEL_NULL(deaf_loop) + QDEL_NULL(firesoundloop) + // QDEL_NULL(stunnedloop) /mob/living/proc/vs_animate(var/belly_to_animate) return diff --git a/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm index d9ad755156..ac9a9f28b2 100644 --- a/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/modular_chomp/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -23,7 +23,7 @@ /obj/item/weapon/circuitboard, /obj/item/weapon/smes_coil, /obj/item/weapon/fuel_assembly, - /obj/item/weapon/ore/bluespace_crystal + /obj/item/weapon/bluespace_crystal ) // CHOMPEdit - Buffing the gripper to allow bluespace crystal use for telesci building. var/obj/item/wrapped = null // Item currently being held. diff --git a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/cultboss.dm b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/cultboss.dm index 0804a8c77e..0341d8a28d 100644 --- a/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/cultboss.dm +++ b/modular_chomp/code/modules/mob/living/simple_mob/subtypes/humanoid/cultboss.dm @@ -29,7 +29,8 @@ vore_bump_chance = 20 size_multiplier = 1.10 faction = "demon" - damage_fatigue_mult = 0 + damage_fatigue_mult = 0.5 // We don't want to give them a flat, huge boost to attack speed, but at the same time, make them fight harder the closer they are to dying. + injury_enrages = TRUE armor_soak = list( "melee" = 5, @@ -371,4 +372,4 @@ spawn_mob_type = /mob/living/simple_mob/vore/demonAI /obj/item/capture_crystal/wendigo - spawn_mob_type = /mob/living/simple_mob/vore/demonAI/wendigo \ No newline at end of file + spawn_mob_type = /mob/living/simple_mob/vore/demonAI/wendigo diff --git a/modular_chomp/code/modules/mob/new_player/sprite_accessories.dm b/modular_chomp/code/modules/mob/new_player/sprite_accessories.dm new file mode 100644 index 0000000000..f748ffe313 --- /dev/null +++ b/modular_chomp/code/modules/mob/new_player/sprite_accessories.dm @@ -0,0 +1,8 @@ +/datum/sprite_accessory/marking/vox/vox_alt_eyes + icon = 'modular_chomp/icons/mob/human_races/markings_vox.dmi' + +/datum/sprite_accessory/marking/vox/vox_underbeak + name = "Vox Underbeak" + icon = 'modular_chomp/icons/mob/human_races/markings_vox.dmi' + icon_state = "vox_underbeak" + body_parts = list(BP_HEAD) diff --git a/modular_chomp/code/modules/player_tips/player_tips_list.dm b/modular_chomp/code/modules/player_tips/player_tips_list.dm index 7eca04deb3..a02e88b2fc 100644 --- a/modular_chomp/code/modules/player_tips/player_tips_list.dm +++ b/modular_chomp/code/modules/player_tips/player_tips_list.dm @@ -49,7 +49,9 @@ When editing the list, please try and keep similar probabilities near each other prob(10); "[info] Not every hostile NPC you encounter while mining or exploring need to be defeated. Sometimes, it's better to avoid or run away from them.", prob(1); "[info] Stay robust, my friends.", prob(35); "[info] You can insert your I.D into your PDA. This frees up your belt from having to carry your PDA. Furthermore, by clicking and dragging the PDA to game screen, you can use it without holding it!", - prob(35); "[info] Your vore-bellies have multiple add-ons! Muffling is excellent to ensure your prey does not accidentally inform everyone about their predicament, and jam suit sensors is a great courtesy to avoid medical being worried about your prey!" + prob(35); "[info] Your vore-bellies have multiple add-ons! Muffling is excellent to ensure your prey does not accidentally inform everyone about their predicament, and jam suit sensors is a great courtesy to avoid medical being worried about your prey!", + prob(35); "[info] Remember to check your vore panel preferences! There you can find toggles for things other than just vore(tm), such as stepping mechanics and spontaneous transformation.", + prob(25); "[info] If you would like to toggle stepping mechanics, head to the vore panel and click on personal preferences! Disabling stepping mechanics will disable stepping descriptions and will prevent your character from taking damage if a bigger character walks over yours with harm intent. Your character will still be stunned, however." ) if("roleplay") diff --git a/modular_chomp/code/modules/tgui/feedback.dm b/modular_chomp/code/modules/tgui/feedback.dm new file mode 100644 index 0000000000..9c65474364 --- /dev/null +++ b/modular_chomp/code/modules/tgui/feedback.dm @@ -0,0 +1,48 @@ +/datum/tgui_feedback + var/selected_window + +/datum/tgui_feedback/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TguiFeedback", "TGUI Feedback Submission") + ui.open() + +/datum/tgui_feedback/tgui_state(mob/user) + return GLOB.tgui_always_state + +/datum/tgui_feedback/tgui_static_data(mob/user) + var/list/data = list() + + data["open_windows"] = list() + for(var/datum/tgui/ui in user.tgui_open_uis) + data["open_windows"] += ui.title + + return data + +/datum/tgui_feedback/tgui_data(mob/user) + var/list/data = list() + + data["selected_window"] = selected_window + + return data + +/datum/tgui_feedback/tgui_act(action, params) + if(..()) + return + switch(action) + if("pick_window") + if(!params["win"]) + return + + selected_window = sanitize(params["win"]) + . = TRUE + if("submit") + message_admins("TGUI Feedback: Rating [params["rating"]] - Comment: [params["comment"]]") + . = TRUE + +/client/verb/tgui_feedback() + set name = "Submit TGUI Feedback" + set category = "OOC" + + var/datum/tgui_feedback/feedback = new() + feedback.tgui_interact(usr) diff --git a/modular_chomp/code/modules/tgui/states/ticket.dm b/modular_chomp/code/modules/tgui/states/ticket.dm new file mode 100644 index 0000000000..a747c11089 --- /dev/null +++ b/modular_chomp/code/modules/tgui/states/ticket.dm @@ -0,0 +1,13 @@ + /** + * tgui state: ticket_state + * + * Grants the user UI_INTERACTIVE, if a ticket is open. + **/ + +GLOBAL_DATUM_INIT(tgui_ticket_state, /datum/tgui_state/ticket_state, new) + +/datum/tgui_state/ticket_state/can_use_topic(src_object, mob/user) + //if (user.client.current_ticket) + // return STATUS_INTERACTIVE + //return STATUS_CLOSE + return STATUS_INTERACTIVE diff --git a/modular_chomp/code/modules/tickets/procs.dm b/modular_chomp/code/modules/tickets/procs.dm new file mode 100644 index 0000000000..bc27fc9c80 --- /dev/null +++ b/modular_chomp/code/modules/tickets/procs.dm @@ -0,0 +1,173 @@ +// +// CLIENT PROCS +// + +/client/verb/mentorhelp(msg as text) + set category = "Admin" + set name = "Mentorhelp" + + if(say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + + //handle muting and automuting + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Mentor-PM: You cannot send adminhelps (Muted).") + return + if(handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + if(!msg) + return + + //remove out adminhelp verb temporarily to prevent spamming of admins. + src.verbs -= /client/verb/mentorhelp + spawn(600) + src.verbs += /client/verb/mentorhelp // 1 minute cool-down for mentorhelps + + feedback_add_details("admin_verb","Mentorhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(current_ticket) + if(tgui_alert(usr, "You already have a ticket open. Is this for the same issue?","Duplicate?",list("Yes","No")) != "No") + if(current_ticket) + log_admin("Mentorhelp: [key_name(src)]: [msg]") + current_ticket.MessageNoRecipient(msg) + to_chat(usr, "Mentor-PM to-Mentors: [msg]") + return + else + to_chat(usr, "Ticket not found, creating new one...") + else + current_ticket.AddInteraction("[usr.ckey] opened a new ticket.") + current_ticket.Resolve() + + new /datum/ticket(msg, src, FALSE, 1) + +//admin proc +/client/proc/cmd_mentor_ticket_panel() + set name = "Mentor Ticket List" + set category = "Admin" + + var/browse_to + + switch(tgui_input_list(usr, "Display which ticket list?", "List Choice", list("Active Tickets", "Resolved Tickets"))) + if("Active Tickets") + browse_to = AHELP_ACTIVE + if("Resolved Tickets") + browse_to = AHELP_RESOLVED + else + return + + GLOB.tickets.BrowseTickets(browse_to) + +/proc/message_mentors(var/msg) + msg = "Mentor: [msg]" + + for(var/client/C in GLOB.mentors) + to_chat(C, msg) + for(var/client/C in GLOB.admins) + to_chat(C, msg) + +// +// CLIENT PROCS +// + +/client/verb/adminhelp(msg as text) + set category = "Admin" + set name = "Adminhelp" + + if(say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + + //handle muting and automuting + if(prefs.muted & MUTE_ADMINHELP) + to_chat(src, "Error: Admin-PM: You cannot send adminhelps (Muted).") + return + if(handle_spam_prevention(msg,MUTE_ADMINHELP)) + return + + if(!msg) + return + + //remove out adminhelp verb temporarily to prevent spamming of admins. + src.verbs -= /client/verb/adminhelp + spawn(1200) + src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps + + feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(current_ticket) + if(tgui_alert(usr, "You already have a ticket open. Is this for the same issue?","Duplicate?",list("Yes","No")) != "No") + if(current_ticket) + current_ticket.MessageNoRecipient(msg) + to_chat(usr, "PM to-Admins: [msg]") + return + else + to_chat(usr, "Ticket not found, creating new one...") + else + current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") + current_ticket.Close() + + new /datum/ticket(msg, src, FALSE, 0) + +//admin proc +/client/proc/cmd_admin_ticket_panel() + set name = "Show Ticket List" + set category = "Admin" + + if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT, TRUE)) + return + + var/browse_to + + switch(tgui_input_list(usr, "Display which ticket list?", "List Choice", list("Active Tickets", "Closed Tickets", "Resolved Tickets"))) + if("Active Tickets") + browse_to = AHELP_ACTIVE + if("Closed Tickets") + browse_to = AHELP_CLOSED + if("Resolved Tickets") + browse_to = AHELP_RESOLVED + else + return + + GLOB.tickets.BrowseTickets(browse_to) + +//// VOREstation Additions Below + +/datum/ticket/proc/send2adminchat() + if(!config.chat_webhook_url) + return + + var/list/adm = get_admin_counts() + var/list/afkmins = adm["afk"] + var/list/allmins = adm["total"] + + spawn(0) //Unreliable world.Exports() + var/query_string = "type=adminhelp" + query_string += "&key=[url_encode(config.chat_webhook_key)]" + query_string += "&from=[url_encode(key_name(initiator))]" + query_string += "&msg=[url_encode(html_decode(name))]" + query_string += "&admin_number=[allmins.len]" + query_string += "&admin_number_afk=[afkmins.len]" + world.Export("[config.chat_webhook_url]?[query_string]") + +/client/verb/adminspice() + set category = "Admin" + set name = "Request Spice" + set desc = "Request admins to spice round up for you" + + //handle muting and automuting + if(prefs.muted & MUTE_ADMINHELP) + to_chat(usr, "Error: You cannot request spice (muted from adminhelps).") + return + + if(tgui_alert(usr, "Are you sure you want to request the admins spice things up for you? You accept the consequences if you do.","Spicy!",list("Yes","No")) != "No") + message_admins("[ADMIN_FULLMONTY(usr)] has requested the round be spiced up a little.") + to_chat(usr, "You have requested some more spice in your round.") + else + to_chat(usr, "Spice request cancelled.") + return + + //if they requested spice, then remove spice verb temporarily to prevent spamming + usr.verbs -= /client/verb/adminspice + spawn(10 MINUTES) + if(usr) // In case we left in the 10 minute cooldown + usr.verbs += /client/verb/adminspice // 10 minute cool-down for spice request diff --git a/modular_chomp/code/modules/tickets/tickets.dm b/modular_chomp/code/modules/tickets/tickets.dm new file mode 100644 index 0000000000..9d2f9c5c55 --- /dev/null +++ b/modular_chomp/code/modules/tickets/tickets.dm @@ -0,0 +1,806 @@ +/* + +CHOMPedit - This file has been excluded from the compilation. +Reason: Replaced with "Tickets System". Main logic has been moved to: modular_chomp/modules/tickets/tickets.dm + +*/ + +/client/var/datum/ticket/current_ticket //the current ticket the (usually) not-admin client is dealing with +/client/var/datum/ticket/selected_ticket //the current ticket being viewed in the Tickets Panel (usually) admin/mentor client + +// CHOMPEdit Begin +/proc/get_ahelp_channel() + var/datum/tgs_api/v5/api = TGS_READ_GLOBAL(tgs) + if(istype(api) && config.ahelp_channel_tag) + for(var/datum/tgs_chat_channel/channel in api.chat_channels) + if(channel.custom_tag == config.ahelp_channel_tag) + return list(channel) + return 0 + +/proc/ahelp_discord_message(var/message) + if(!message) + return + if(config.discord_ahelps_disabled) + return + var/datum/tgs_chat_channel/ahelp_channel = get_ahelp_channel() + if(ahelp_channel) + world.TgsChatBroadcast(message,ahelp_channel) + else + world.TgsTargetedChatBroadcast(message,TRUE) +// CHOMPEdit End + +// +//TICKET MANAGER +// + +GLOBAL_DATUM_INIT(tickets, /datum/tickets, new) + +/datum/tickets + var/list/active_tickets = list() + var/list/closed_tickets = list() + var/list/resolved_tickets = list() + + var/obj/effect/statclick/ticket_list/astatclick = new(null, null, AHELP_ACTIVE) + var/obj/effect/statclick/ticket_list/cstatclick = new(null, null, AHELP_CLOSED) + var/obj/effect/statclick/ticket_list/rstatclick = new(null, null, AHELP_RESOLVED) + +/datum/tickets/Destroy() + QDEL_LIST(active_tickets) + QDEL_LIST(closed_tickets) + QDEL_LIST(resolved_tickets) + QDEL_NULL(astatclick) + QDEL_NULL(cstatclick) + QDEL_NULL(rstatclick) + return ..() + +//private +/datum/tickets/proc/ListInsert(datum/ticket/new_ticket) + var/list/ticket_list + switch(new_ticket.state) + if(AHELP_ACTIVE) + ticket_list = active_tickets + if(AHELP_CLOSED) + ticket_list = closed_tickets + if(AHELP_RESOLVED) + ticket_list = resolved_tickets + else + CRASH("Invalid ticket state: [new_ticket.state]") + var/num_closed = ticket_list.len + if(num_closed) + for(var/I in 1 to num_closed) + var/datum/ticket/T = ticket_list[I] + if(T.id > new_ticket.id) + ticket_list.Insert(I, new_ticket) + return + ticket_list += new_ticket + +/datum/tickets/proc/BrowseTickets(state) + tgui_interact(usr) + +//opens the ticket listings for one of the 3 states +/datum/tickets/proc/BrowseTicketsLegacy(state) + var/list/l2b + var/title + switch(state) + if(AHELP_ACTIVE) + l2b = active_tickets + title = "Active Tickets" + if(AHELP_CLOSED) + l2b = closed_tickets + title = "Closed Tickets" + if(AHELP_RESOLVED) + l2b = resolved_tickets + title = "Resolved Tickets" + if(!l2b) + return + var/list/dat = list("[title]") + dat += "Refresh

    " + for(var/datum/ticket/T as anything in l2b) + dat += "Ticket #[T.id]: [T.initiator_key_name]: [T.name]
    " + + usr << browse(dat.Join(), "window=ahelp_list[state];size=600x480") + +//Tickets statpanel +/datum/tickets/proc/stat_entry() + var/num_disconnected = 0 + stat("== Tickets ==") + stat("Active Tickets:", astatclick.update("[active_tickets.len]")) + for(var/datum/ticket/T as anything in active_tickets) + if(T.initiator) + var/type = "N/A" + switch(T.level) + if(0) + type = "ADM" + if(1) + type = "MEN" + + if(usr.client.holder || T.level > 0) + stat("\[[type]\] #[T.id]. [T.initiator_key_name]:", T.statclick.update()) + else + ++num_disconnected + if(num_disconnected) + stat("Disconnected:", astatclick.update("[num_disconnected]")) + stat("Closed Tickets:", cstatclick.update("[closed_tickets.len]")) + stat("Resolved Tickets:", rstatclick.update("[resolved_tickets.len]")) + +//Reassociate still open ticket if one exists +/datum/tickets/proc/ClientLogin(client/C) + C.current_ticket = CKey2ActiveTicket(C.ckey) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client reconnected.") + C.current_ticket.initiator = C + C.current_ticket.initiator.mob.throw_alert("open ticket", /obj/screen/alert/open_ticket) + +//Dissasociate ticket +/datum/tickets/proc/ClientLogout(client/C) + if(C.current_ticket) + C.current_ticket.AddInteraction("Client disconnected.") + C.current_ticket.initiator.mob.clear_alert("open ticket") + C.current_ticket.initiator = null + C.current_ticket = null + +//Get a ticket given a ckey +/datum/tickets/proc/CKey2ActiveTicket(ckey) + for(var/datum/ticket/T as anything in active_tickets) + if(T.initiator_ckey == ckey) + return T + +//Get a ticket by ticket id +/datum/tickets/proc/ID2Ticket(id) + if(!usr?.client.holder || !has_mentor_powers(usr?.client)) + message_admins("[usr] has attempted to look up a ticket with ID [id] without sufficent privileges.") + return + + for(var/datum/ticket/T as anything in active_tickets) + if(T.id == id) + return T + + for(var/datum/ticket/T as anything in resolved_tickets) + if(T.id == id) + return T + + for(var/datum/ticket/T as anything in closed_tickets) + if(T.id == id) + return T + +// +//TICKET LIST STATCLICK +// + +/obj/effect/statclick/ticket_list + var/current_state + +/obj/effect/statclick/ticket_list/New(loc, name, state) + current_state = state + ..() + +/obj/effect/statclick/ticket_list/Click() + GLOB.tickets.BrowseTickets(current_state) + +// +//TICKET DATUM +// + +/datum/ticket + var/id + var/name + var/level = 0 // 0 = Admin, 1 = Mentor + var/list/tags + var/state = AHELP_ACTIVE + + var/opened_at + var/closed_at + + var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked + var/handler = "/Unassigned\\" // The admin handling the ticket + var/initiator_ckey + var/initiator_key_name + + var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log() + + var/obj/effect/statclick/ticket/statclick + + var/static/ticket_counter = 0 + +/* +//call this on its own to create a ticket, don't manually assign current_mentorhelp +//msg is the title of the ticket: usually the ahelp text +/datum/mentor_help/New(msg, client/C) + initiator_ckey = C.ckey + initiator_key_name = key_name(initiator, FALSE, TRUE) + if(initiator.current_mentorhelp) //This is a bug + log_debug("Ticket erroneously left open by code") + initiator.current_mentorhelp.AddInteraction("Ticket erroneously left open by code") + initiator.current_mentorhelp.Resolve() + initiator.current_mentorhelp = src + statclick = new(null, src) + _interactions = list() + log_admin("Mentorhelp: [key_name(C)]: [msg]") + MessageNoRecipient(msg) + //show it to the person adminhelping too + to_chat(C, "Mentor-PM to-Mentors: [name]") + GLOB.mhelp_tickets.active_tickets += src */ + +/** + * public + * + * Create a new Ticket. + * Call this on its own to create a ticket, don't manually assign current_ticket + * + * required msg string The title of the ticket: usually the ahelp text + * required C client The object or datum which owns the UI. + * required is_bwoink boolean TRUE if this ticket was started by an admin PM + * required level integer The level of the ticket. 0 = Admin, 1 = Mentor + */ +/datum/ticket/New(msg, client/C, is_bwoink, ticket_level) + //clean the input msg + msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) + if(!msg || !C || !C.mob) + qdel(src) + return + + id = ++ticket_counter + opened_at = world.time + + name = msg + + level = ticket_level + + initiator = C + initiator_ckey = initiator.ckey + initiator_key_name = key_name(initiator, FALSE, TRUE) + if(initiator.current_ticket) //This is a bug + log_debug("Multiple ahelp current_tickets") + initiator.current_ticket.AddInteraction("Ticket erroneously left open by code") + initiator.current_ticket.Close() + initiator.current_ticket = src + + var/parsed_message = keywords_lookup(msg) + + statclick = new(null, src) + _interactions = list() + + if(is_bwoink) + AddInteraction("[key_name_admin(usr)] PM'd [LinkedReplyName()]") + message_admins("Ticket [TicketHref("#[id]")] created") + else + MessageNoRecipient(parsed_message) + send2adminchat() //VOREStation Add + //show it to the person adminhelping too + to_chat(C, "PM to-Admins: [name]") + + //send it to irc if nobody is on and tell us how many were on + var/admin_number_present = send2irc_adminless_only(initiator_ckey, name) + log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") + if(admin_number_present <= 0) + to_chat(C, "No active admins are online, your adminhelp was sent to the admin discord.") //VOREStation Edit + send2adminchat() //VOREStation Add + //YW EDIT START + var/list/adm = get_admin_counts() + var/list/activemins = adm["present"] + var activeMins = activemins.len + if(is_bwoink) + ahelp_discord_message("ADMINHELP: FROM: [key_name_admin(usr)] TO [initiator_ckey]/[initiator_key_name] - MSG: **[msg]** - Heard by [activeMins] NON-AFK staff members.") //CHOMPEdit + else + ahelp_discord_message("ADMINHELP: FROM: [initiator_ckey]/[initiator_key_name] - MSG: **[msg]** - Heard by [activeMins] NON-AFK staff members.") //CHOMPEdit + //YW EDIT END + + // Also send it to discord since that's the hip cool thing now. + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) ticket opened.", + "body" = "[key_name(initiator)] has opened a ticket. \n[msg]", + "color" = COLOR_WEBHOOK_POOR + ) + ) + + GLOB.tickets.active_tickets += src + + // Open a new chat with the user + //var/datum/ticket_chat/TC = new() + //TC.T = src + //TC.tgui_interact(C.mob) + C.mob.throw_alert("open ticket", /obj/screen/alert/open_ticket) + +/datum/ticket/Destroy() + RemoveActive() + GLOB.tickets.closed_tickets -= src + GLOB.tickets.resolved_tickets -= src + return ..() + +/datum/ticket/proc/AddInteraction(formatted_message) + var/curinteraction = "[gameTimestamp()]: [formatted_message]" + if(config.discord_ahelps_all) //CHOMPEdit + ahelp_discord_message("ADMINHELP: TICKETID:[id] [strip_html_properly(curinteraction)]") //CHOMPEdit + _interactions += curinteraction + +/datum/ticket/proc/TicketPanel() + tgui_interact(usr.client.mob) + +//private +/datum/ticket/proc/FullMonty(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + if(initiator && initiator.mob) + . = ADMIN_FULLMONTY_NONAME(initiator.mob) + else + . = "Initiator disconnected." + if(state == AHELP_ACTIVE) + . += ClosureLinks(ref_src) + +//private +/datum/ticket/proc/ClosureLinks(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + + if(level == 0) + . = " (REJT)" + . += " (IC)" + . += " (CLOSE)" + . += " (RSLVE)" + . += " (HANDLE)" + else + . = " (RSLVE)" + +//private +/datum/ticket/proc/LinkedReplyName(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + return "[initiator_key_name]" + +//private +/datum/ticket/proc/TicketHref(msg, ref_src, action = "ticket") + if(!ref_src) + ref_src = "\ref[src]" + return "[msg]" + +/* + var/chat_msg = "(ESCALATE) Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)]: [msg]" + */ + +//message from the initiator without a target, all admins will see this +//won't bug irc +/datum/ticket/proc/MessageNoRecipient(msg) + var/ref_src = "\ref[src]" + var/chat_msg = "Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]: [msg]" + + AddInteraction("[LinkedReplyName(ref_src)]: [msg]") + //send this msg to all admins + + if(level == 1) + for (var/client/C in GLOB.mentors) + if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) + C << 'sound/effects/mentorhelp.mp3' + for (var/client/C in GLOB.admins) + if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) + C << 'sound/effects/mentorhelp.mp3' + message_mentors(chat_msg) + else if(level == 0) + for(var/client/X in GLOB.admins) + if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + X << 'sound/effects/adminhelp.ogg' + window_flash(X) + to_chat(X, chat_msg) + +/* +//Reopen a closed ticket +/datum/mentor_help/proc/Reopen() + switch(state) + if(AHELP_RESOLVED) + feedback_dec("mhelp_resolve") + AddInteraction("Reopened by [usr.ckey]") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was reopened by [usr.ckey].") + var/msg = "Ticket [TicketHref("#[id]")] reopened by [usr.ckey]." + message_mentors(msg) + log_admin(msg) + */ + +//Reopen a closed ticket +/datum/ticket/proc/Reopen() + if(state == AHELP_ACTIVE) + to_chat(usr, "This ticket is already open.") + return + + if(GLOB.tickets.CKey2ActiveTicket(initiator_ckey)) + to_chat(usr, "This user already has an active ticket, cannot reopen this one.") + return + + statclick = new(null, src) + GLOB.tickets.active_tickets += src + GLOB.tickets.closed_tickets -= src + GLOB.tickets.resolved_tickets -= src + switch(state) + if(AHELP_CLOSED) + feedback_dec("ticket_close") + if(AHELP_RESOLVED) + feedback_dec("ticket_resolve") + state = AHELP_ACTIVE + closed_at = null + if(initiator) + initiator.current_ticket = src + + AddInteraction("Reopened by [key_name_admin(usr)]") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was reopened by [key_name(usr,FALSE,FALSE)].") + var/msg = "Ticket [TicketHref("#[id]")] reopened by [key_name_admin(usr)]." + message_admins(msg) + log_admin(msg) + feedback_inc("ticket_reopen") + //TicketPanel() //can only be done from here, so refresh it + + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) reopened.", + "body" = "Reopened by [key_name(usr)]." + ) + ) + +//private +/datum/ticket/proc/RemoveActive() + if(state != AHELP_ACTIVE) + return + closed_at = world.time + QDEL_NULL(statclick) + GLOB.tickets.active_tickets -= src + if(initiator && initiator.current_ticket == src) + initiator.current_ticket = null + +//Mark open ticket as closed/meme +/datum/ticket/proc/Close(silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_CLOSED + GLOB.tickets.ListInsert(src) + AddInteraction("Closed by [key_name_admin(usr)].") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was closed by [key_name(usr,FALSE,FALSE)].") + if(!silent) + feedback_inc("ahelp_close") + var/msg = "Ticket [TicketHref("#[id]")] closed by [key_name_admin(usr)]." + message_admins(msg) + log_admin(msg) + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) closed.", + "body" = "Closed by [key_name(usr)].", + "color" = COLOR_WEBHOOK_BAD + ) + ) + initiator?.mob?.clear_alert("open ticket") + +//Mark open ticket as resolved/legitimate, returns ahelp verb +/datum/ticket/proc/Resolve(silent = FALSE) + if(state != AHELP_ACTIVE) + return + RemoveActive() + state = AHELP_RESOLVED + GLOB.tickets.ListInsert(src) + + AddInteraction("Resolved by [key_name_admin(usr)].") + if(initiator) + to_chat(initiator, "Ticket [TicketHref("#[id]")] was marked resolved by [key_name(usr,FALSE,FALSE)].") + if(!silent) + feedback_inc("ticket_resolve") + var/msg = "Ticket [TicketHref("#[id]")] resolved by [key_name_admin(usr)]" + if(type == 1) + message_mentors(msg) + else if (type == 0) + message_admins(msg) + + log_admin(msg) + if(type == 1) + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) resolved.", + "body" = "Marked as Resolved by [key_name(usr)].", + "color" = COLOR_WEBHOOK_GOOD + ) + ) + initiator?.mob?.clear_alert("open ticket") + +//Close and return ahelp verb, use if ticket is incoherent +/datum/ticket/proc/Reject(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + if(initiator) + if(initiator.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + initiator << 'sound/effects/adminhelp.ogg' + + to_chat(initiator, "- AdminHelp Rejected! -
    \ + Your admin help was rejected.
    \ + Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting.
    ") + + feedback_inc("ahelp_reject") + var/msg = "Ticket [TicketHref("#[id]")] rejected by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + AddInteraction("Rejected by [key_name_admin(usr)].") + Close(silent = TRUE) + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) rejected.", + "body" = "Rejected by [key_name(usr)].", + "color" = COLOR_WEBHOOK_BAD + ) + ) + +//Resolve ticket with IC Issue message +/datum/ticket/proc/ICIssue(key_name = key_name_admin(usr)) + if(state != AHELP_ACTIVE) + return + + var/msg = "- AdminHelp marked as IC issue! -
    " + msg += "This is something that can be solved ICly, and does not currently require staff intervention.
    " + msg += "Your AdminHelp may also be unanswerable due to ongoing events.
    " + + if(initiator) + to_chat(initiator, msg) + + feedback_inc("ahelp_icissue") + msg = "Ticket [TicketHref("#[id]")] marked as IC by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + AddInteraction("Marked as IC issue by [key_name_admin(usr)]") + Resolve(silent = TRUE) + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) marked as IC issue.", + "body" = "Marked as IC Issue by [key_name(usr)].", + "color" = COLOR_WEBHOOK_BAD + ) + ) + +//Resolve ticket with IC Issue message +/datum/ticket/proc/HandleIssue() + if(state != AHELP_ACTIVE) + return + + if(handler == key_name(usr, FALSE, TRUE)) + to_chat("You are already handling this ticket.") + return + + var/msg = "Your AdminHelp is being handled by [key_name(usr,FALSE,FALSE)] please be patient." + + if(initiator) + to_chat(initiator, msg) + + feedback_inc("ahelp_handling") + msg = "Ticket [TicketHref("#[id]")] being handled by [key_name(usr,FALSE,FALSE)]" + message_admins(msg) + log_admin(msg) + AddInteraction("[key_name_admin(usr)] is now handling this ticket.") + handler = key_name(usr, FALSE, TRUE) + SSwebhooks.send( + WEBHOOK_AHELP_SENT, + list( + "name" = "Ticket ([id]) (Game ID: [game_id]) being handled.", + "body" = "[key_name(usr)] is now handling the ticket." + ) + ) + +/datum/ticket/proc/Retitle() + var/new_title = tgui_input_text(usr, "Enter a title for the ticket", "Rename Ticket", name) + if(new_title) + name = new_title + //not saying the original name cause it could be a long ass message + var/msg = "Ticket [TicketHref("#[id]")] titled [name] by [key_name_admin(usr)]" + message_admins(msg) + log_admin(msg) + //TicketPanel() //we have to be here to do this + +//Kick ticket to next level +/datum/ticket/proc/Escalate() + if(tgui_alert(usr, "Really escalate this ticket to admins? No mentors will ever be able to interact with it again if you do.","Escalate",list("Yes","No")) != "Yes") + return + if (src.initiator == null) // You can't escalate a mentorhelp of someone who's logged out because it won't create the adminhelp properly + to_chat(usr, "Error: client not found, unable to escalate.") + return + + level = level - 1 + + message_mentors("[usr.ckey] escalated Ticket [TicketHref("#[id]")]") + log_admin("[key_name(usr)] escalated ticket [src.name]") + to_chat(src.initiator, "[usr.ckey] escalated your ticket to admins.") + +/datum/ticket/proc/Context(ref_src) + if(!ref_src) + ref_src = "\ref[src]" + if(state == AHELP_ACTIVE) + . += ClosureLinks(ref_src) + if(state != AHELP_RESOLVED) + . += " (ESCALATE)" + +//Forwarded action from admin/Topic +/datum/ticket/proc/Action(action) + testing("Ahelp action: [action]") + switch(action) + if("ticket") + TicketPanel() + if("retitle") + Retitle() + if("reject") + Reject() + if("reply") + usr.client.cmd_ahelp_reply(initiator) + if("icissue") + ICIssue() + if("close") + Close() + if("resolve") + Resolve() + if("handleissue") + HandleIssue() + if("reopen") + Reopen() + if("escalate") + Escalate() + +// +// TICKET STATCLICK +// + +/obj/effect/statclick/ticket + var/datum/ticket/ticket_datum + +/obj/effect/statclick/ticket/New(loc, datum/ticket/T) + ticket_datum = T + ..(loc) + +/obj/effect/statclick/ticket/update() + return ..(ticket_datum.name) + +/obj/effect/statclick/ticket/Click() + ticket_datum.TicketPanel() + +/obj/effect/statclick/ticket/Destroy() + ticket_datum = null + return ..() + +// +// LOGGING +// + +//Use this proc when an admin takes action that may be related to an open ticket on what +//what can be a client, ckey, or mob +/proc/admin_ticket_log(what, message) + var/client/C + var/mob/Mob = what + if(istype(Mob)) + C = Mob.client + else + C = what + if(istype(C) && C.current_ticket) + C.current_ticket.AddInteraction(message) + return C.current_ticket + if(istext(what)) //ckey + var/datum/ticket/T = GLOB.tickets.CKey2ActiveTicket(what) + if(T) + T.AddInteraction(message) + return T + +// +// HELPER PROCS +// + +/proc/get_admin_counts(requiredflags = R_BAN) + . = list("total" = list(), "noflags" = list(), "afk" = list(), "stealth" = list(), "present" = list()) + for(var/client/X in GLOB.admins) + .["total"] += X + if(requiredflags != 0 && !check_rights(rights_required = requiredflags, show_msg = FALSE, C = X)) + .["noflags"] += X + else if(X.is_afk()) + .["afk"] += X + else if(X.holder.fakekey) + .["stealth"] += X + else + .["present"] += X + +/proc/send2irc_adminless_only(source, msg, requiredflags = R_BAN) + var/list/adm = get_admin_counts() + var/list/activemins = adm["present"] + . = activemins.len + if(. <= 0) + var/final = "" + var/list/afkmins = adm["afk"] + var/list/stealthmins = adm["stealth"] + var/list/powerlessmins = adm["noflags"] + var/list/allmins = adm["total"] + if(!afkmins.len && !stealthmins.len && !powerlessmins.len) + final = "[msg] - No admins online" + else + final = "[msg] - All admins stealthed\[[english_list(stealthmins)]\], AFK\[[english_list(afkmins)]\], or lacks +BAN\[[english_list(powerlessmins)]\]! Total: [allmins.len] " + send2irc(source,final) + +/proc/ircadminwho() + var/list/message = list("Admins: ") + var/list/admin_keys = list() + for(var/client/C as anything in GLOB.admins) + admin_keys += "[C][C.holder.fakekey ? "(Stealth)" : ""][C.is_afk() ? "(AFK)" : ""]" + + for(var/admin in admin_keys) + if(LAZYLEN(admin_keys) > 1) + message += ", [admin]" + else + message += "[admin]" + + return jointext(message, "") + +/proc/keywords_lookup(msg,irc) + + //This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE! + var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i") + + //explode the input msg into a list + var/list/msglist = splittext(msg, " ") + + //generate keywords lookup + var/list/surnames = list() + var/list/forenames = list() + var/list/ckeys = list() + var/founds = "" + for(var/mob/M in mob_list) + var/list/indexing = list(M.real_name, M.name) + if(M.mind) + indexing += M.mind.name + + for(var/string in indexing) + var/list/L = splittext(string, " ") + var/surname_found = 0 + //surnames + for(var/i=L.len, i>=1, i--) + var/word = ckey(L[i]) + if(word) + surnames[word] = M + surname_found = i + break + //forenames + for(var/i=1, i(?|F) " + continue + msg += "[original_word] " + if(irc) + if(founds == "") + return "Search Failed" + else + return founds + + return msg diff --git a/modular_chomp/code/modules/tickets/tickets_player_ui.dm b/modular_chomp/code/modules/tickets/tickets_player_ui.dm new file mode 100644 index 0000000000..d1597c17ab --- /dev/null +++ b/modular_chomp/code/modules/tickets/tickets_player_ui.dm @@ -0,0 +1,44 @@ +// +//PLAYERSIDE TICKET UI +// + +/datum/ticket_chat + var/datum/ticket/T + +/datum/ticket_chat/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TicketChat", "Ticket #[T.id] - [T.LinkedReplyName("\ref[T]")]") + ui.open() + user.clear_alert("open ticket") + +/datum/ticket_chat/tgui_close(mob/user) + . = ..() + if(user.client.current_ticket) + user.throw_alert("open ticket", /obj/screen/alert/open_ticket) + +/datum/ticket_chat/tgui_state(mob/user) + return GLOB.tgui_ticket_state + +/datum/ticket_chat/tgui_data(mob/user) + var/list/data = list() + + data["id"] = T.id + + data["level"] = T.level + data["handler"] = T.handler + + data["log"] = T._interactions + + return data + +/datum/ticket_chat/tgui_act(action, params) + if(..()) + return + switch(action) + if("send_msg") + if(!params["msg"]) + return + + usr.client.cmd_admin_pm(usr.client, sanitize(params["msg"]), T) + . = TRUE diff --git a/modular_chomp/code/modules/tickets/tickets_ui.dm b/modular_chomp/code/modules/tickets/tickets_ui.dm new file mode 100644 index 0000000000..b434d72a7a --- /dev/null +++ b/modular_chomp/code/modules/tickets/tickets_ui.dm @@ -0,0 +1,340 @@ +// +//TICKET MANAGER +// + +/datum/tickets/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TicketsPanel", "Tickets") + ui.open() + +/datum/tickets/tgui_state(mob/user) + return GLOB.tgui_admin_state + +/datum/tickets/proc/get_ticket_state(state) + var/ticket_state + switch(state) + if(AHELP_ACTIVE) + ticket_state = "open" + // TODO: Mentor tickets cannot be resolved + if(AHELP_RESOLVED) + ticket_state = "resolved" + if(AHELP_CLOSED) + ticket_state = "closed" + else + ticket_state = "unknown" + + return ticket_state + +/datum/tickets/tgui_data(mob/user) + var/list/data = list() + var/list/tickets = list() + + var/selected_ticket = null + + if(user.client.selected_ticket) + var/datum/ticket/T = user.client.selected_ticket + selected_ticket = list( + "id" = T.id, + "name" = T.LinkedReplyName(), + "state" = get_ticket_state(T.state), + "level" = T.level, + "handler" = T.handler, + "opened_at" = (world.time - T.opened_at), + "closed_at" = (world.time - T.closed_at), + "opened_at_date" = gameTimestamp(wtime = T.opened_at), + "closed_at_date" = gameTimestamp(wtime = T.closed_at), + "actions" = T.FullMonty(), + "log" = T._interactions, + ) + + for(var/datum/ticket/T as anything in GLOB.tickets.active_tickets) + if(user.client.holder || (has_mentor_powers(user.client) && T.level > 0)) + tickets.Add(list(list( + "id" = T.id, + "name" = T.initiator_key_name, + "state" = get_ticket_state(T.state), + "level" = T.level, + "handler" = T.handler, + "opened_at" = (world.time - T.opened_at), + "closed_at" = (world.time - T.closed_at), + "opened_at_date" = gameTimestamp(wtime = T.opened_at), + "closed_at_date" = gameTimestamp(wtime = T.closed_at), + ))) + + for(var/datum/ticket/T as anything in GLOB.tickets.closed_tickets) + if(user.client.holder || (has_mentor_powers(user.client) && T.level > 0)) + tickets.Add(list(list( + "id" = T.id, + "name" = T.initiator_key_name, + "state" = get_ticket_state(T.state), + "level" = T.level, + "handler" = T.handler, + "opened_at" = (world.time - T.opened_at), + "closed_at" = (world.time - T.closed_at), + "opened_at_date" = gameTimestamp(wtime = T.opened_at), + "closed_at_date" = gameTimestamp(wtime = T.closed_at), + ))) + + for(var/datum/ticket/T as anything in GLOB.tickets.resolved_tickets) + if(user.client.holder || (has_mentor_powers(user.client) && T.level > 0)) + tickets.Add(list(list( + "id" = T.id, + "name" = T.initiator_key_name, + "state" = get_ticket_state(T.state), + "level" = T.level, + "handler" = T.handler, + "opened_at" = (world.time - T.opened_at), + "closed_at" = (world.time - T.closed_at), + "opened_at_date" = gameTimestamp(wtime = T.opened_at), + "closed_at_date" = gameTimestamp(wtime = T.closed_at), + ))) + data["tickets"] = tickets + + data["selected_ticket"] = selected_ticket + + return data + +/datum/tickets/tgui_act(action, params, datum/tgui/ui) + if(..()) + return + switch(action) + if("legacy") + var/choice = tgui_input_list(usr, "Which tickets do you want to list?", "Tickets", list("Active", "Closed", "Resolved")) + TicketListLegacy(choice) + . = TRUE + if("new_ticket") + var/list/ckeys = list() + for(var/client/C in GLOB.clients) + ckeys += C.key + + var/ckey = lowertext(tgui_input_list(usr, "Please select the ckey of the user.", "Select CKEY", ckeys)) + if(!ckey) + return + + var/client/player + for(var/client/C in GLOB.clients) + if(C.ckey == ckey) + player = C + + if(!player) + to_chat(usr, "Ckey ([ckey]) not online.") + return + + var/ticket_text = tgui_input_text(usr, "What should the initial text be?", "New Ticket") + if(!ticket_text) + to_chat(usr, "Ticket message cannot be empty.") + return + + var/level = tgui_alert(usr, "Is this ticket Admin-Level or Mentor-Level?", "Ticket Level", list("Admin", "Mentor")) + if(!level) + return + + feedback_add_details("admin_verb","Admincreatedticket") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(player.current_ticket) + if(tgui_alert(usr, "The player already has a ticket open. Is this for the same issue?","Duplicate?",list("Yes","No")) != "No") + if(player.current_ticket) + player.current_ticket.MessageNoRecipient(ticket_text) + to_chat(usr, "PM to-Admins: [ticket_text]") + return + else + to_chat(usr, "Ticket not found, creating new one...") + else + player.current_ticket.AddInteraction("[key_name_admin(usr)] opened a new ticket.") + player.current_ticket.Close() + + // Create a new ticket and handle it. You created it afterall! + var/datum/ticket/T = new /datum/ticket(ticket_text, player, TRUE, level) + if(level == "Admin") + T.level = 0 + else + T.level = 1 + T.HandleIssue() + usr.client.cmd_admin_pm(player, ticket_text, T) + . = TRUE + if("pick_ticket") + var/datum/ticket/T = ID2Ticket(params["ticket_id"]) + usr.client.selected_ticket = T + . = TRUE + if("retitle_ticket") + usr.client.selected_ticket.Retitle() + . = TRUE + if("reopen_ticket") + usr.client.selected_ticket.Reopen() + . = TRUE + if("undock_ticket") + usr.client.selected_ticket.tgui_interact(usr) + usr.client.selected_ticket = null + . = TRUE + if("send_msg") + if(!params["msg"]) + return + + usr.client.cmd_admin_pm(usr.client.selected_ticket.initiator, sanitize(params["msg"]), usr.client.selected_ticket) + . = TRUE + +/datum/tickets/tgui_fallback(payload) + if(..()) + return + + var/choice = tgui_input_list(usr, "Which tickets do you want to list?", "Tickets", list("Active", "Closed", "Resolved")) + + TicketListLegacy(choice) + +// +//TICKET DATUM +// + +/datum/ticket/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Ticket", "Ticket #[id] - [LinkedReplyName("\ref[src]")]") + ui.open() + +/datum/ticket/tgui_state(mob/user) + return GLOB.tgui_admin_state + +/datum/ticket/tgui_data(mob/user) + var/list/data = list() + + data["id"] = id + + var/ref_src = "\ref[src]" + data["title"] = name + data["name"] = LinkedReplyName(ref_src) + data["ticket_ref"] = ref_src + + switch(state) + if(AHELP_ACTIVE) + data["state"] = "open" + // TODO: Mentor tickets cannot be resolved + if(AHELP_RESOLVED) + data["state"] = "resolved" + if(AHELP_CLOSED) + data["state"] = "closed" + else + data["state"] = "unknown" + + data["level"] = level + data["handler"] = handler + + data["opened_at"] = (world.time - opened_at) + data["closed_at"] = (world.time - closed_at) + data["opened_at_date"] = gameTimestamp(wtime = opened_at) + data["closed_at_date"] = gameTimestamp(wtime = closed_at) + + data["actions"] = FullMonty(ref_src) + + data["log"] = _interactions + + return data + +/datum/ticket/tgui_act(action, params) + if(..()) + return + switch(action) + if("retitle") + Retitle() + . = TRUE + if("reopen") + Reopen() + . = TRUE + if("legacy") + TicketPanelLegacy() + . = TRUE + if("send_msg") + if(!params["msg"] || !params["ticket_ref"]) + return + + var/datum/ticket/T = locate(params["ticket_ref"]) + + usr.client.cmd_admin_pm(T.initiator, sanitize(params["msg"]), T) + . = TRUE + +/datum/ticket/tgui_fallback(payload) + if(..()) + return + + TicketPanelLegacy() + +/* +/datum/mentor_help/proc/TicketPanelLegacy() + var/list/dat = list("Ticket #[id]") + var/ref_src = "\ref[src]" + dat += "

    Mentor Help Ticket #[id]: [LinkedReplyName(ref_src)]

    " + dat += "State: " + switch(state) + if(AHELP_ACTIVE) + dat += "OPEN" + if(AHELP_RESOLVED) + dat += "RESOLVED" + else + dat += "UNKNOWN" + dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)]" + if(state != AHELP_ACTIVE) + dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]" + dat += "

    Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)" + if(closed_at) + dat += "
    Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)" + dat += "

    " + if(initiator) + dat += "Actions: [Context(ref_src)]
    " + else + dat += "DISCONNECTED[GLOB.TAB][ClosureLinks(ref_src)]
    " + dat += "
    Log:

    " + for(var/I in _interactions) + dat += "[I]
    " + usr << browse(dat.Join(), "window=mhelp[id];size=620x480") */ + +/datum/ticket/proc/TicketPanelLegacy() + var/list/dat = list("Ticket #[id]") + var/ref_src = "\ref[src]" + dat += "

    Ticket #[id]: [LinkedReplyName(ref_src)]

    " + dat += "State: " + switch(state) + if(AHELP_ACTIVE) + dat += "OPEN" + if(AHELP_RESOLVED) + dat += "RESOLVED" + if(AHELP_CLOSED) + dat += "CLOSED" + else + dat += "UNKNOWN" + dat += "[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]" + if(state != AHELP_ACTIVE) + dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]" + dat += "

    Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)" + if(closed_at) + dat += "
    Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)" + dat += "

    " + if(initiator) + dat += "Actions: [FullMonty(ref_src)]
    " + else + dat += "DISCONNECTED[GLOB.TAB][ClosureLinks(ref_src)]
    " + dat += "
    Log:

    " + for(var/I in _interactions) + dat += "[I]
    " + + usr << browse(dat.Join(), "window=ahelp[id];size=620x480") + +/datum/tickets/proc/TicketListLegacy(var/state) + var/list/dat = list("[state] Tickets") + var/tickets_found = 0 + + if(state == "Active") + for(var/datum/ticket/T as anything in GLOB.tickets.active_tickets) + dat += "[T.level == 0 ? "Adminhelp" : "Mentorhelp"] - [T.TicketHref("#[T.id] - [T.initiator_ckey]: [T.name]")]" + tickets_found++ + else if(state == "Closed") + for(var/datum/ticket/T as anything in GLOB.tickets.closed_tickets) + dat += "[T.level == 0 ? "Adminhelp" : "Mentorhelp"] - [T.TicketHref("#[T.id] - [T.initiator_ckey]: [T.name]")]" + tickets_found++ + else if(state == "Resolved") + for(var/datum/ticket/T as anything in GLOB.tickets.resolved_tickets) + dat += "[T.level == 0 ? "Adminhelp" : "Mentorhelp"] - [T.TicketHref("#[T.id] - [T.initiator_ckey]: [T.name]")]" + tickets_found++ + + if(tickets_found == 0) + dat += "No [state] tickets found." + + usr << browse(dat.Join(), "window=ahelp-list;size=250x350") diff --git a/modular_chomp/icons/logo.dmi b/modular_chomp/icons/logo.dmi new file mode 100644 index 0000000000..4b04032a89 Binary files /dev/null and b/modular_chomp/icons/logo.dmi differ diff --git a/modular_chomp/icons/mob/human_races/markings_vox.dmi b/modular_chomp/icons/mob/human_races/markings_vox.dmi new file mode 100644 index 0000000000..f1ff89601c Binary files /dev/null and b/modular_chomp/icons/mob/human_races/markings_vox.dmi differ diff --git a/modular_chomp/icons/mob/screen_full_vore_ch.dmi b/modular_chomp/icons/mob/screen_full_vore_ch.dmi index fa67b27af4..fd055241e7 100644 Binary files a/modular_chomp/icons/mob/screen_full_vore_ch.dmi and b/modular_chomp/icons/mob/screen_full_vore_ch.dmi differ diff --git a/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt b/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt index 700d34f185..46d6932a71 100644 --- a/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt +++ b/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt @@ -36,4 +36,10 @@ VBO_maw11 FishyBoner: VBO_maw12 -VBO_trash \ No newline at end of file +VBO_trash + +original art by kernelDecoy (used with permission) with edits by kcin2001: +https://twitter.com/kernelDecoy/status/1447387990762954757 +VBO_foot +https://www.furaffinity.net/view/51185745/ +VBO_paw diff --git a/modular_chomp/icons/mob/spacesuit_ch.dmi b/modular_chomp/icons/mob/spacesuit_ch.dmi index 6bca12a237..221eb0fe91 100644 Binary files a/modular_chomp/icons/mob/spacesuit_ch.dmi and b/modular_chomp/icons/mob/spacesuit_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/fennec/suit_ch.dmi b/modular_chomp/icons/mob/species/fennec/suit_ch.dmi index 5fc6e3ee72..4349a3744b 100644 Binary files a/modular_chomp/icons/mob/species/fennec/suit_ch.dmi and b/modular_chomp/icons/mob/species/fennec/suit_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/fox/suit_ch.dmi b/modular_chomp/icons/mob/species/fox/suit_ch.dmi index ac59cb9ed7..810db7ab39 100644 Binary files a/modular_chomp/icons/mob/species/fox/suit_ch.dmi and b/modular_chomp/icons/mob/species/fox/suit_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/tajaran/suit_ch.dmi b/modular_chomp/icons/mob/species/tajaran/suit_ch.dmi index 9e6686a3ed..418883f42a 100644 Binary files a/modular_chomp/icons/mob/species/tajaran/suit_ch.dmi and b/modular_chomp/icons/mob/species/tajaran/suit_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/unathi/suit_ch.dmi b/modular_chomp/icons/mob/species/unathi/suit_ch.dmi index 3791dd21bc..daf992d7db 100644 Binary files a/modular_chomp/icons/mob/species/unathi/suit_ch.dmi and b/modular_chomp/icons/mob/species/unathi/suit_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/vulpkanin/suit_ch.dmi b/modular_chomp/icons/mob/species/vulpkanin/suit_ch.dmi index 7b80b2b6e7..7bb9ac940b 100644 Binary files a/modular_chomp/icons/mob/species/vulpkanin/suit_ch.dmi and b/modular_chomp/icons/mob/species/vulpkanin/suit_ch.dmi differ diff --git a/modular_chomp/icons/mob/vore_fullscreens/VBO_foot.dmi b/modular_chomp/icons/mob/vore_fullscreens/VBO_foot.dmi new file mode 100644 index 0000000000..afa34bbf9f Binary files /dev/null and b/modular_chomp/icons/mob/vore_fullscreens/VBO_foot.dmi differ diff --git a/modular_chomp/icons/mob/vore_fullscreens/VBO_paw.dmi b/modular_chomp/icons/mob/vore_fullscreens/VBO_paw.dmi new file mode 100644 index 0000000000..d36ac005eb Binary files /dev/null and b/modular_chomp/icons/mob/vore_fullscreens/VBO_paw.dmi differ diff --git a/modular_chomp/sound/effects/comp_alert_clear.ogg b/modular_chomp/sound/effects/comp_alert_clear.ogg new file mode 100644 index 0000000000..9bbce3892b Binary files /dev/null and b/modular_chomp/sound/effects/comp_alert_clear.ogg differ diff --git a/modular_chomp/sound/effects/comp_alert_major.ogg b/modular_chomp/sound/effects/comp_alert_major.ogg new file mode 100644 index 0000000000..093bb58016 Binary files /dev/null and b/modular_chomp/sound/effects/comp_alert_major.ogg differ diff --git a/modular_chomp/sound/effects/comp_alert_minor.ogg b/modular_chomp/sound/effects/comp_alert_minor.ogg new file mode 100644 index 0000000000..94d60aa81a Binary files /dev/null and b/modular_chomp/sound/effects/comp_alert_minor.ogg differ diff --git a/modular_chomp/sound/items/open.ogg b/modular_chomp/sound/items/open.ogg new file mode 100644 index 0000000000..cad742f1bf Binary files /dev/null and b/modular_chomp/sound/items/open.ogg differ diff --git a/modular_chomp/sound/machines/console_power_on.ogg b/modular_chomp/sound/machines/console_power_on.ogg new file mode 100644 index 0000000000..3d57a202cd Binary files /dev/null and b/modular_chomp/sound/machines/console_power_on.ogg differ diff --git a/modular_chomp/sound/machines/shield_hum/shield_generator_hum1.ogg b/modular_chomp/sound/machines/shield_hum/shield_generator_hum1.ogg new file mode 100644 index 0000000000..c02d0dcbfa Binary files /dev/null and b/modular_chomp/sound/machines/shield_hum/shield_generator_hum1.ogg differ diff --git a/modular_chomp/sound/machines/shield_hum/shield_generator_hum2.ogg b/modular_chomp/sound/machines/shield_hum/shield_generator_hum2.ogg new file mode 100644 index 0000000000..84682a7d93 Binary files /dev/null and b/modular_chomp/sound/machines/shield_hum/shield_generator_hum2.ogg differ diff --git a/modular_chomp/sound/machines/shield_hum/shield_generator_hum3.ogg b/modular_chomp/sound/machines/shield_hum/shield_generator_hum3.ogg new file mode 100644 index 0000000000..d082b6219d Binary files /dev/null and b/modular_chomp/sound/machines/shield_hum/shield_generator_hum3.ogg differ diff --git a/modular_chomp/sound/machines/shield_hum/shield_generator_hum4.ogg b/modular_chomp/sound/machines/shield_hum/shield_generator_hum4.ogg new file mode 100644 index 0000000000..a2a217341e Binary files /dev/null and b/modular_chomp/sound/machines/shield_hum/shield_generator_hum4.ogg differ diff --git a/modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg b/modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg new file mode 100644 index 0000000000..f4cb4230d6 Binary files /dev/null and b/modular_chomp/sound/machines/shield_hum/shield_generator_whir.ogg differ diff --git a/sound/effects/mob_effects/on_fire/fire_extinguish.ogg b/sound/effects/mob_effects/on_fire/fire_extinguish.ogg new file mode 100644 index 0000000000..749e5975fb Binary files /dev/null and b/sound/effects/mob_effects/on_fire/fire_extinguish.ogg differ diff --git a/sound/effects/mob_effects/on_fire/fire_extinguish2.ogg b/sound/effects/mob_effects/on_fire/fire_extinguish2.ogg new file mode 100644 index 0000000000..85f104d8ac Binary files /dev/null and b/sound/effects/mob_effects/on_fire/fire_extinguish2.ogg differ diff --git a/sound/effects/mob_effects/on_fire/fire_extinguish3.ogg b/sound/effects/mob_effects/on_fire/fire_extinguish3.ogg new file mode 100644 index 0000000000..e26937d7f2 Binary files /dev/null and b/sound/effects/mob_effects/on_fire/fire_extinguish3.ogg differ diff --git a/sound/effects/mob_effects/on_fire/fire_extinguish4.ogg b/sound/effects/mob_effects/on_fire/fire_extinguish4.ogg new file mode 100644 index 0000000000..121d22de73 Binary files /dev/null and b/sound/effects/mob_effects/on_fire/fire_extinguish4.ogg differ diff --git a/sound/effects/mob_effects/on_fire/on_fire_loop.ogg b/sound/effects/mob_effects/on_fire/on_fire_loop.ogg new file mode 100644 index 0000000000..40a334566c Binary files /dev/null and b/sound/effects/mob_effects/on_fire/on_fire_loop.ogg differ diff --git a/sound/effects/mob_effects/stun_loop.ogg b/sound/effects/mob_effects/stun_loop.ogg new file mode 100644 index 0000000000..28a7e794c2 Binary files /dev/null and b/sound/effects/mob_effects/stun_loop.ogg differ diff --git a/sound/machines/kitchen/fridge/close_fridge.ogg b/sound/machines/kitchen/fridge/close_fridge.ogg new file mode 100644 index 0000000000..f8ee3ab8aa Binary files /dev/null and b/sound/machines/kitchen/fridge/close_fridge.ogg differ diff --git a/sound/machines/kitchen/fridge/fridge_loop.ogg b/sound/machines/kitchen/fridge/fridge_loop.ogg new file mode 100644 index 0000000000..dcd112f8ee Binary files /dev/null and b/sound/machines/kitchen/fridge/fridge_loop.ogg differ diff --git a/sound/machines/kitchen/fridge/open_fridge.ogg b/sound/machines/kitchen/fridge/open_fridge.ogg new file mode 100644 index 0000000000..0ac523eefe Binary files /dev/null and b/sound/machines/kitchen/fridge/open_fridge.ogg differ diff --git a/sound/machines/tcomms/tcomms_01.ogg b/sound/machines/tcomms/tcomms_01.ogg new file mode 100644 index 0000000000..3e877371b6 Binary files /dev/null and b/sound/machines/tcomms/tcomms_01.ogg differ diff --git a/sound/machines/tcomms/tcomms_02.ogg b/sound/machines/tcomms/tcomms_02.ogg new file mode 100644 index 0000000000..fc8a6a5191 Binary files /dev/null and b/sound/machines/tcomms/tcomms_02.ogg differ diff --git a/sound/machines/tcomms/tcomms_03.ogg b/sound/machines/tcomms/tcomms_03.ogg new file mode 100644 index 0000000000..a22a3575f0 Binary files /dev/null and b/sound/machines/tcomms/tcomms_03.ogg differ diff --git a/sound/machines/tcomms/tcomms_04.ogg b/sound/machines/tcomms/tcomms_04.ogg new file mode 100644 index 0000000000..15ec8a342e Binary files /dev/null and b/sound/machines/tcomms/tcomms_04.ogg differ diff --git a/sound/machines/tcomms/tcomms_pulse.ogg b/sound/machines/tcomms/tcomms_pulse.ogg new file mode 100644 index 0000000000..bdc44e991a Binary files /dev/null and b/sound/machines/tcomms/tcomms_pulse.ogg differ diff --git a/sound/weapons/frigate_turret/frigate_turret_fire1.ogg b/sound/weapons/frigate_turret/frigate_turret_fire1.ogg new file mode 100644 index 0000000000..a6321ec4ae Binary files /dev/null and b/sound/weapons/frigate_turret/frigate_turret_fire1.ogg differ diff --git a/sound/weapons/frigate_turret/frigate_turret_fire2.ogg b/sound/weapons/frigate_turret/frigate_turret_fire2.ogg new file mode 100644 index 0000000000..1915c88a11 Binary files /dev/null and b/sound/weapons/frigate_turret/frigate_turret_fire2.ogg differ diff --git a/sound/weapons/frigate_turret/frigate_turret_fire3.ogg b/sound/weapons/frigate_turret/frigate_turret_fire3.ogg new file mode 100644 index 0000000000..ba6f1c9304 Binary files /dev/null and b/sound/weapons/frigate_turret/frigate_turret_fire3.ogg differ diff --git a/sound/weapons/frigate_turret/frigate_turret_fire4.ogg b/sound/weapons/frigate_turret/frigate_turret_fire4.ogg new file mode 100644 index 0000000000..61f7dfc5cb Binary files /dev/null and b/sound/weapons/frigate_turret/frigate_turret_fire4.ogg differ diff --git a/tgui/.editorconfig b/tgui/.editorconfig index 33092d4928..d1d8a4176a 100644 --- a/tgui/.editorconfig +++ b/tgui/.editorconfig @@ -8,6 +8,3 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true - -[*.md] -max_line_length = 80 diff --git a/tgui/.prettierrc.yml b/tgui/.prettierrc.yml index 5dbf435cf1..1eebe6098b 100644 --- a/tgui/.prettierrc.yml +++ b/tgui/.prettierrc.yml @@ -5,7 +5,7 @@ importFormatting: oneline jsxBracketSameLine: true jsxSingleQuote: false offsetTernaryExpressions: true -printWidth: 120 +printWidth: 80 proseWrap: preserve quoteProps: preserve semi: true diff --git a/tgui/.yarn/releases/yarn-3.2.1.cjs b/tgui/.yarn/releases/yarn-3.2.1.cjs deleted file mode 100644 index b3cadff6ef..0000000000 --- a/tgui/.yarn/releases/yarn-3.2.1.cjs +++ /dev/null @@ -1,786 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var ofe=Object.create,Kh=Object.defineProperty,afe=Object.defineProperties,Afe=Object.getOwnPropertyDescriptor,lfe=Object.getOwnPropertyDescriptors,cfe=Object.getOwnPropertyNames,ME=Object.getOwnPropertySymbols,ufe=Object.getPrototypeOf,gQ=Object.prototype.hasOwnProperty,nM=Object.prototype.propertyIsEnumerable;var sM=(t,e,r)=>e in t?Kh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,N=(t,e)=>{for(var r in e||(e={}))gQ.call(e,r)&&sM(t,r,e[r]);if(ME)for(var r of ME(e))nM.call(e,r)&&sM(t,r,e[r]);return t},ie=(t,e)=>afe(t,lfe(e)),gfe=t=>Kh(t,"__esModule",{value:!0});var Tr=(t,e)=>{var r={};for(var i in t)gQ.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&ME)for(var i of ME(t))e.indexOf(i)<0&&nM.call(t,i)&&(r[i]=t[i]);return r},ffe=(t,e)=>()=>(t&&(e=t(t=0)),e),w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ft=(t,e)=>{for(var r in e)Kh(t,r,{get:e[r],enumerable:!0})},hfe=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cfe(e))!gQ.call(t,i)&&i!=="default"&&Kh(t,i,{get:()=>e[i],enumerable:!(r=Afe(e,i))||r.enumerable});return t},ge=t=>hfe(gfe(Kh(t!=null?ofe(ufe(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var DM=w((ZXe,SM)=>{SM.exports=kM;kM.sync=Dfe;var xM=require("fs");function Rfe(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i{RM.exports=FM;FM.sync=Ffe;var NM=require("fs");function FM(t,e,r){NM.stat(t,function(i,n){r(i,i?!1:LM(n,e))})}function Ffe(t,e){return LM(NM.statSync(t),e)}function LM(t,e){return t.isFile()&&Nfe(t,e)}function Nfe(t,e){var r=t.mode,i=t.uid,n=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=r&c||r&l&&n===o||r&a&&i===s||r&u&&s===0;return g}});var MM=w((tZe,OM)=>{var eZe=require("fs"),ZE;process.platform==="win32"||global.TESTING_WINDOWS?ZE=DM():ZE=TM();OM.exports=xQ;xQ.sync=Lfe;function xQ(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){xQ(t,e||{},function(s,o){s?n(s):i(o)})})}ZE(t,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function Lfe(t,e){try{return ZE.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var qM=w((rZe,KM)=>{var zu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",UM=require("path"),Tfe=zu?";":":",HM=MM(),GM=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),jM=(t,e)=>{let r=e.colon||Tfe,i=t.match(/\//)||zu&&t.match(/\\/)?[""]:[...zu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],n=zu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=zu?n.split(r):[""];return zu&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},YM=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=jM(t,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(GM(t));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=UM.join(h,t),m=!h&&/^\.[\\\/]/.test(t)?t.slice(0,2)+p:p;u(l(m,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];HM(c+p,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return r?a(0).then(c=>r(null,c),r):a(0)},Ofe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=jM(t,e),s=[];for(let o=0;o{"use strict";var JM=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};PQ.exports=JM;PQ.exports.default=JM});var XM=w((nZe,zM)=>{"use strict";var _M=require("path"),Mfe=qM(),Kfe=WM();function VM(t,e){let r=t.options.env||process.env,i=process.cwd(),n=t.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch(a){}let o;try{o=Mfe.sync(t.command,{path:r[Kfe({env:r})],pathExt:e?_M.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=_M.resolve(n?t.options.cwd:"",o)),o}function Ufe(t){return VM(t)||VM(t,!0)}zM.exports=Ufe});var ZM=w((sZe,DQ)=>{"use strict";var RQ=/([()\][%!^"`<>&|;, *?])/g;function Hfe(t){return t=t.replace(RQ,"^$1"),t}function Gfe(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(RQ,"^$1"),e&&(t=t.replace(RQ,"^$1")),t}DQ.exports.command=Hfe;DQ.exports.argument=Gfe});var eK=w((oZe,$M)=>{"use strict";$M.exports=/^#!(.*)/});var rK=w((aZe,tK)=>{"use strict";var jfe=eK();tK.exports=(t="")=>{let e=t.match(jfe);if(!e)return null;let[r,i]=e[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var nK=w((AZe,iK)=>{"use strict";var FQ=require("fs"),Yfe=rK();function qfe(t){let e=150,r=Buffer.alloc(e),i;try{i=FQ.openSync(t,"r"),FQ.readSync(i,r,0,e,0),FQ.closeSync(i)}catch(n){}return Yfe(r.toString())}iK.exports=qfe});var AK=w((lZe,sK)=>{"use strict";var Jfe=require("path"),oK=XM(),aK=ZM(),Wfe=nK(),zfe=process.platform==="win32",_fe=/\.(?:com|exe)$/i,Vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Xfe(t){t.file=oK(t);let e=t.file&&Wfe(t.file);return e?(t.args.unshift(t.file),t.command=e,oK(t)):t.file}function Zfe(t){if(!zfe)return t;let e=Xfe(t),r=!_fe.test(e);if(t.options.forceShell||r){let i=Vfe.test(e);t.command=Jfe.normalize(t.command),t.command=aK.command(t.command),t.args=t.args.map(s=>aK.argument(s,i));let n=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${n}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function $fe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let i={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?i:Zfe(i)}sK.exports=$fe});var uK=w((cZe,lK)=>{"use strict";var NQ=process.platform==="win32";function LQ(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function ehe(t,e){if(!NQ)return;let r=t.emit;t.emit=function(i,n){if(i==="exit"){let s=cK(n,e,"spawn");if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function cK(t,e){return NQ&&t===1&&!e.file?LQ(e.original,"spawn"):null}function the(t,e){return NQ&&t===1&&!e.file?LQ(e.original,"spawnSync"):null}lK.exports={hookChildProcess:ehe,verifyENOENT:cK,verifyENOENTSync:the,notFoundError:LQ}});var MQ=w((uZe,_u)=>{"use strict";var gK=require("child_process"),TQ=AK(),OQ=uK();function fK(t,e,r){let i=TQ(t,e,r),n=gK.spawn(i.command,i.args,i.options);return OQ.hookChildProcess(n,i),n}function rhe(t,e,r){let i=TQ(t,e,r),n=gK.spawnSync(i.command,i.args,i.options);return n.error=n.error||OQ.verifyENOENTSync(n.status,i),n}_u.exports=fK;_u.exports.spawn=fK;_u.exports.sync=rhe;_u.exports._parse=TQ;_u.exports._enoent=OQ});var pK=w((gZe,hK)=>{"use strict";function ihe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function sc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,sc)}ihe(sc,Error);sc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ce=Ee(">>",!1),fe=">&",gt=Ee(">&",!1),Ht=">",Mt=Ee(">",!1),mi="<<<",Gt=Ee("<<<",!1),Qr="<&",Ti=Ee("<&",!1),Vs="<",Un=Ee("<",!1),Hn=function(C){return{type:"argument",segments:[].concat(...C)}},vr=function(C){return C},Gn="$'",gs=Ee("$'",!1),ya="'",kA=Ee("'",!1),Ru=function(C){return[{type:"text",text:C}]},fs='""',xA=Ee('""',!1),wa=function(){return{type:"text",text:""}},Fu='"',PA=Ee('"',!1),DA=function(C){return C},Sr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},jl=function(C){return{type:"shell",shell:C,quoted:!0}},Nu=function(C){return ie(N({type:"variable"},C),{quoted:!0})},So=function(C){return{type:"text",text:C}},Lu=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Sh=function(C){return{type:"shell",shell:C,quoted:!1}},kh=function(C){return ie(N({type:"variable"},C),{quoted:!1})},ae=function(C){return{type:"glob",pattern:C}},Oi=/^[^']/,ko=_e(["'"],!0,!1),jn=function(C){return C.join("")},Tu=/^[^$"]/,vt=_e(["$",'"'],!0,!1),Yl=`\\ -`,Yn=Ee(`\\ -`,!1),hs=function(){return""},ps="\\",pt=Ee("\\",!1),xo=/^[\\$"`]/,lt=_e(["\\","$",'"',"`"],!1,!1),mn=function(C){return C},v="\\a",Tt=Ee("\\a",!1),Ou=function(){return"a"},ql="\\b",xh=Ee("\\b",!1),Ph=function(){return"\b"},Dh=/^[Ee]/,Rh=_e(["E","e"],!1,!1),Fh=function(){return""},G="\\f",yt=Ee("\\f",!1),RA=function(){return"\f"},$i="\\n",Jl=Ee("\\n",!1),$e=function(){return` -`},Ba="\\r",Mu=Ee("\\r",!1),kE=function(){return"\r"},Nh="\\t",xE=Ee("\\t",!1),gr=function(){return" "},qn="\\v",Wl=Ee("\\v",!1),Lh=function(){return"\v"},Xs=/^[\\'"?]/,ba=_e(["\\","'",'"',"?"],!1,!1),En=function(C){return String.fromCharCode(parseInt(C,16))},Me="\\x",Ku=Ee("\\x",!1),zl="\\u",Zs=Ee("\\u",!1),_l="\\U",FA=Ee("\\U",!1),Uu=function(C){return String.fromCodePoint(parseInt(C,16))},Hu=/^[0-7]/,Qa=_e([["0","7"]],!1,!1),va=/^[0-9a-fA-f]/,it=_e([["0","9"],["a","f"],["A","f"]],!1,!1),Po=ot(),NA="-",Vl=Ee("-",!1),$s="+",Xl=Ee("+",!1),PE=".",Th=Ee(".",!1),Gu=function(C,Q,F){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},Oh=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},DE=function(C){return N({type:"variable"},C)},Zl=function(C){return{type:"variable",name:C}},RE=function(C){return C},ju="*",LA=Ee("*",!1),Lr="/",FE=Ee("/",!1),eo=function(C,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},to=function(C,Q){return Q.reduce((F,U)=>N({left:F},U),C)},Yu=function(C,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},TA="$((",R=Ee("$((",!1),q="))",me=Ee("))",!1),Ge=function(C){return C},Te="$(",Xe=Ee("$(",!1),Et=function(C){return C},Rt="${",Jn=Ee("${",!1),_b=":-",PO=Ee(":-",!1),DO=function(C,Q){return{name:C,defaultValue:Q}},Vb=":-}",RO=Ee(":-}",!1),FO=function(C){return{name:C,defaultValue:[]}},Xb=":+",NO=Ee(":+",!1),LO=function(C,Q){return{name:C,alternativeValue:Q}},Zb=":+}",TO=Ee(":+}",!1),OO=function(C){return{name:C,alternativeValue:[]}},$b=function(C){return{name:C}},MO="$",KO=Ee("$",!1),UO=function(C){return e.isGlobPattern(C)},HO=function(C){return C},eQ=/^[a-zA-Z0-9_]/,tQ=_e([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),rQ=function(){return M()},iQ=/^[$@*?#a-zA-Z0-9_\-]/,nQ=_e(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),GO=/^[(){}<>$|&; \t"']/,qu=_e(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),sQ=/^[<>&; \t"']/,oQ=_e(["<",">","&",";"," "," ",'"',"'"],!1,!1),NE=/^[ \t]/,LE=_e([" "," "],!1,!1),B=0,He=0,OA=[{line:1,column:1}],d=0,E=[],I=0,D;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function M(){return t.substring(He,B)}function _(){return It(He,B)}function ne(C,Q){throw Q=Q!==void 0?Q:It(He,B),Mi([ut(C)],t.substring(He,B),Q)}function Be(C,Q){throw Q=Q!==void 0?Q:It(He,B),Wn(C,Q)}function Ee(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function _e(C,Q,F){return{type:"class",parts:C,inverted:Q,ignoreCase:F}}function ot(){return{type:"any"}}function wt(){return{type:"end"}}function ut(C){return{type:"other",description:C}}function nt(C){var Q=OA[C],F;if(Q)return Q;for(F=C-1;!OA[F];)F--;for(Q=OA[F],Q={line:Q.line,column:Q.column};Fd&&(d=B,E=[]),E.push(C))}function Wn(C,Q){return new sc(C,null,null,Q)}function Mi(C,Q,F){return new sc(sc.buildMessage(C,Q),C,Q,F)}function MA(){var C,Q;return C=B,Q=Yr(),Q===r&&(Q=null),Q!==r&&(He=C,Q=s(Q)),C=Q,C}function Yr(){var C,Q,F,U,ue;if(C=B,Q=qr(),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();F!==r?(U=Sa(),U!==r?(ue=ds(),ue===r&&(ue=null),ue!==r?(He=C,Q=o(Q,U,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;if(C===r)if(C=B,Q=qr(),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();F!==r?(U=Sa(),U===r&&(U=null),U!==r?(He=C,Q=a(Q,U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;return C}function ds(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Yr(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=l(F),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;return C}function Sa(){var C;return t.charCodeAt(B)===59?(C=c,B++):(C=r,I===0&&ke(u)),C===r&&(t.charCodeAt(B)===38?(C=g,B++):(C=r,I===0&&ke(f))),C}function qr(){var C,Q,F;return C=B,Q=jO(),Q!==r?(F=jge(),F===r&&(F=null),F!==r?(He=C,Q=h(Q,F),C=Q):(B=C,C=r)):(B=C,C=r),C}function jge(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Yge(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=qr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=p(F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;return C}function Yge(){var C;return t.substr(B,2)===m?(C=m,B+=2):(C=r,I===0&&ke(y)),C===r&&(t.substr(B,2)===b?(C=b,B+=2):(C=r,I===0&&ke(S))),C}function jO(){var C,Q,F;return C=B,Q=Wge(),Q!==r?(F=qge(),F===r&&(F=null),F!==r?(He=C,Q=k(Q,F),C=Q):(B=C,C=r)):(B=C,C=r),C}function qge(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(F=Jge(),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=jO(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=T(F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;return C}function Jge(){var C;return t.substr(B,2)===Y?(C=Y,B+=2):(C=r,I===0&&ke(j)),C===r&&(t.charCodeAt(B)===124?(C=Z,B++):(C=r,I===0&&ke(J))),C}function TE(){var C,Q,F,U,ue,De;if(C=B,Q=tM(),Q!==r)if(t.charCodeAt(B)===61?(F=re,B++):(F=r,I===0&&ke(ee)),F!==r)if(U=JO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(He=C,Q=A(Q,U),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;else B=C,C=r;if(C===r)if(C=B,Q=tM(),Q!==r)if(t.charCodeAt(B)===61?(F=re,B++):(F=r,I===0&&ke(ee)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=oe(Q),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r;return C}function Wge(){var C,Q,F,U,ue,De,Ct,bt,$r,Ei,Cs;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(t.charCodeAt(B)===40?(F=le,B++):(F=r,I===0&&ke(X)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=Yr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();if(De!==r)if(t.charCodeAt(B)===41?(Ct=O,B++):(Ct=r,I===0&&ke(L)),Ct!==r){for(bt=[],$r=je();$r!==r;)bt.push($r),$r=je();if(bt!==r){for($r=[],Ei=Mh();Ei!==r;)$r.push(Ei),Ei=Mh();if($r!==r){for(Ei=[],Cs=je();Cs!==r;)Ei.push(Cs),Cs=je();Ei!==r?(He=C,Q=pe(ue,$r),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r)if(t.charCodeAt(B)===123?(F=Ce,B++):(F=r,I===0&&ke(Oe)),F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r)if(ue=Yr(),ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();if(De!==r)if(t.charCodeAt(B)===125?(Ct=te,B++):(Ct=r,I===0&&ke(se)),Ct!==r){for(bt=[],$r=je();$r!==r;)bt.push($r),$r=je();if(bt!==r){for($r=[],Ei=Mh();Ei!==r;)$r.push(Ei),Ei=Mh();if($r!==r){for(Ei=[],Cs=je();Cs!==r;)Ei.push(Cs),Cs=je();Ei!==r?(He=C,Q=be(ue,$r),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r}else B=C,C=r;else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){for(F=[],U=TE();U!==r;)F.push(U),U=TE();if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();if(U!==r){if(ue=[],De=qO(),De!==r)for(;De!==r;)ue.push(De),De=qO();else ue=r;if(ue!==r){for(De=[],Ct=je();Ct!==r;)De.push(Ct),Ct=je();De!==r?(He=C,Q=he(F,ue),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}else B=C,C=r}else B=C,C=r;if(C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){if(F=[],U=TE(),U!==r)for(;U!==r;)F.push(U),U=TE();else F=r;if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=Fe(F),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r}}}return C}function YO(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r){if(F=[],U=OE(),U!==r)for(;U!==r;)F.push(U),U=OE();else F=r;if(F!==r){for(U=[],ue=je();ue!==r;)U.push(ue),ue=je();U!==r?(He=C,Q=Ue(F),C=Q):(B=C,C=r)}else B=C,C=r}else B=C,C=r;return C}function qO(){var C,Q,F;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();if(Q!==r?(F=Mh(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r){for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();Q!==r?(F=OE(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r)}return C}function Mh(){var C,Q,F,U,ue;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();return Q!==r?(Se.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(de)),F===r&&(F=null),F!==r?(U=zge(),U!==r?(ue=OE(),ue!==r?(He=C,Q=V(F,U,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function zge(){var C;return t.substr(B,2)===Qe?(C=Qe,B+=2):(C=r,I===0&&ke(ce)),C===r&&(t.substr(B,2)===fe?(C=fe,B+=2):(C=r,I===0&&ke(gt)),C===r&&(t.charCodeAt(B)===62?(C=Ht,B++):(C=r,I===0&&ke(Mt)),C===r&&(t.substr(B,3)===mi?(C=mi,B+=3):(C=r,I===0&&ke(Gt)),C===r&&(t.substr(B,2)===Qr?(C=Qr,B+=2):(C=r,I===0&&ke(Ti)),C===r&&(t.charCodeAt(B)===60?(C=Vs,B++):(C=r,I===0&&ke(Un))))))),C}function OE(){var C,Q,F;for(C=B,Q=[],F=je();F!==r;)Q.push(F),F=je();return Q!==r?(F=JO(),F!==r?(He=C,Q=xe(F),C=Q):(B=C,C=r)):(B=C,C=r),C}function JO(){var C,Q,F;if(C=B,Q=[],F=WO(),F!==r)for(;F!==r;)Q.push(F),F=WO();else Q=r;return Q!==r&&(He=C,Q=Hn(Q)),C=Q,C}function WO(){var C,Q;return C=B,Q=_ge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Vge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Xge(),Q!==r&&(He=C,Q=vr(Q)),C=Q,C===r&&(C=B,Q=Zge(),Q!==r&&(He=C,Q=vr(Q)),C=Q))),C}function _ge(){var C,Q,F,U;return C=B,t.substr(B,2)===Gn?(Q=Gn,B+=2):(Q=r,I===0&&ke(gs)),Q!==r?(F=tfe(),F!==r?(t.charCodeAt(B)===39?(U=ya,B++):(U=r,I===0&&ke(kA)),U!==r?(He=C,Q=Ru(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function Vge(){var C,Q,F,U;return C=B,t.charCodeAt(B)===39?(Q=ya,B++):(Q=r,I===0&&ke(kA)),Q!==r?(F=$ge(),F!==r?(t.charCodeAt(B)===39?(U=ya,B++):(U=r,I===0&&ke(kA)),U!==r?(He=C,Q=Ru(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function Xge(){var C,Q,F,U;if(C=B,t.substr(B,2)===fs?(Q=fs,B+=2):(Q=r,I===0&&ke(xA)),Q!==r&&(He=C,Q=wa()),C=Q,C===r)if(C=B,t.charCodeAt(B)===34?(Q=Fu,B++):(Q=r,I===0&&ke(PA)),Q!==r){for(F=[],U=zO();U!==r;)F.push(U),U=zO();F!==r?(t.charCodeAt(B)===34?(U=Fu,B++):(U=r,I===0&&ke(PA)),U!==r?(He=C,Q=DA(F),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;return C}function Zge(){var C,Q,F;if(C=B,Q=[],F=_O(),F!==r)for(;F!==r;)Q.push(F),F=_O();else Q=r;return Q!==r&&(He=C,Q=DA(Q)),C=Q,C}function zO(){var C,Q;return C=B,Q=$O(),Q!==r&&(He=C,Q=Sr(Q)),C=Q,C===r&&(C=B,Q=eM(),Q!==r&&(He=C,Q=jl(Q)),C=Q,C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=Nu(Q)),C=Q,C===r&&(C=B,Q=efe(),Q!==r&&(He=C,Q=So(Q)),C=Q))),C}function _O(){var C,Q;return C=B,Q=$O(),Q!==r&&(He=C,Q=Lu(Q)),C=Q,C===r&&(C=B,Q=eM(),Q!==r&&(He=C,Q=Sh(Q)),C=Q,C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=kh(Q)),C=Q,C===r&&(C=B,Q=nfe(),Q!==r&&(He=C,Q=ae(Q)),C=Q,C===r&&(C=B,Q=ife(),Q!==r&&(He=C,Q=So(Q)),C=Q)))),C}function $ge(){var C,Q,F;for(C=B,Q=[],Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko));F!==r;)Q.push(F),Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko));return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function efe(){var C,Q,F;if(C=B,Q=[],F=VO(),F===r&&(Tu.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(vt))),F!==r)for(;F!==r;)Q.push(F),F=VO(),F===r&&(Tu.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(vt)));else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function VO(){var C,Q,F;return C=B,t.substr(B,2)===Yl?(Q=Yl,B+=2):(Q=r,I===0&&ke(Yn)),Q!==r&&(He=C,Q=hs()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(xo.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(lt)),F!==r?(He=C,Q=mn(F),C=Q):(B=C,C=r)):(B=C,C=r)),C}function tfe(){var C,Q,F;for(C=B,Q=[],F=XO(),F===r&&(Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko)));F!==r;)Q.push(F),F=XO(),F===r&&(Oi.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ko)));return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function XO(){var C,Q,F;return C=B,t.substr(B,2)===v?(Q=v,B+=2):(Q=r,I===0&&ke(Tt)),Q!==r&&(He=C,Q=Ou()),C=Q,C===r&&(C=B,t.substr(B,2)===ql?(Q=ql,B+=2):(Q=r,I===0&&ke(xh)),Q!==r&&(He=C,Q=Ph()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(Dh.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(Rh)),F!==r?(He=C,Q=Fh(),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===G?(Q=G,B+=2):(Q=r,I===0&&ke(yt)),Q!==r&&(He=C,Q=RA()),C=Q,C===r&&(C=B,t.substr(B,2)===$i?(Q=$i,B+=2):(Q=r,I===0&&ke(Jl)),Q!==r&&(He=C,Q=$e()),C=Q,C===r&&(C=B,t.substr(B,2)===Ba?(Q=Ba,B+=2):(Q=r,I===0&&ke(Mu)),Q!==r&&(He=C,Q=kE()),C=Q,C===r&&(C=B,t.substr(B,2)===Nh?(Q=Nh,B+=2):(Q=r,I===0&&ke(xE)),Q!==r&&(He=C,Q=gr()),C=Q,C===r&&(C=B,t.substr(B,2)===qn?(Q=qn,B+=2):(Q=r,I===0&&ke(Wl)),Q!==r&&(He=C,Q=Lh()),C=Q,C===r&&(C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(Xs.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(ba)),F!==r?(He=C,Q=mn(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=rfe()))))))))),C}function rfe(){var C,Q,F,U,ue,De,Ct,bt,$r,Ei,Cs,uQ;return C=B,t.charCodeAt(B)===92?(Q=ps,B++):(Q=r,I===0&&ke(pt)),Q!==r?(F=aQ(),F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Me?(Q=Me,B+=2):(Q=r,I===0&&ke(Ku)),Q!==r?(F=B,U=B,ue=aQ(),ue!==r?(De=zn(),De!==r?(ue=[ue,De],U=ue):(B=U,U=r)):(B=U,U=r),U===r&&(U=aQ()),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===zl?(Q=zl,B+=2):(Q=r,I===0&&ke(Zs)),Q!==r?(F=B,U=B,ue=zn(),ue!==r?(De=zn(),De!==r?(Ct=zn(),Ct!==r?(bt=zn(),bt!==r?(ue=[ue,De,Ct,bt],U=ue):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=En(F),C=Q):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===_l?(Q=_l,B+=2):(Q=r,I===0&&ke(FA)),Q!==r?(F=B,U=B,ue=zn(),ue!==r?(De=zn(),De!==r?(Ct=zn(),Ct!==r?(bt=zn(),bt!==r?($r=zn(),$r!==r?(Ei=zn(),Ei!==r?(Cs=zn(),Cs!==r?(uQ=zn(),uQ!==r?(ue=[ue,De,Ct,bt,$r,Ei,Cs,uQ],U=ue):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r)):(B=U,U=r),U!==r?F=t.substring(F,B):F=U,F!==r?(He=C,Q=Uu(F),C=Q):(B=C,C=r)):(B=C,C=r)))),C}function aQ(){var C;return Hu.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(Qa)),C}function zn(){var C;return va.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(it)),C}function ife(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,t.charCodeAt(B)===92?(U=ps,B++):(U=r,I===0&&ke(pt)),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F===r&&(F=B,U=B,I++,ue=rM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r)),F!==r)for(;F!==r;)Q.push(F),F=B,t.charCodeAt(B)===92?(U=ps,B++):(U=r,I===0&&ke(pt)),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F===r&&(F=B,U=B,I++,ue=rM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r));else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function AQ(){var C,Q,F,U,ue,De;if(C=B,t.charCodeAt(B)===45?(Q=NA,B++):(Q=r,I===0&&ke(Vl)),Q===r&&(t.charCodeAt(B)===43?(Q=$s,B++):(Q=r,I===0&&ke(Xl))),Q===r&&(Q=null),Q!==r){if(F=[],Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de)),U!==r)for(;U!==r;)F.push(U),Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de));else F=r;if(F!==r)if(t.charCodeAt(B)===46?(U=PE,B++):(U=r,I===0&&ke(Th)),U!==r){if(ue=[],Se.test(t.charAt(B))?(De=t.charAt(B),B++):(De=r,I===0&&ke(de)),De!==r)for(;De!==r;)ue.push(De),Se.test(t.charAt(B))?(De=t.charAt(B),B++):(De=r,I===0&&ke(de));else ue=r;ue!==r?(He=C,Q=Gu(Q,F,ue),C=Q):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;if(C===r){if(C=B,t.charCodeAt(B)===45?(Q=NA,B++):(Q=r,I===0&&ke(Vl)),Q===r&&(t.charCodeAt(B)===43?(Q=$s,B++):(Q=r,I===0&&ke(Xl))),Q===r&&(Q=null),Q!==r){if(F=[],Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de)),U!==r)for(;U!==r;)F.push(U),Se.test(t.charAt(B))?(U=t.charAt(B),B++):(U=r,I===0&&ke(de));else F=r;F!==r?(He=C,Q=Oh(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;if(C===r&&(C=B,Q=cQ(),Q!==r&&(He=C,Q=DE(Q)),C=Q,C===r&&(C=B,Q=$l(),Q!==r&&(He=C,Q=Zl(Q)),C=Q,C===r)))if(C=B,t.charCodeAt(B)===40?(Q=le,B++):(Q=r,I===0&&ke(X)),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();if(F!==r)if(U=ZO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(t.charCodeAt(B)===41?(De=O,B++):(De=r,I===0&&ke(L)),De!==r?(He=C,Q=RE(U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r}return C}function lQ(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=AQ(),Q!==r){for(F=[],U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===42?(De=ju,B++):(De=r,I===0&&ke(LA)),De===r&&(t.charCodeAt(B)===47?(De=Lr,B++):(De=r,I===0&&ke(FE))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=AQ(),bt!==r?(He=U,ue=eo(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r;for(;U!==r;){for(F.push(U),U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===42?(De=ju,B++):(De=r,I===0&&ke(LA)),De===r&&(t.charCodeAt(B)===47?(De=Lr,B++):(De=r,I===0&&ke(FE))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=AQ(),bt!==r?(He=U,ue=eo(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r}F!==r?(He=C,Q=to(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;return C}function ZO(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=lQ(),Q!==r){for(F=[],U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===43?(De=$s,B++):(De=r,I===0&&ke(Xl)),De===r&&(t.charCodeAt(B)===45?(De=NA,B++):(De=r,I===0&&ke(Vl))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=lQ(),bt!==r?(He=U,ue=Yu(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r;for(;U!==r;){for(F.push(U),U=B,ue=[],De=je();De!==r;)ue.push(De),De=je();if(ue!==r)if(t.charCodeAt(B)===43?(De=$s,B++):(De=r,I===0&&ke(Xl)),De===r&&(t.charCodeAt(B)===45?(De=NA,B++):(De=r,I===0&&ke(Vl))),De!==r){for(Ct=[],bt=je();bt!==r;)Ct.push(bt),bt=je();Ct!==r?(bt=lQ(),bt!==r?(He=U,ue=Yu(Q,De,bt),U=ue):(B=U,U=r)):(B=U,U=r)}else B=U,U=r;else B=U,U=r}F!==r?(He=C,Q=to(Q,F),C=Q):(B=C,C=r)}else B=C,C=r;return C}function $O(){var C,Q,F,U,ue,De;if(C=B,t.substr(B,3)===TA?(Q=TA,B+=3):(Q=r,I===0&&ke(R)),Q!==r){for(F=[],U=je();U!==r;)F.push(U),U=je();if(F!==r)if(U=ZO(),U!==r){for(ue=[],De=je();De!==r;)ue.push(De),De=je();ue!==r?(t.substr(B,2)===q?(De=q,B+=2):(De=r,I===0&&ke(me)),De!==r?(He=C,Q=Ge(U),C=Q):(B=C,C=r)):(B=C,C=r)}else B=C,C=r;else B=C,C=r}else B=C,C=r;return C}function eM(){var C,Q,F,U;return C=B,t.substr(B,2)===Te?(Q=Te,B+=2):(Q=r,I===0&&ke(Xe)),Q!==r?(F=Yr(),F!==r?(t.charCodeAt(B)===41?(U=O,B++):(U=r,I===0&&ke(L)),U!==r?(He=C,Q=Et(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C}function cQ(){var C,Q,F,U,ue,De;return C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,2)===_b?(U=_b,B+=2):(U=r,I===0&&ke(PO)),U!==r?(ue=YO(),ue!==r?(t.charCodeAt(B)===125?(De=te,B++):(De=r,I===0&&ke(se)),De!==r?(He=C,Q=DO(F,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,3)===Vb?(U=Vb,B+=3):(U=r,I===0&&ke(RO)),U!==r?(He=C,Q=FO(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,2)===Xb?(U=Xb,B+=2):(U=r,I===0&&ke(NO)),U!==r?(ue=YO(),ue!==r?(t.charCodeAt(B)===125?(De=te,B++):(De=r,I===0&&ke(se)),De!==r?(He=C,Q=LO(F,ue),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.substr(B,3)===Zb?(U=Zb,B+=3):(U=r,I===0&&ke(TO)),U!==r?(He=C,Q=OO(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=r,I===0&&ke(Jn)),Q!==r?(F=$l(),F!==r?(t.charCodeAt(B)===125?(U=te,B++):(U=r,I===0&&ke(se)),U!==r?(He=C,Q=$b(F),C=Q):(B=C,C=r)):(B=C,C=r)):(B=C,C=r),C===r&&(C=B,t.charCodeAt(B)===36?(Q=MO,B++):(Q=r,I===0&&ke(KO)),Q!==r?(F=$l(),F!==r?(He=C,Q=$b(F),C=Q):(B=C,C=r)):(B=C,C=r)))))),C}function nfe(){var C,Q,F;return C=B,Q=sfe(),Q!==r?(He=B,F=UO(Q),F?F=void 0:F=r,F!==r?(He=C,Q=HO(Q),C=Q):(B=C,C=r)):(B=C,C=r),C}function sfe(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,U=B,I++,ue=iM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r),F!==r)for(;F!==r;)Q.push(F),F=B,U=B,I++,ue=iM(),I--,ue===r?U=void 0:(B=U,U=r),U!==r?(t.length>B?(ue=t.charAt(B),B++):(ue=r,I===0&&ke(Po)),ue!==r?(He=F,U=mn(ue),F=U):(B=F,F=r)):(B=F,F=r);else Q=r;return Q!==r&&(He=C,Q=jn(Q)),C=Q,C}function tM(){var C,Q,F;if(C=B,Q=[],eQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(tQ)),F!==r)for(;F!==r;)Q.push(F),eQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(tQ));else Q=r;return Q!==r&&(He=C,Q=rQ()),C=Q,C}function $l(){var C,Q,F;if(C=B,Q=[],iQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(nQ)),F!==r)for(;F!==r;)Q.push(F),iQ.test(t.charAt(B))?(F=t.charAt(B),B++):(F=r,I===0&&ke(nQ));else Q=r;return Q!==r&&(He=C,Q=rQ()),C=Q,C}function rM(){var C;return GO.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(qu)),C}function iM(){var C;return sQ.test(t.charAt(B))?(C=t.charAt(B),B++):(C=r,I===0&&ke(oQ)),C}function je(){var C,Q;if(C=[],NE.test(t.charAt(B))?(Q=t.charAt(B),B++):(Q=r,I===0&&ke(LE)),Q!==r)for(;Q!==r;)C.push(Q),NE.test(t.charAt(B))?(Q=t.charAt(B),B++):(Q=r,I===0&&ke(LE));else C=r;return C}if(D=n(),D!==r&&B===t.length)return D;throw D!==r&&B{"use strict";function she(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ac(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}she(ac,Error);ac.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gY&&(Y=S,j=[]),j.push(de))}function se(de,V){return new ac(de,null,null,V)}function be(de,V,Qe){return new ac(ac.buildMessage(de,V),de,V,Qe)}function he(){var de,V,Qe,ce;return de=S,V=Fe(),V!==r?(t.charCodeAt(S)===47?(Qe=s,S++):(Qe=r,Z===0&&te(o)),Qe!==r?(ce=Fe(),ce!==r?(k=de,V=a(V,ce),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=Fe(),V!==r&&(k=de,V=l(V)),de=V),de}function Fe(){var de,V,Qe,ce;return de=S,V=Ue(),V!==r?(t.charCodeAt(S)===64?(Qe=c,S++):(Qe=r,Z===0&&te(u)),Qe!==r?(ce=Se(),ce!==r?(k=de,V=g(V,ce),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=Ue(),V!==r&&(k=de,V=f(V)),de=V),de}function Ue(){var de,V,Qe,ce,fe;return de=S,t.charCodeAt(S)===64?(V=c,S++):(V=r,Z===0&&te(u)),V!==r?(Qe=xe(),Qe!==r?(t.charCodeAt(S)===47?(ce=s,S++):(ce=r,Z===0&&te(o)),ce!==r?(fe=xe(),fe!==r?(k=de,V=h(),de=V):(S=de,de=r)):(S=de,de=r)):(S=de,de=r)):(S=de,de=r),de===r&&(de=S,V=xe(),V!==r&&(k=de,V=h()),de=V),de}function xe(){var de,V,Qe;if(de=S,V=[],p.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(m)),Qe!==r)for(;Qe!==r;)V.push(Qe),p.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(m));else V=r;return V!==r&&(k=de,V=h()),de=V,de}function Se(){var de,V,Qe;if(de=S,V=[],y.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(b)),Qe!==r)for(;Qe!==r;)V.push(Qe),y.test(t.charAt(S))?(Qe=t.charAt(S),S++):(Qe=r,Z===0&&te(b));else V=r;return V!==r&&(k=de,V=h()),de=V,de}if(J=n(),J!==r&&S===t.length)return J;throw J!==r&&S{"use strict";function IK(t){return typeof t=="undefined"||t===null}function ahe(t){return typeof t=="object"&&t!==null}function Ahe(t){return Array.isArray(t)?t:IK(t)?[]:[t]}function lhe(t,e){var r,i,n,s;if(e)for(s=Object.keys(e),r=0,i=s.length;r{"use strict";function tp(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}tp.prototype=Object.create(Error.prototype);tp.prototype.constructor=tp;tp.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};yK.exports=tp});var bK=w((PZe,wK)=>{"use strict";var BK=lc();function YQ(t,e,r,i,n){this.name=t,this.buffer=e,this.position=r,this.line=i,this.column=n}YQ.prototype.getSnippet=function(e,r){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,r=r||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>r/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;or/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BK.repeat(" ",e)+i+a+s+` -`+BK.repeat(" ",e+this.position-n+i.length)+"^"};YQ.prototype.toString=function(e){var r,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(i+=`: -`+r)),i};wK.exports=YQ});var li=w((DZe,QK)=>{"use strict";var vK=Zu(),ghe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],fhe=["scalar","sequence","mapping"];function hhe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(i){e[String(i)]=r})}),e}function phe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(ghe.indexOf(r)===-1)throw new vK('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=hhe(e.styleAliases||null),fhe.indexOf(this.kind)===-1)throw new vK('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}QK.exports=phe});var cc=w((RZe,SK)=>{"use strict";var kK=lc(),sI=Zu(),dhe=li();function qQ(t,e,r){var i=[];return t.include.forEach(function(n){r=qQ(n,e,r)}),t[e].forEach(function(n){r.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),r.push(n)}),r.filter(function(n,s){return i.indexOf(s)===-1})}function Che(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function i(n){t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,r=arguments.length;e{"use strict";var mhe=li();xK.exports=new mhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var RK=w((NZe,DK)=>{"use strict";var Ehe=li();DK.exports=new Ehe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var NK=w((LZe,FK)=>{"use strict";var Ihe=li();FK.exports=new Ihe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var oI=w((TZe,LK)=>{"use strict";var yhe=cc();LK.exports=new yhe({explicit:[PK(),RK(),NK()]})});var OK=w((OZe,TK)=>{"use strict";var whe=li();function Bhe(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function bhe(){return null}function Qhe(t){return t===null}TK.exports=new whe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Bhe,construct:bhe,predicate:Qhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var KK=w((MZe,MK)=>{"use strict";var vhe=li();function She(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function khe(t){return t==="true"||t==="True"||t==="TRUE"}function xhe(t){return Object.prototype.toString.call(t)==="[object Boolean]"}MK.exports=new vhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:She,construct:khe,predicate:xhe,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var HK=w((KZe,UK)=>{"use strict";var Phe=lc(),Dhe=li();function Rhe(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Fhe(t){return 48<=t&&t<=55}function Nhe(t){return 48<=t&&t<=57}function Lhe(t){if(t===null)return!1;var e=t.length,r=0,i=!1,n;if(!e)return!1;if(n=t[r],(n==="-"||n==="+")&&(n=t[++r]),n==="0"){if(r+1===e)return!0;if(n=t[++r],n==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var YK=w((UZe,GK)=>{"use strict";var jK=lc(),Mhe=li(),Khe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Uhe(t){return!(t===null||!Khe.test(t)||t[t.length-1]==="_")}function Hhe(t){var e,r,i,n;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),r*e):r*parseFloat(e,10)}var Ghe=/^[-+]?[0-9]+e/;function jhe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jK.isNegativeZero(t))return"-0.0";return r=t.toString(10),Ghe.test(r)?r.replace("e",".e"):r}function Yhe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!=0||jK.isNegativeZero(t))}GK.exports=new Mhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Uhe,construct:Hhe,predicate:Yhe,represent:jhe,defaultStyle:"lowercase"})});var JQ=w((HZe,qK)=>{"use strict";var qhe=cc();qK.exports=new qhe({include:[oI()],implicit:[OK(),KK(),HK(),YK()]})});var WQ=w((GZe,JK)=>{"use strict";var Jhe=cc();JK.exports=new Jhe({include:[JQ()]})});var VK=w((jZe,WK)=>{"use strict";var Whe=li(),zK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),_K=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function zhe(t){return t===null?!1:zK.exec(t)!==null||_K.exec(t)!==null}function _he(t){var e,r,i,n,s,o,a,l=0,c=null,u,g,f;if(e=zK.exec(t),e===null&&(e=_K.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(r,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Vhe(t){return t.toISOString()}WK.exports=new Whe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:zhe,construct:_he,instanceOf:Date,represent:Vhe})});var ZK=w((YZe,XK)=>{"use strict";var Xhe=li();function Zhe(t){return t==="<<"||t===null}XK.exports=new Xhe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Zhe})});var t1=w((qZe,$K)=>{"use strict";var uc;try{e1=require,uc=e1("buffer").Buffer}catch(t){}var e1,$he=li(),zQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function epe(t){if(t===null)return!1;var e,r,i=0,n=t.length,s=zQ;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0}function tpe(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,s=zQ,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return r=n%4*6,r===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):r===18?(a.push(o>>10&255),a.push(o>>2&255)):r===12&&a.push(o>>4&255),uc?uc.from?uc.from(a):new uc(a):a}function rpe(t){var e="",r=0,i,n,s=t.length,o=zQ;for(i=0;i>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]),r=(r<<8)+t[i];return n=s%3,n===0?(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]):n===2?(e+=o[r>>10&63],e+=o[r>>4&63],e+=o[r<<2&63],e+=o[64]):n===1&&(e+=o[r>>2&63],e+=o[r<<4&63],e+=o[64],e+=o[64]),e}function ipe(t){return uc&&uc.isBuffer(t)}$K.exports=new $he("tag:yaml.org,2002:binary",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var i1=w((JZe,r1)=>{"use strict";var npe=li(),spe=Object.prototype.hasOwnProperty,ope=Object.prototype.toString;function ape(t){if(t===null)return!0;var e=[],r,i,n,s,o,a=t;for(r=0,i=a.length;r{"use strict";var lpe=li(),cpe=Object.prototype.toString;function upe(t){if(t===null)return!0;var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e{"use strict";var fpe=li(),hpe=Object.prototype.hasOwnProperty;function ppe(t){if(t===null)return!0;var e,r=t;for(e in r)if(hpe.call(r,e)&&r[e]!==null)return!1;return!0}function dpe(t){return t!==null?t:{}}o1.exports=new fpe("tag:yaml.org,2002:set",{kind:"mapping",resolve:ppe,construct:dpe})});var eg=w((_Ze,A1)=>{"use strict";var Cpe=cc();A1.exports=new Cpe({include:[WQ()],implicit:[VK(),ZK()],explicit:[t1(),i1(),s1(),a1()]})});var c1=w((VZe,l1)=>{"use strict";var mpe=li();function Epe(){return!0}function Ipe(){}function ype(){return""}function wpe(t){return typeof t=="undefined"}l1.exports=new mpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Epe,construct:Ipe,predicate:wpe,represent:ype})});var g1=w((XZe,u1)=>{"use strict";var Bpe=li();function bpe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),i="";return!(e[0]==="/"&&(r&&(i=r[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Qpe(t){var e=t,r=/\/([gim]*)$/.exec(t),i="";return e[0]==="/"&&(r&&(i=r[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function vpe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function Spe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}u1.exports=new Bpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:bpe,construct:Qpe,predicate:Spe,represent:vpe})});var p1=w((ZZe,f1)=>{"use strict";var aI;try{h1=require,aI=h1("esprima")}catch(t){typeof window!="undefined"&&(aI=window.esprima)}var h1,kpe=li();function xpe(t){if(t===null)return!1;try{var e="("+t+")",r=aI.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function Ppe(t){var e="("+t+")",r=aI.parse(e,{range:!0}),i=[],n;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Dpe(t){return t.toString()}function Rpe(t){return Object.prototype.toString.call(t)==="[object Function]"}f1.exports=new kpe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:xpe,construct:Ppe,predicate:Rpe,represent:Dpe})});var rp=w(($Ze,d1)=>{"use strict";var C1=cc();d1.exports=C1.DEFAULT=new C1({include:[eg()],explicit:[c1(),g1(),p1()]})});var T1=w((e$e,ip)=>{"use strict";var Na=lc(),m1=Zu(),Fpe=bK(),E1=eg(),Npe=rp(),GA=Object.prototype.hasOwnProperty,AI=1,I1=2,y1=3,lI=4,_Q=1,Lpe=2,w1=3,Tpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ope=/[\x85\u2028\u2029]/,Mpe=/[,\[\]\{\}]/,B1=/^(?:!|!!|![a-z\-]+!)$/i,b1=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Q1(t){return Object.prototype.toString.call(t)}function Ro(t){return t===10||t===13}function gc(t){return t===9||t===32}function yn(t){return t===9||t===32||t===10||t===13}function tg(t){return t===44||t===91||t===93||t===123||t===125}function Kpe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function Upe(t){return t===120?2:t===117?4:t===85?8:0}function Hpe(t){return 48<=t&&t<=57?t-48:-1}function v1(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` -`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function Gpe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var S1=new Array(256),k1=new Array(256);for(var rg=0;rg<256;rg++)S1[rg]=v1(rg)?1:0,k1[rg]=v1(rg);function jpe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Npe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function x1(t,e){return new m1(e,new Fpe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function dt(t,e){throw x1(t,e)}function cI(t,e){t.onWarning&&t.onWarning.call(null,x1(t,e))}var P1={YAML:function(e,r,i){var n,s,o;e.version!==null&&dt(e,"duplication of %YAML directive"),i.length!==1&&dt(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&dt(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&dt(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&cI(e,"unsupported YAML version of the document")},TAG:function(e,r,i){var n,s;i.length!==2&&dt(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],B1.test(n)||dt(e,"ill-formed tag handle (first argument) of the TAG directive"),GA.call(e.tagMap,n)&&dt(e,'there is a previously declared suffix for "'+n+'" tag handle'),b1.test(s)||dt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function jA(t,e,r,i){var n,s,o,a;if(e1&&(t.result+=Na.repeat(` -`,e-1))}function Ype(t,e,r){var i,n,s,o,a,l,c,u,g=t.kind,f=t.result,h;if(h=t.input.charCodeAt(t.position),yn(h)||tg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=t.input.charCodeAt(t.position+1),yn(n)||r&&tg(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;h!==0;){if(h===58){if(n=t.input.charCodeAt(t.position+1),yn(n)||r&&tg(n))break}else if(h===35){if(i=t.input.charCodeAt(t.position-1),yn(i))break}else{if(t.position===t.lineStart&&uI(t)||r&&tg(h))break;if(Ro(h))if(l=t.line,c=t.lineStart,u=t.lineIndent,ei(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=l,t.lineStart=c,t.lineIndent=u;break}}a&&(jA(t,s,o,!1),XQ(t,t.line-l),s=o=t.position,a=!1),gc(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return jA(t,s,o,!1),t.result?!0:(t.kind=g,t.result=f,!1)}function qpe(t,e){var r,i,n;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(jA(t,i,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)i=t.position,t.position++,n=t.position;else return!0;else Ro(r)?(jA(t,i,n,!0),XQ(t,ei(t,!1,e)),i=n=t.position):t.position===t.lineStart&&uI(t)?dt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);dt(t,"unexpected end of the stream within a single quoted scalar")}function Jpe(t,e){var r,i,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return jA(t,r,t.position,!0),t.position++,!0;if(a===92){if(jA(t,r,t.position,!0),a=t.input.charCodeAt(++t.position),Ro(a))ei(t,!1,e);else if(a<256&&S1[a])t.result+=k1[a],t.position++;else if((o=Upe(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=Kpe(a))>=0?s=(s<<4)+o:dt(t,"expected hexadecimal character");t.result+=Gpe(s),t.position++}else dt(t,"unknown escape sequence");r=i=t.position}else Ro(a)?(jA(t,r,i,!0),XQ(t,ei(t,!1,e)),r=i=t.position):t.position===t.lineStart&&uI(t)?dt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}dt(t,"unexpected end of the stream within a double quoted scalar")}function Wpe(t,e){var r=!0,i,n=t.tag,s,o=t.anchor,a,l,c,u,g,f={},h,p,m,y;if(y=t.input.charCodeAt(t.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),y=t.input.charCodeAt(++t.position);y!==0;){if(ei(t,!0,e),y=t.input.charCodeAt(t.position),y===l)return t.position++,t.tag=n,t.anchor=o,t.kind=g?"mapping":"sequence",t.result=s,!0;r||dt(t,"missed comma between flow collection entries"),p=h=m=null,c=u=!1,y===63&&(a=t.input.charCodeAt(t.position+1),yn(a)&&(c=u=!0,t.position++,ei(t,!0,e))),i=t.line,ng(t,e,AI,!1,!0),p=t.tag,h=t.result,ei(t,!0,e),y=t.input.charCodeAt(t.position),(u||t.line===i)&&y===58&&(c=!0,y=t.input.charCodeAt(++t.position),ei(t,!0,e),ng(t,e,AI,!1,!0),m=t.result),g?ig(t,s,f,p,h,m):c?s.push(ig(t,null,f,p,h,m)):s.push(h),ei(t,!0,e),y=t.input.charCodeAt(t.position),y===44?(r=!0,y=t.input.charCodeAt(++t.position)):r=!1}dt(t,"unexpected end of the stream within a flow collection")}function zpe(t,e){var r,i,n=_Q,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=t.input.charCodeAt(t.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(t.kind="scalar",t.result="";g!==0;)if(g=t.input.charCodeAt(++t.position),g===43||g===45)_Q===n?n=g===43?w1:Lpe:dt(t,"repeat of a chomping mode identifier");else if((u=Hpe(g))>=0)u===0?dt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?dt(t,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(gc(g)){do g=t.input.charCodeAt(++t.position);while(gc(g));if(g===35)do g=t.input.charCodeAt(++t.position);while(!Ro(g)&&g!==0)}for(;g!==0;){for(VQ(t),t.lineIndent=0,g=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),Ro(g)){l++;continue}if(t.lineIndente)&&l!==0)dt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(ng(t,e,lI,!0,n)&&(p?f=t.result:h=t.result),p||(ig(t,c,u,g,f,h,s,o),g=f=h=null),ei(t,!0,-1),y=t.input.charCodeAt(t.position)),t.lineIndent>e&&y!==0)dt(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),g=0,f=t.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+t.kind+'"'),h.resolve(t.result)?(t.result=h.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):dt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):dt(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function $pe(t){var e=t.position,r,i,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(o=t.input.charCodeAt(t.position))!==0&&(ei(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);for(i=t.input.slice(r,t.position),n=[],i.length<1&&dt(t,"directive name must not be less than one character in length");o!==0;){for(;gc(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!Ro(o));break}if(Ro(o))break;for(r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(r,t.position))}o!==0&&VQ(t),GA.call(P1,i)?P1[i](t,i,n):cI(t,'unknown document directive "'+i+'"')}if(ei(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,ei(t,!0,-1)):s&&dt(t,"directives end mark is expected"),ng(t,t.lineIndent-1,lI,!1,!0),ei(t,!0,-1),t.checkLineBreaks&&Ope.test(t.input.slice(e,t.position))&&cI(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&uI(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,ei(t,!0,-1));return}if(t.position{"use strict";var np=lc(),sp=Zu(),rde=rp(),ide=eg(),O1=Object.prototype.toString,M1=Object.prototype.hasOwnProperty,nde=9,op=10,sde=13,ode=32,ade=33,Ade=34,K1=35,lde=37,cde=38,ude=39,gde=42,U1=44,fde=45,H1=58,hde=61,pde=62,dde=63,Cde=64,G1=91,j1=93,mde=96,Y1=123,Ede=124,q1=125,Ki={};Ki[0]="\\0";Ki[7]="\\a";Ki[8]="\\b";Ki[9]="\\t";Ki[10]="\\n";Ki[11]="\\v";Ki[12]="\\f";Ki[13]="\\r";Ki[27]="\\e";Ki[34]='\\"';Ki[92]="\\\\";Ki[133]="\\N";Ki[160]="\\_";Ki[8232]="\\L";Ki[8233]="\\P";var Ide=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function yde(t,e){var r,i,n,s,o,a,l;if(e===null)return{};for(r={},i=Object.keys(e),n=0,s=i.length;n0?t.charCodeAt(s-1):null,f=f&&z1(o,a)}else{for(s=0;si&&t[g+1]!==" ",g=s);else if(!sg(o))return gI;a=s>0?t.charCodeAt(s-1):null,f=f&&z1(o,a)}c=c||u&&s-g-1>i&&t[g+1]!==" "}return!l&&!c?f&&!n(t)?V1:X1:r>9&&_1(t)?gI:c?$1:Z1}function xde(t,e,r,i){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&Ide.indexOf(e)!==-1)return"'"+e+"'";var n=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-n),o=i||t.flowLevel>-1&&r>=t.flowLevel;function a(l){return Bde(t,l)}switch(vde(e,o,t.indent,s,a)){case V1:return e;case X1:return"'"+e.replace(/'/g,"''")+"'";case Z1:return"|"+eU(e,t.indent)+tU(W1(e,n));case $1:return">"+eU(e,t.indent)+tU(W1(Sde(e,s),n));case gI:return'"'+kde(e,s)+'"';default:throw new sp("impossible error: invalid scalar style")}}()}function eU(t,e){var r=_1(t)?String(e):"",i=t[t.length-1]===` -`,n=i&&(t[t.length-2]===` -`||t===` -`),s=n?"+":i?"":"-";return r+s+` -`}function tU(t){return t[t.length-1]===` -`?t.slice(0,-1):t}function Sde(t,e){for(var r=/(\n+)([^\n]*)/g,i=function(){var c=t.indexOf(` -`);return c=c!==-1?c:t.length,r.lastIndex=c,rU(t.slice(0,c),e)}(),n=t[0]===` -`||t[0]===" ",s,o;o=r.exec(t);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+rU(l,e),n=s}return i}function rU(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=r.exec(t);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+t.slice(n,s),n=s+1),o=a;return l+=` -`,t.length-n>e&&o>n?l+=t.slice(n,o)+` -`+t.slice(o+1):l+=t.slice(n),l.slice(1)}function kde(t){for(var e="",r,i,n,s=0;s=55296&&r<=56319&&(i=t.charCodeAt(s+1),i>=56320&&i<=57343)){e+=J1((r-55296)*1024+i-56320+65536),s++;continue}n=Ki[r],e+=!n&&sg(r)?t[s]:n||J1(r)}return e}function Pde(t,e,r){var i="",n=t.tag,s,o;for(s=0,o=r.length;s1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),!!fc(t,e,c,!1,!1)&&(u+=t.dump,i+=u));t.tag=n,t.dump="{"+i+"}"}function Fde(t,e,r,i){var n="",s=t.tag,o=Object.keys(r),a,l,c,u,g,f;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new sp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(t.dump&&op===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,g&&(f+=$Q(t,e)),!!fc(t,e+1,u,!0,g)&&(t.dump&&op===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,n+=f));t.tag=s,t.dump=n||"{}"}function iU(t,e,r){var i,n,s,o,a,l;for(n=r?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function fc(t,e,r,i,n,s){t.tag=null,t.dump=r,iU(t,r,!1)||iU(t,r,!0);var o=O1.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=t.duplicates.indexOf(r),c=l!==-1),(t.tag!==null&&t.tag!=="?"||c||t.indent!==2&&e>0)&&(n=!1),c&&t.usedDuplicates[l])t.dump="*ref_"+l;else{if(a&&c&&!t.usedDuplicates[l]&&(t.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(t.dump).length!==0?(Fde(t,e,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(Rde(t,e,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump));else if(o==="[object Array]"){var u=t.noArrayIndent&&e>0?e-1:e;i&&t.dump.length!==0?(Dde(t,u,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(Pde(t,u,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump))}else if(o==="[object String]")t.tag!=="?"&&xde(t,t.dump,e,s);else{if(t.skipInvalid)return!1;throw new sp("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function Nde(t,e){var r=[],i=[],n,s;for(tv(t,r,i),n=0,s=i.length;n{"use strict";var fI=T1(),oU=sU();function hI(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Or.exports.Type=li();Or.exports.Schema=cc();Or.exports.FAILSAFE_SCHEMA=oI();Or.exports.JSON_SCHEMA=JQ();Or.exports.CORE_SCHEMA=WQ();Or.exports.DEFAULT_SAFE_SCHEMA=eg();Or.exports.DEFAULT_FULL_SCHEMA=rp();Or.exports.load=fI.load;Or.exports.loadAll=fI.loadAll;Or.exports.safeLoad=fI.safeLoad;Or.exports.safeLoadAll=fI.safeLoadAll;Or.exports.dump=oU.dump;Or.exports.safeDump=oU.safeDump;Or.exports.YAMLException=Zu();Or.exports.MINIMAL_SCHEMA=oI();Or.exports.SAFE_SCHEMA=eg();Or.exports.DEFAULT_SCHEMA=rp();Or.exports.scan=hI("scan");Or.exports.parse=hI("parse");Or.exports.compose=hI("compose");Or.exports.addConstructor=hI("addConstructor")});var lU=w((i$e,AU)=>{"use strict";var Tde=aU();AU.exports=Tde});var uU=w((n$e,cU)=>{"use strict";function Ode(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function hc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,hc)}Ode(hc,Error);hc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ge]:me})))},Y=function(R){return R},j=function(R){return R},Z=Xs("correct indentation"),J=" ",re=gr(" ",!1),ee=function(R){return R.length===TA*Yu},A=function(R){return R.length===(TA+1)*Yu},oe=function(){return TA++,!0},le=function(){return TA--,!0},X=function(){return Mu()},O=Xs("pseudostring"),L=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,pe=qn(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Ce=/^[^\r\n\t ,\][{}:#"']/,Oe=qn(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),te=function(){return Mu().replace(/^ *| *$/g,"")},se="--",be=gr("--",!1),he=/^[a-zA-Z\/0-9]/,Fe=qn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ue=/^[^\r\n\t :,]/,xe=qn(["\r",` -`," "," ",":",","],!0,!1),Se="null",de=gr("null",!1),V=function(){return null},Qe="true",ce=gr("true",!1),fe=function(){return!0},gt="false",Ht=gr("false",!1),Mt=function(){return!1},mi=Xs("string"),Gt='"',Qr=gr('"',!1),Ti=function(){return""},Vs=function(R){return R},Un=function(R){return R.join("")},Hn=/^[^"\\\0-\x1F\x7F]/,vr=qn(['"',"\\",["\0",""],"\x7F"],!0,!1),Gn='\\"',gs=gr('\\"',!1),ya=function(){return'"'},kA="\\\\",Ru=gr("\\\\",!1),fs=function(){return"\\"},xA="\\/",wa=gr("\\/",!1),Fu=function(){return"/"},PA="\\b",DA=gr("\\b",!1),Sr=function(){return"\b"},jl="\\f",Nu=gr("\\f",!1),So=function(){return"\f"},Lu="\\n",Sh=gr("\\n",!1),kh=function(){return` -`},ae="\\r",Oi=gr("\\r",!1),ko=function(){return"\r"},jn="\\t",Tu=gr("\\t",!1),vt=function(){return" "},Yl="\\u",Yn=gr("\\u",!1),hs=function(R,q,me,Ge){return String.fromCharCode(parseInt(`0x${R}${q}${me}${Ge}`))},ps=/^[0-9a-fA-F]/,pt=qn([["0","9"],["a","f"],["A","F"]],!1,!1),xo=Xs("blank space"),lt=/^[ \t]/,mn=qn([" "," "],!1,!1),v=Xs("white space"),Tt=/^[ \t\n\r]/,Ou=qn([" "," ",` -`,"\r"],!1,!1),ql=`\r -`,xh=gr(`\r -`,!1),Ph=` -`,Dh=gr(` -`,!1),Rh="\r",Fh=gr("\r",!1),G=0,yt=0,RA=[{line:1,column:1}],$i=0,Jl=[],$e=0,Ba;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Mu(){return t.substring(yt,G)}function kE(){return En(yt,G)}function Nh(R,q){throw q=q!==void 0?q:En(yt,G),zl([Xs(R)],t.substring(yt,G),q)}function xE(R,q){throw q=q!==void 0?q:En(yt,G),Ku(R,q)}function gr(R,q){return{type:"literal",text:R,ignoreCase:q}}function qn(R,q,me){return{type:"class",parts:R,inverted:q,ignoreCase:me}}function Wl(){return{type:"any"}}function Lh(){return{type:"end"}}function Xs(R){return{type:"other",description:R}}function ba(R){var q=RA[R],me;if(q)return q;for(me=R-1;!RA[me];)me--;for(q=RA[me],q={line:q.line,column:q.column};me$i&&($i=G,Jl=[]),Jl.push(R))}function Ku(R,q){return new hc(R,null,null,q)}function zl(R,q,me){return new hc(hc.buildMessage(R,q),R,q,me)}function Zs(){var R;return R=Uu(),R}function _l(){var R,q,me;for(R=G,q=[],me=FA();me!==r;)q.push(me),me=FA();return q!==r&&(yt=R,q=s(q)),R=q,R}function FA(){var R,q,me,Ge,Te;return R=G,q=va(),q!==r?(t.charCodeAt(G)===45?(me=o,G++):(me=r,$e===0&&Me(a)),me!==r?(Ge=Lr(),Ge!==r?(Te=Qa(),Te!==r?(yt=R,q=l(Te),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R}function Uu(){var R,q,me;for(R=G,q=[],me=Hu();me!==r;)q.push(me),me=Hu();return q!==r&&(yt=R,q=c(q)),R=q,R}function Hu(){var R,q,me,Ge,Te,Xe,Et,Rt,Jn;if(R=G,q=Lr(),q===r&&(q=null),q!==r){if(me=G,t.charCodeAt(G)===35?(Ge=u,G++):(Ge=r,$e===0&&Me(g)),Ge!==r){if(Te=[],Xe=G,Et=G,$e++,Rt=to(),$e--,Rt===r?Et=void 0:(G=Et,Et=r),Et!==r?(t.length>G?(Rt=t.charAt(G),G++):(Rt=r,$e===0&&Me(f)),Rt!==r?(Et=[Et,Rt],Xe=Et):(G=Xe,Xe=r)):(G=Xe,Xe=r),Xe!==r)for(;Xe!==r;)Te.push(Xe),Xe=G,Et=G,$e++,Rt=to(),$e--,Rt===r?Et=void 0:(G=Et,Et=r),Et!==r?(t.length>G?(Rt=t.charAt(G),G++):(Rt=r,$e===0&&Me(f)),Rt!==r?(Et=[Et,Rt],Xe=Et):(G=Xe,Xe=r)):(G=Xe,Xe=r);else Te=r;Te!==r?(Ge=[Ge,Te],me=Ge):(G=me,me=r)}else G=me,me=r;if(me===r&&(me=null),me!==r){if(Ge=[],Te=eo(),Te!==r)for(;Te!==r;)Ge.push(Te),Te=eo();else Ge=r;Ge!==r?(yt=R,q=h(),R=q):(G=R,R=r)}else G=R,R=r}else G=R,R=r;if(R===r&&(R=G,q=va(),q!==r?(me=Vl(),me!==r?(Ge=Lr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(G)===58?(Te=p,G++):(Te=r,$e===0&&Me(m)),Te!==r?(Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(Et=Qa(),Et!==r?(yt=R,q=y(me,Et),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,q=va(),q!==r?(me=$s(),me!==r?(Ge=Lr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(G)===58?(Te=p,G++):(Te=r,$e===0&&Me(m)),Te!==r?(Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(Et=Qa(),Et!==r?(yt=R,q=y(me,Et),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r))){if(R=G,q=va(),q!==r)if(me=$s(),me!==r)if(Ge=Lr(),Ge!==r)if(Te=PE(),Te!==r){if(Xe=[],Et=eo(),Et!==r)for(;Et!==r;)Xe.push(Et),Et=eo();else Xe=r;Xe!==r?(yt=R,q=y(me,Te),R=q):(G=R,R=r)}else G=R,R=r;else G=R,R=r;else G=R,R=r;else G=R,R=r;if(R===r)if(R=G,q=va(),q!==r)if(me=$s(),me!==r){if(Ge=[],Te=G,Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(t.charCodeAt(G)===44?(Et=b,G++):(Et=r,$e===0&&Me(S)),Et!==r?(Rt=Lr(),Rt===r&&(Rt=null),Rt!==r?(Jn=$s(),Jn!==r?(yt=Te,Xe=k(me,Jn),Te=Xe):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r),Te!==r)for(;Te!==r;)Ge.push(Te),Te=G,Xe=Lr(),Xe===r&&(Xe=null),Xe!==r?(t.charCodeAt(G)===44?(Et=b,G++):(Et=r,$e===0&&Me(S)),Et!==r?(Rt=Lr(),Rt===r&&(Rt=null),Rt!==r?(Jn=$s(),Jn!==r?(yt=Te,Xe=k(me,Jn),Te=Xe):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r)):(G=Te,Te=r);else Ge=r;Ge!==r?(Te=Lr(),Te===r&&(Te=null),Te!==r?(t.charCodeAt(G)===58?(Xe=p,G++):(Xe=r,$e===0&&Me(m)),Xe!==r?(Et=Lr(),Et===r&&(Et=null),Et!==r?(Rt=Qa(),Rt!==r?(yt=R,q=T(me,Ge,Rt),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)}else G=R,R=r;else G=R,R=r}return R}function Qa(){var R,q,me,Ge,Te,Xe,Et;if(R=G,q=G,$e++,me=G,Ge=to(),Ge!==r?(Te=it(),Te!==r?(t.charCodeAt(G)===45?(Xe=o,G++):(Xe=r,$e===0&&Me(a)),Xe!==r?(Et=Lr(),Et!==r?(Ge=[Ge,Te,Xe,Et],me=Ge):(G=me,me=r)):(G=me,me=r)):(G=me,me=r)):(G=me,me=r),$e--,me!==r?(G=q,q=void 0):q=r,q!==r?(me=eo(),me!==r?(Ge=Po(),Ge!==r?(Te=_l(),Te!==r?(Xe=NA(),Xe!==r?(yt=R,q=Y(Te),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,q=to(),q!==r?(me=Po(),me!==r?(Ge=Uu(),Ge!==r?(Te=NA(),Te!==r?(yt=R,q=Y(Ge),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r),R===r))if(R=G,q=Xl(),q!==r){if(me=[],Ge=eo(),Ge!==r)for(;Ge!==r;)me.push(Ge),Ge=eo();else me=r;me!==r?(yt=R,q=j(q),R=q):(G=R,R=r)}else G=R,R=r;return R}function va(){var R,q,me;for($e++,R=G,q=[],t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));me!==r;)q.push(me),t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));return q!==r?(yt=G,me=ee(q),me?me=void 0:me=r,me!==r?(q=[q,me],R=q):(G=R,R=r)):(G=R,R=r),$e--,R===r&&(q=r,$e===0&&Me(Z)),R}function it(){var R,q,me;for(R=G,q=[],t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));me!==r;)q.push(me),t.charCodeAt(G)===32?(me=J,G++):(me=r,$e===0&&Me(re));return q!==r?(yt=G,me=A(q),me?me=void 0:me=r,me!==r?(q=[q,me],R=q):(G=R,R=r)):(G=R,R=r),R}function Po(){var R;return yt=G,R=oe(),R?R=void 0:R=r,R}function NA(){var R;return yt=G,R=le(),R?R=void 0:R=r,R}function Vl(){var R;return R=Zl(),R===r&&(R=Th()),R}function $s(){var R,q,me;if(R=Zl(),R===r){if(R=G,q=[],me=Gu(),me!==r)for(;me!==r;)q.push(me),me=Gu();else q=r;q!==r&&(yt=R,q=X()),R=q}return R}function Xl(){var R;return R=Oh(),R===r&&(R=DE(),R===r&&(R=Zl(),R===r&&(R=Th()))),R}function PE(){var R;return R=Oh(),R===r&&(R=Zl(),R===r&&(R=Gu())),R}function Th(){var R,q,me,Ge,Te,Xe;if($e++,R=G,L.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(pe)),q!==r){for(me=[],Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Ce.test(t.charAt(G))?(Xe=t.charAt(G),G++):(Xe=r,$e===0&&Me(Oe)),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);Ge!==r;)me.push(Ge),Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Ce.test(t.charAt(G))?(Xe=t.charAt(G),G++):(Xe=r,$e===0&&Me(Oe)),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);me!==r?(yt=R,q=te(),R=q):(G=R,R=r)}else G=R,R=r;return $e--,R===r&&(q=r,$e===0&&Me(O)),R}function Gu(){var R,q,me,Ge,Te;if(R=G,t.substr(G,2)===se?(q=se,G+=2):(q=r,$e===0&&Me(be)),q===r&&(q=null),q!==r)if(he.test(t.charAt(G))?(me=t.charAt(G),G++):(me=r,$e===0&&Me(Fe)),me!==r){for(Ge=[],Ue.test(t.charAt(G))?(Te=t.charAt(G),G++):(Te=r,$e===0&&Me(xe));Te!==r;)Ge.push(Te),Ue.test(t.charAt(G))?(Te=t.charAt(G),G++):(Te=r,$e===0&&Me(xe));Ge!==r?(yt=R,q=te(),R=q):(G=R,R=r)}else G=R,R=r;else G=R,R=r;return R}function Oh(){var R,q;return R=G,t.substr(G,4)===Se?(q=Se,G+=4):(q=r,$e===0&&Me(de)),q!==r&&(yt=R,q=V()),R=q,R}function DE(){var R,q;return R=G,t.substr(G,4)===Qe?(q=Qe,G+=4):(q=r,$e===0&&Me(ce)),q!==r&&(yt=R,q=fe()),R=q,R===r&&(R=G,t.substr(G,5)===gt?(q=gt,G+=5):(q=r,$e===0&&Me(Ht)),q!==r&&(yt=R,q=Mt()),R=q),R}function Zl(){var R,q,me,Ge;return $e++,R=G,t.charCodeAt(G)===34?(q=Gt,G++):(q=r,$e===0&&Me(Qr)),q!==r?(t.charCodeAt(G)===34?(me=Gt,G++):(me=r,$e===0&&Me(Qr)),me!==r?(yt=R,q=Ti(),R=q):(G=R,R=r)):(G=R,R=r),R===r&&(R=G,t.charCodeAt(G)===34?(q=Gt,G++):(q=r,$e===0&&Me(Qr)),q!==r?(me=RE(),me!==r?(t.charCodeAt(G)===34?(Ge=Gt,G++):(Ge=r,$e===0&&Me(Qr)),Ge!==r?(yt=R,q=Vs(me),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)),$e--,R===r&&(q=r,$e===0&&Me(mi)),R}function RE(){var R,q,me;if(R=G,q=[],me=ju(),me!==r)for(;me!==r;)q.push(me),me=ju();else q=r;return q!==r&&(yt=R,q=Un(q)),R=q,R}function ju(){var R,q,me,Ge,Te,Xe;return Hn.test(t.charAt(G))?(R=t.charAt(G),G++):(R=r,$e===0&&Me(vr)),R===r&&(R=G,t.substr(G,2)===Gn?(q=Gn,G+=2):(q=r,$e===0&&Me(gs)),q!==r&&(yt=R,q=ya()),R=q,R===r&&(R=G,t.substr(G,2)===kA?(q=kA,G+=2):(q=r,$e===0&&Me(Ru)),q!==r&&(yt=R,q=fs()),R=q,R===r&&(R=G,t.substr(G,2)===xA?(q=xA,G+=2):(q=r,$e===0&&Me(wa)),q!==r&&(yt=R,q=Fu()),R=q,R===r&&(R=G,t.substr(G,2)===PA?(q=PA,G+=2):(q=r,$e===0&&Me(DA)),q!==r&&(yt=R,q=Sr()),R=q,R===r&&(R=G,t.substr(G,2)===jl?(q=jl,G+=2):(q=r,$e===0&&Me(Nu)),q!==r&&(yt=R,q=So()),R=q,R===r&&(R=G,t.substr(G,2)===Lu?(q=Lu,G+=2):(q=r,$e===0&&Me(Sh)),q!==r&&(yt=R,q=kh()),R=q,R===r&&(R=G,t.substr(G,2)===ae?(q=ae,G+=2):(q=r,$e===0&&Me(Oi)),q!==r&&(yt=R,q=ko()),R=q,R===r&&(R=G,t.substr(G,2)===jn?(q=jn,G+=2):(q=r,$e===0&&Me(Tu)),q!==r&&(yt=R,q=vt()),R=q,R===r&&(R=G,t.substr(G,2)===Yl?(q=Yl,G+=2):(q=r,$e===0&&Me(Yn)),q!==r?(me=LA(),me!==r?(Ge=LA(),Ge!==r?(Te=LA(),Te!==r?(Xe=LA(),Xe!==r?(yt=R,q=hs(me,Ge,Te,Xe),R=q):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)):(G=R,R=r)))))))))),R}function LA(){var R;return ps.test(t.charAt(G))?(R=t.charAt(G),G++):(R=r,$e===0&&Me(pt)),R}function Lr(){var R,q;if($e++,R=[],lt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(mn)),q!==r)for(;q!==r;)R.push(q),lt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(mn));else R=r;return $e--,R===r&&(q=r,$e===0&&Me(xo)),R}function FE(){var R,q;if($e++,R=[],Tt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(Ou)),q!==r)for(;q!==r;)R.push(q),Tt.test(t.charAt(G))?(q=t.charAt(G),G++):(q=r,$e===0&&Me(Ou));else R=r;return $e--,R===r&&(q=r,$e===0&&Me(v)),R}function eo(){var R,q,me,Ge,Te,Xe;if(R=G,q=to(),q!==r){for(me=[],Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Xe=to(),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);Ge!==r;)me.push(Ge),Ge=G,Te=Lr(),Te===r&&(Te=null),Te!==r?(Xe=to(),Xe!==r?(Te=[Te,Xe],Ge=Te):(G=Ge,Ge=r)):(G=Ge,Ge=r);me!==r?(q=[q,me],R=q):(G=R,R=r)}else G=R,R=r;return R}function to(){var R;return t.substr(G,2)===ql?(R=ql,G+=2):(R=r,$e===0&&Me(xh)),R===r&&(t.charCodeAt(G)===10?(R=Ph,G++):(R=r,$e===0&&Me(Dh)),R===r&&(t.charCodeAt(G)===13?(R=Rh,G++):(R=r,$e===0&&Me(Fh)))),R}let Yu=2,TA=0;if(Ba=n(),Ba!==r&&G===t.length)return Ba;throw Ba!==r&&G{"use strict";var jde=t=>{let e=!1,r=!1,i=!1;for(let n=0;n{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(t)?t=t.map(n=>n.trim()).filter(n=>n.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=jde(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),r(t))};nv.exports=dU;nv.exports.default=dU});var EU=w((c$e,mU)=>{mU.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var pc=w(Vn=>{"use strict";var IU=EU(),Fo=process.env;Object.defineProperty(Vn,"_vendors",{value:IU.map(function(t){return t.constant})});Vn.name=null;Vn.isPR=null;IU.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(i){return yU(i)});if(Vn[t.constant]=r,r)switch(Vn.name=t.name,typeof t.pr){case"string":Vn.isPR=!!Fo[t.pr];break;case"object":"env"in t.pr?Vn.isPR=t.pr.env in Fo&&Fo[t.pr.env]!==t.pr.ne:"any"in t.pr?Vn.isPR=t.pr.any.some(function(i){return!!Fo[i]}):Vn.isPR=yU(t.pr);break;default:Vn.isPR=null}});Vn.isCI=!!(Fo.CI||Fo.CONTINUOUS_INTEGRATION||Fo.BUILD_NUMBER||Fo.RUN_ID||Vn.name);function yU(t){return typeof t=="string"?!!Fo[t]:Object.keys(t).every(function(e){return Fo[e]===t[e]})}});var ag={};ft(ag,{KeyRelationship:()=>mc,applyCascade:()=>hp,base64RegExp:()=>vU,colorStringAlphaRegExp:()=>QU,colorStringRegExp:()=>bU,computeKey:()=>YA,getPrintable:()=>ti,hasExactLength:()=>DU,hasForbiddenKeys:()=>yCe,hasKeyRelationship:()=>gv,hasMaxLength:()=>nCe,hasMinLength:()=>iCe,hasMutuallyExclusiveKeys:()=>wCe,hasRequiredKeys:()=>ICe,hasUniqueItems:()=>sCe,isArray:()=>_de,isAtLeast:()=>ACe,isAtMost:()=>lCe,isBase64:()=>mCe,isBoolean:()=>Jde,isDate:()=>zde,isDict:()=>Xde,isEnum:()=>nn,isHexColor:()=>CCe,isISO8601:()=>dCe,isInExclusiveRange:()=>uCe,isInInclusiveRange:()=>cCe,isInstanceOf:()=>$de,isInteger:()=>gCe,isJSON:()=>ECe,isLiteral:()=>Yde,isLowerCase:()=>fCe,isNegative:()=>oCe,isNullable:()=>rCe,isNumber:()=>Wde,isObject:()=>Zde,isOneOf:()=>eCe,isOptional:()=>tCe,isPositive:()=>aCe,isString:()=>fp,isTuple:()=>Vde,isUUID4:()=>pCe,isUnknown:()=>PU,isUpperCase:()=>hCe,iso8601RegExp:()=>uv,makeCoercionFn:()=>Cc,makeSetter:()=>xU,makeTrait:()=>kU,makeValidator:()=>St,matchesRegExp:()=>pp,plural:()=>mI,pushError:()=>mt,simpleKeyRegExp:()=>BU,uuid4RegExp:()=>SU});function St({test:t}){return kU(t)()}function ti(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function YA(t,e){var r,i,n;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:BU.test(e)?`${(i=t==null?void 0:t.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=t==null?void 0:t.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function Cc(t,e){return r=>{let i=t[e];return t[e]=r,Cc(t,e).bind(null,i)}}function xU(t,e){return r=>{t[e]=r}}function mI(t,e,r){return t===1?e:r}function mt({errors:t,p:e}={},r){return t==null||t.push(`${e!=null?e:"."}: ${r}`),!1}function Yde(t){return St({test:(e,r)=>e!==t?mt(r,`Expected a literal (got ${ti(t)})`):!0})}function nn(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return St({test:(i,n)=>r.has(i)?!0:mt(n,`Expected a valid enumeration value (got ${ti(i)})`)})}var BU,bU,QU,vU,SU,uv,kU,PU,fp,qde,Jde,Wde,zde,_de,Vde,Xde,Zde,$de,eCe,hp,tCe,rCe,iCe,nCe,DU,sCe,oCe,aCe,ACe,lCe,cCe,uCe,gCe,pp,fCe,hCe,pCe,dCe,CCe,mCe,ECe,ICe,yCe,wCe,mc,BCe,gv,Is=ffe(()=>{BU=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bU=/^#[0-9a-f]{6}$/i,QU=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,vU=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,SU=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,uv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,kU=t=>()=>t;PU=()=>St({test:(t,e)=>!0});fp=()=>St({test:(t,e)=>typeof t!="string"?mt(e,`Expected a string (got ${ti(t)})`):!0});qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Jde=()=>St({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i=qde.get(t);if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a boolean (got ${ti(t)})`)}return!0}}),Wde=()=>St({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===t)i=n;else return mt(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a number (got ${ti(t)})`)}return!0}}),zde=()=>St({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof t=="string"&&uv.test(t))i=new Date(t);else{let n;if(typeof t=="string"){let s;try{s=JSON.parse(t)}catch(o){}typeof s=="number"&&(n=s)}else typeof t=="number"&&(n=t);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return mt(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a date (got ${ti(t)})`)}return!0}}),_de=(t,{delimiter:e}={})=>St({test:(r,i)=>{var n;if(typeof r=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");r=r.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,r)])}if(!Array.isArray(r))return mt(i,`Expected an array (got ${ti(r)})`);let s=!0;for(let o=0,a=r.length;o{let r=DU(t.length);return St({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return mt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return mt(n,`Expected a tuple (got ${ti(i)})`);let o=r(i,Object.assign({},n));for(let a=0,l=i.length;aSt({test:(r,i)=>{if(typeof r!="object"||r===null)return mt(i,`Expected an object (got ${ti(r)})`);let n=Object.keys(r),s=!0;for(let o=0,a=n.length;o{let r=Object.keys(t);return St({test:(i,n)=>{if(typeof i!="object"||i===null)return mt(n,`Expected an object (got ${ti(i)})`);let s=new Set([...r,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=mt(Object.assign(Object.assign({},n),{p:YA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(t,l)?t[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:YA(n,l),coercion:Cc(i,l)}))&&a:e===null?a=mt(Object.assign(Object.assign({},n),{p:YA(n,l)}),`Extraneous property (got ${ti(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:xU(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},$de=t=>St({test:(e,r)=>e instanceof t?!0:mt(r,`Expected an instance of ${t.name} (got ${ti(e)})`)}),eCe=(t,{exclusive:e=!1}={})=>St({test:(r,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=t.length;c1?mt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),hp=(t,e)=>St({test:(r,i)=>{var n,s;let o={value:r},a=typeof(i==null?void 0:i.coercions)!="undefined"?Cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!t(r,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==r){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),tCe=t=>St({test:(e,r)=>typeof e=="undefined"?!0:t(e,r)}),rCe=t=>St({test:(e,r)=>e===null?!0:t(e,r)}),iCe=t=>St({test:(e,r)=>e.length>=t?!0:mt(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),nCe=t=>St({test:(e,r)=>e.length<=t?!0:mt(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),DU=t=>St({test:(e,r)=>e.length!==t?mt(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),sCe=({map:t}={})=>St({test:(e,r)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sSt({test:(t,e)=>t<=0?!0:mt(e,`Expected to be negative (got ${t})`)}),aCe=()=>St({test:(t,e)=>t>=0?!0:mt(e,`Expected to be positive (got ${t})`)}),ACe=t=>St({test:(e,r)=>e>=t?!0:mt(r,`Expected to be at least ${t} (got ${e})`)}),lCe=t=>St({test:(e,r)=>e<=t?!0:mt(r,`Expected to be at most ${t} (got ${e})`)}),cCe=(t,e)=>St({test:(r,i)=>r>=t&&r<=e?!0:mt(i,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),uCe=(t,e)=>St({test:(r,i)=>r>=t&&rSt({test:(e,r)=>e!==Math.round(e)?mt(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:mt(r,`Expected to be a safe integer (got ${e})`)}),pp=t=>St({test:(e,r)=>t.test(e)?!0:mt(r,`Expected to match the pattern ${t.toString()} (got ${ti(e)})`)}),fCe=()=>St({test:(t,e)=>t!==t.toLowerCase()?mt(e,`Expected to be all-lowercase (got ${t})`):!0}),hCe=()=>St({test:(t,e)=>t!==t.toUpperCase()?mt(e,`Expected to be all-uppercase (got ${t})`):!0}),pCe=()=>St({test:(t,e)=>SU.test(t)?!0:mt(e,`Expected to be a valid UUID v4 (got ${ti(t)})`)}),dCe=()=>St({test:(t,e)=>uv.test(t)?!1:mt(e,`Expected to be a valid ISO 8601 date string (got ${ti(t)})`)}),CCe=({alpha:t=!1})=>St({test:(e,r)=>(t?bU.test(e):QU.test(e))?!0:mt(r,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)}),mCe=()=>St({test:(t,e)=>vU.test(t)?!0:mt(e,`Expected to be a valid base 64 string (got ${ti(t)})`)}),ECe=(t=PU())=>St({test:(e,r)=>{let i;try{i=JSON.parse(e)}catch(n){return mt(r,`Expected to be a valid JSON string (got ${ti(e)})`)}return t(i,r)}}),ICe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?mt(i,`Missing required ${mI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},yCe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?mt(i,`Forbidden ${mI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},wCe=t=>{let e=new Set(t);return St({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?mt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(mc||(mc={}));BCe={[mc.Forbids]:{expect:!1,message:"forbids using"},[mc.Requires]:{expect:!0,message:"requires using"}},gv=(t,e,r,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(r),o=BCe[e];return St({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(t)||n.has(a[t]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?mt(l,`Property "${t}" ${o.message} ${mI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var VU=w((get,_U)=>{"use strict";_U.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var lg=w((fet,Ev)=>{"use strict";var UCe=VU(),XU=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,i=()=>{r--,e.length>0&&e.shift()()},n=(a,l,...c)=>{r++;let u=UCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{rnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),o};Ev.exports=XU;Ev.exports.default=XU});var Ep=w((pet,ZU)=>{var HCe="2.0.0",GCe=256,jCe=Number.MAX_SAFE_INTEGER||9007199254740991,YCe=16;ZU.exports={SEMVER_SPEC_VERSION:HCe,MAX_LENGTH:GCe,MAX_SAFE_INTEGER:jCe,MAX_SAFE_COMPONENT_LENGTH:YCe}});var Ip=w((det,$U)=>{var qCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};$U.exports=qCe});var Ec=w((JA,e2)=>{var{MAX_SAFE_COMPONENT_LENGTH:Iv}=Ep(),JCe=Ip();JA=e2.exports={};var WCe=JA.re=[],tt=JA.src=[],rt=JA.t={},zCe=0,kt=(t,e,r)=>{let i=zCe++;JCe(i,e),rt[t]=i,tt[i]=e,WCe[i]=new RegExp(e,r?"g":void 0)};kt("NUMERICIDENTIFIER","0|[1-9]\\d*");kt("NUMERICIDENTIFIERLOOSE","[0-9]+");kt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");kt("MAINVERSION",`(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})`);kt("MAINVERSIONLOOSE",`(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})`);kt("PRERELEASEIDENTIFIER",`(?:${tt[rt.NUMERICIDENTIFIER]}|${tt[rt.NONNUMERICIDENTIFIER]})`);kt("PRERELEASEIDENTIFIERLOOSE",`(?:${tt[rt.NUMERICIDENTIFIERLOOSE]}|${tt[rt.NONNUMERICIDENTIFIER]})`);kt("PRERELEASE",`(?:-(${tt[rt.PRERELEASEIDENTIFIER]}(?:\\.${tt[rt.PRERELEASEIDENTIFIER]})*))`);kt("PRERELEASELOOSE",`(?:-?(${tt[rt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${tt[rt.PRERELEASEIDENTIFIERLOOSE]})*))`);kt("BUILDIDENTIFIER","[0-9A-Za-z-]+");kt("BUILD",`(?:\\+(${tt[rt.BUILDIDENTIFIER]}(?:\\.${tt[rt.BUILDIDENTIFIER]})*))`);kt("FULLPLAIN",`v?${tt[rt.MAINVERSION]}${tt[rt.PRERELEASE]}?${tt[rt.BUILD]}?`);kt("FULL",`^${tt[rt.FULLPLAIN]}$`);kt("LOOSEPLAIN",`[v=\\s]*${tt[rt.MAINVERSIONLOOSE]}${tt[rt.PRERELEASELOOSE]}?${tt[rt.BUILD]}?`);kt("LOOSE",`^${tt[rt.LOOSEPLAIN]}$`);kt("GTLT","((?:<|>)?=?)");kt("XRANGEIDENTIFIERLOOSE",`${tt[rt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);kt("XRANGEIDENTIFIER",`${tt[rt.NUMERICIDENTIFIER]}|x|X|\\*`);kt("XRANGEPLAIN",`[v=\\s]*(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:${tt[rt.PRERELEASE]})?${tt[rt.BUILD]}?)?)?`);kt("XRANGEPLAINLOOSE",`[v=\\s]*(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:${tt[rt.PRERELEASELOOSE]})?${tt[rt.BUILD]}?)?)?`);kt("XRANGE",`^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAIN]}$`);kt("XRANGELOOSE",`^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAINLOOSE]}$`);kt("COERCE",`(^|[^\\d])(\\d{1,${Iv}})(?:\\.(\\d{1,${Iv}}))?(?:\\.(\\d{1,${Iv}}))?(?:$|[^\\d])`);kt("COERCERTL",tt[rt.COERCE],!0);kt("LONETILDE","(?:~>?)");kt("TILDETRIM",`(\\s*)${tt[rt.LONETILDE]}\\s+`,!0);JA.tildeTrimReplace="$1~";kt("TILDE",`^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAIN]}$`);kt("TILDELOOSE",`^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAINLOOSE]}$`);kt("LONECARET","(?:\\^)");kt("CARETTRIM",`(\\s*)${tt[rt.LONECARET]}\\s+`,!0);JA.caretTrimReplace="$1^";kt("CARET",`^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAIN]}$`);kt("CARETLOOSE",`^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAINLOOSE]}$`);kt("COMPARATORLOOSE",`^${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]})$|^$`);kt("COMPARATOR",`^${tt[rt.GTLT]}\\s*(${tt[rt.FULLPLAIN]})$|^$`);kt("COMPARATORTRIM",`(\\s*)${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]}|${tt[rt.XRANGEPLAIN]})`,!0);JA.comparatorTrimReplace="$1$2$3";kt("HYPHENRANGE",`^\\s*(${tt[rt.XRANGEPLAIN]})\\s+-\\s+(${tt[rt.XRANGEPLAIN]})\\s*$`);kt("HYPHENRANGELOOSE",`^\\s*(${tt[rt.XRANGEPLAINLOOSE]})\\s+-\\s+(${tt[rt.XRANGEPLAINLOOSE]})\\s*$`);kt("STAR","(<|>)?=?\\s*\\*");kt("GTE0","^\\s*>=\\s*0.0.0\\s*$");kt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var yp=w((Cet,t2)=>{var _Ce=["includePrerelease","loose","rtl"],VCe=t=>t?typeof t!="object"?{loose:!0}:_Ce.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};t2.exports=VCe});var QI=w((met,r2)=>{var i2=/^[0-9]+$/,n2=(t,e)=>{let r=i2.test(t),i=i2.test(e);return r&&i&&(t=+t,e=+e),t===e?0:r&&!i?-1:i&&!r?1:tn2(e,t);r2.exports={compareIdentifiers:n2,rcompareIdentifiers:XCe}});var Hi=w((Eet,s2)=>{var vI=Ip(),{MAX_LENGTH:o2,MAX_SAFE_INTEGER:SI}=Ep(),{re:a2,t:A2}=Ec(),ZCe=yp(),{compareIdentifiers:wp}=QI(),ws=class{constructor(e,r){if(r=ZCe(r),e instanceof ws){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>o2)throw new TypeError(`version is longer than ${o2} characters`);vI("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let i=e.trim().match(r.loose?a2[A2.LOOSE]:a2[A2.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>SI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>SI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>SI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};s2.exports=ws});var Ic=w((Iet,l2)=>{var{MAX_LENGTH:$Ce}=Ep(),{re:c2,t:u2}=Ec(),g2=Hi(),eme=yp(),tme=(t,e)=>{if(e=eme(e),t instanceof g2)return t;if(typeof t!="string"||t.length>$Ce||!(e.loose?c2[u2.LOOSE]:c2[u2.FULL]).test(t))return null;try{return new g2(t,e)}catch(i){return null}};l2.exports=tme});var h2=w((yet,f2)=>{var rme=Ic(),ime=(t,e)=>{let r=rme(t,e);return r?r.version:null};f2.exports=ime});var d2=w((wet,p2)=>{var nme=Ic(),sme=(t,e)=>{let r=nme(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};p2.exports=sme});var m2=w((Bet,C2)=>{var ome=Hi(),ame=(t,e,r,i)=>{typeof r=="string"&&(i=r,r=void 0);try{return new ome(t,r).inc(e,i).version}catch(n){return null}};C2.exports=ame});var Bs=w((bet,E2)=>{var I2=Hi(),Ame=(t,e,r)=>new I2(t,r).compare(new I2(e,r));E2.exports=Ame});var kI=w((Qet,y2)=>{var lme=Bs(),cme=(t,e,r)=>lme(t,e,r)===0;y2.exports=cme});var b2=w((vet,w2)=>{var B2=Ic(),ume=kI(),gme=(t,e)=>{if(ume(t,e))return null;{let r=B2(t),i=B2(e),n=r.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in r)if((a==="major"||a==="minor"||a==="patch")&&r[a]!==i[a])return s+a;return o}};w2.exports=gme});var v2=w((ket,Q2)=>{var fme=Hi(),hme=(t,e)=>new fme(t,e).major;Q2.exports=hme});var k2=w((xet,S2)=>{var pme=Hi(),dme=(t,e)=>new pme(t,e).minor;S2.exports=dme});var P2=w((Pet,x2)=>{var Cme=Hi(),mme=(t,e)=>new Cme(t,e).patch;x2.exports=mme});var R2=w((Det,D2)=>{var Eme=Ic(),Ime=(t,e)=>{let r=Eme(t,e);return r&&r.prerelease.length?r.prerelease:null};D2.exports=Ime});var N2=w((Ret,F2)=>{var yme=Bs(),wme=(t,e,r)=>yme(e,t,r);F2.exports=wme});var T2=w((Fet,L2)=>{var Bme=Bs(),bme=(t,e)=>Bme(t,e,!0);L2.exports=bme});var xI=w((Net,O2)=>{var M2=Hi(),Qme=(t,e,r)=>{let i=new M2(t,r),n=new M2(e,r);return i.compare(n)||i.compareBuild(n)};O2.exports=Qme});var U2=w((Let,K2)=>{var vme=xI(),Sme=(t,e)=>t.sort((r,i)=>vme(r,i,e));K2.exports=Sme});var G2=w((Tet,H2)=>{var kme=xI(),xme=(t,e)=>t.sort((r,i)=>kme(i,r,e));H2.exports=xme});var Bp=w((Oet,j2)=>{var Pme=Bs(),Dme=(t,e,r)=>Pme(t,e,r)>0;j2.exports=Dme});var PI=w((Met,Y2)=>{var Rme=Bs(),Fme=(t,e,r)=>Rme(t,e,r)<0;Y2.exports=Fme});var yv=w((Ket,q2)=>{var Nme=Bs(),Lme=(t,e,r)=>Nme(t,e,r)!==0;q2.exports=Lme});var DI=w((Uet,J2)=>{var Tme=Bs(),Ome=(t,e,r)=>Tme(t,e,r)>=0;J2.exports=Ome});var RI=w((Het,W2)=>{var Mme=Bs(),Kme=(t,e,r)=>Mme(t,e,r)<=0;W2.exports=Kme});var wv=w((Get,z2)=>{var Ume=kI(),Hme=yv(),Gme=Bp(),jme=DI(),Yme=PI(),qme=RI(),Jme=(t,e,r,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Ume(t,r,i);case"!=":return Hme(t,r,i);case">":return Gme(t,r,i);case">=":return jme(t,r,i);case"<":return Yme(t,r,i);case"<=":return qme(t,r,i);default:throw new TypeError(`Invalid operator: ${e}`)}};z2.exports=Jme});var V2=w((jet,_2)=>{var Wme=Hi(),zme=Ic(),{re:FI,t:NI}=Ec(),_me=(t,e)=>{if(t instanceof Wme)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(FI[NI.COERCE]);else{let i;for(;(i=FI[NI.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||i.index+i[0].length!==r.index+r[0].length)&&(r=i),FI[NI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;FI[NI.COERCERTL].lastIndex=-1}return r===null?null:zme(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};_2.exports=_me});var Z2=w((Yet,X2)=>{"use strict";X2.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var bp=w((qet,$2)=>{"use strict";$2.exports=jt;jt.Node=yc;jt.create=jt;function jt(t){var e=this;if(e instanceof jt||(e=new jt),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=e;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)r=t(r,i.value,n),i=i.next;return r};jt.prototype.reduceReverse=function(t,e){var r,i=this.tail;if(arguments.length>1)r=e;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)r=t(r,i.value,n),i=i.prev;return r};jt.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};jt.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};jt.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new jt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>t;i--,n=n.prev)r.push(n.value);return r};jt.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var i=0,n=this.head;n!==null&&i{"use strict";var $me=bp(),wc=Symbol("max"),Oa=Symbol("length"),cg=Symbol("lengthCalculator"),Qp=Symbol("allowStale"),Bc=Symbol("maxAge"),Ma=Symbol("dispose"),tH=Symbol("noDisposeOnSet"),Ii=Symbol("lruList"),so=Symbol("cache"),rH=Symbol("updateAgeOnGet"),Bv=()=>1,iH=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[wc]=e.max||Infinity,i=e.length||Bv;if(this[cg]=typeof i!="function"?Bv:i,this[Qp]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Bc]=e.maxAge||0,this[Ma]=e.dispose,this[tH]=e.noDisposeOnSet||!1,this[rH]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[wc]=e||Infinity,vp(this)}get max(){return this[wc]}set allowStale(e){this[Qp]=!!e}get allowStale(){return this[Qp]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Bc]=e,vp(this)}get maxAge(){return this[Bc]}set lengthCalculator(e){typeof e!="function"&&(e=Bv),e!==this[cg]&&(this[cg]=e,this[Oa]=0,this[Ii].forEach(r=>{r.length=this[cg](r.value,r.key),this[Oa]+=r.length})),vp(this)}get lengthCalculator(){return this[cg]}get length(){return this[Oa]}get itemCount(){return this[Ii].length}rforEach(e,r){r=r||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;sH(this,e,i,r),i=n}}forEach(e,r){r=r||this;for(let i=this[Ii].head;i!==null;){let n=i.next;sH(this,e,i,r),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[Ma]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[Ma](e.key,e.value)),this[so]=new Map,this[Ii]=new $me,this[Oa]=0}dump(){return this[Ii].map(e=>LI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,r,i){if(i=i||this[Bc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[cg](r,e);if(this[so].has(e)){if(s>this[wc])return ug(this,this[so].get(e)),!1;let l=this[so].get(e).value;return this[Ma]&&(this[tH]||this[Ma](e,l.value)),l.now=n,l.maxAge=i,l.value=r,this[Oa]+=s-l.length,l.length=s,this.get(e),vp(this),!0}let o=new nH(e,r,s,n,i);return o.length>this[wc]?(this[Ma]&&this[Ma](e,r),!1):(this[Oa]+=o.length,this[Ii].unshift(o),this[so].set(e,this[Ii].head),vp(this),!0)}has(e){if(!this[so].has(e))return!1;let r=this[so].get(e).value;return!LI(this,r)}get(e){return bv(this,e,!0)}peek(e){return bv(this,e,!1)}pop(){let e=this[Ii].tail;return e?(ug(this,e),e.value):null}del(e){ug(this,this[so].get(e))}load(e){this.reset();let r=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-r;o>0&&this.set(n.k,n.v,o)}}}prune(){this[so].forEach((e,r)=>bv(this,r,!1))}},bv=(t,e,r)=>{let i=t[so].get(e);if(i){let n=i.value;if(LI(t,n)){if(ug(t,i),!t[Qp])return}else r&&(t[rH]&&(i.value.now=Date.now()),t[Ii].unshiftNode(i));return n.value}},LI=(t,e)=>{if(!e||!e.maxAge&&!t[Bc])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[Bc]&&r>t[Bc]},vp=t=>{if(t[Oa]>t[wc])for(let e=t[Ii].tail;t[Oa]>t[wc]&&e!==null;){let r=e.prev;ug(t,e),e=r}},ug=(t,e)=>{if(e){let r=e.value;t[Ma]&&t[Ma](r.key,r.value),t[Oa]-=r.length,t[so].delete(r.key),t[Ii].removeNode(e)}},nH=class{constructor(e,r,i,n,s){this.key=e,this.value=r,this.length=i,this.now=n,this.maxAge=s||0}},sH=(t,e,r,i)=>{let n=r.value;LI(t,n)&&(ug(t,r),t[Qp]||(n=void 0)),n&&e.call(i,n.value,n.key,t)};eH.exports=iH});var bs=w((Wet,aH)=>{var gg=class{constructor(e,r){if(r=eEe(r),e instanceof gg)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new gg(e.raw,r);if(e instanceof Qv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!lH(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&sEe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=AH.get(i);if(n)return n;let s=this.options.loose,o=s?Gi[ki.HYPHENRANGELOOSE]:Gi[ki.HYPHENRANGE];e=e.replace(o,AEe(this.options.includePrerelease)),zr("hyphen replace",e),e=e.replace(Gi[ki.COMPARATORTRIM],rEe),zr("comparator trim",e,Gi[ki.COMPARATORTRIM]),e=e.replace(Gi[ki.TILDETRIM],iEe),e=e.replace(Gi[ki.CARETTRIM],nEe),e=e.split(/\s+/).join(" ");let a=s?Gi[ki.COMPARATORLOOSE]:Gi[ki.COMPARATOR],l=e.split(" ").map(f=>oEe(f,this.options)).join(" ").split(/\s+/).map(f=>aEe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Qv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(lH(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return AH.set(i,g),g}intersects(e,r){if(!(e instanceof gg))throw new TypeError("a Range is required");return this.set.some(i=>cH(i,r)&&e.set.some(n=>cH(n,r)&&i.every(s=>n.every(o=>s.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new tEe(e,this.options)}catch(r){return!1}for(let r=0;rt.value==="<0.0.0-0",sEe=t=>t.value==="",cH=(t,e)=>{let r=!0,i=t.slice(),n=i.pop();for(;r&&i.length;)r=i.every(s=>n.intersects(s,e)),n=i.pop();return r},oEe=(t,e)=>(zr("comp",t,e),t=gEe(t,e),zr("caret",t),t=uEe(t,e),zr("tildes",t),t=fEe(t,e),zr("xrange",t),t=hEe(t,e),zr("stars",t),t),on=t=>!t||t.toLowerCase()==="x"||t==="*",uEe=(t,e)=>t.trim().split(/\s+/).map(r=>pEe(r,e)).join(" "),pEe=(t,e)=>{let r=e.loose?Gi[ki.TILDELOOSE]:Gi[ki.TILDE];return t.replace(r,(i,n,s,o,a)=>{zr("tilde",t,i,n,s,o,a);let l;return on(n)?l="":on(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:on(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(zr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,zr("tilde return",l),l})},gEe=(t,e)=>t.trim().split(/\s+/).map(r=>dEe(r,e)).join(" "),dEe=(t,e)=>{zr("caret",t,e);let r=e.loose?Gi[ki.CARETLOOSE]:Gi[ki.CARET],i=e.includePrerelease?"-0":"";return t.replace(r,(n,s,o,a,l)=>{zr("caret",t,n,s,o,a,l);let c;return on(s)?c="":on(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:on(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(zr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(zr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),zr("caret return",c),c})},fEe=(t,e)=>(zr("replaceXRanges",t,e),t.split(/\s+/).map(r=>CEe(r,e)).join(" ")),CEe=(t,e)=>{t=t.trim();let r=e.loose?Gi[ki.XRANGELOOSE]:Gi[ki.XRANGE];return t.replace(r,(i,n,s,o,a,l)=>{zr("xRange",t,i,n,s,o,a,l);let c=on(s),u=c||on(o),g=u||on(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),zr("xRange return",i),i})},hEe=(t,e)=>(zr("replaceStars",t,e),t.trim().replace(Gi[ki.STAR],"")),aEe=(t,e)=>(zr("replaceGTE0",t,e),t.trim().replace(Gi[e.includePrerelease?ki.GTE0PRE:ki.GTE0],"")),AEe=t=>(e,r,i,n,s,o,a,l,c,u,g,f,h)=>(on(i)?r="":on(n)?r=`>=${i}.0.0${t?"-0":""}`:on(s)?r=`>=${i}.${n}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,on(c)?l="":on(u)?l=`<${+c+1}.0.0-0`:on(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:t?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),lEe=(t,e,r)=>{for(let i=0;i0){let n=t[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Sp=w((zet,uH)=>{var kp=Symbol("SemVer ANY"),xp=class{static get ANY(){return kp}constructor(e,r){if(r=mEe(r),e instanceof xp){if(e.loose===!!r.loose)return e;e=e.value}Sv("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===kp?this.value="":this.value=this.operator+this.semver.version,Sv("comp",this)}parse(e){let r=this.options.loose?gH[fH.COMPARATORLOOSE]:gH[fH.COMPARATOR],i=e.match(r);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new hH(i[2],this.options.loose):this.semver=kp}toString(){return this.value}test(e){if(Sv("Comparator.test",e,this.options.loose),this.semver===kp||e===kp)return!0;if(typeof e=="string")try{e=new hH(e,this.options)}catch(r){return!1}return vv(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof xp))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new pH(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new pH(this.value,r).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=vv(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=vv(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uH.exports=xp;var mEe=yp(),{re:gH,t:fH}=Ec(),vv=wv(),Sv=Ip(),hH=Hi(),pH=bs()});var Pp=w((_et,dH)=>{var EEe=bs(),IEe=(t,e,r)=>{try{e=new EEe(e,r)}catch(i){return!1}return e.test(t)};dH.exports=IEe});var mH=w((Vet,CH)=>{var yEe=bs(),wEe=(t,e)=>new yEe(t,e).set.map(r=>r.map(i=>i.value).join(" ").trim().split(" "));CH.exports=wEe});var IH=w((Xet,EH)=>{var BEe=Hi(),bEe=bs(),QEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new bEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new BEe(i,r))}),i};EH.exports=QEe});var wH=w((Zet,yH)=>{var vEe=Hi(),SEe=bs(),kEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new SEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new vEe(i,r))}),i};yH.exports=kEe});var QH=w(($et,BH)=>{var kv=Hi(),xEe=bs(),bH=Bp(),PEe=(t,e)=>{t=new xEe(t,e);let r=new kv("0.0.0");if(t.test(r)||(r=new kv("0.0.0-0"),t.test(r)))return r;r=null;for(let i=0;i{let a=new kv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||bH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!r||bH(r,s))&&(r=s)}return r&&t.test(r)?r:null};BH.exports=PEe});var SH=w((ett,vH)=>{var DEe=bs(),REe=(t,e)=>{try{return new DEe(t,e).range||"*"}catch(r){return null}};vH.exports=REe});var TI=w((ttt,kH)=>{var FEe=Hi(),xH=Sp(),{ANY:NEe}=xH,LEe=bs(),TEe=Pp(),PH=Bp(),DH=PI(),OEe=RI(),MEe=DI(),KEe=(t,e,r,i)=>{t=new FEe(t,i),e=new LEe(e,i);let n,s,o,a,l;switch(r){case">":n=PH,s=OEe,o=DH,a=">",l=">=";break;case"<":n=DH,s=MEe,o=PH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(TEe(t,e,i))return!1;for(let c=0;c{h.semver===NEe&&(h=new xH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(t,f.semver))return!1;if(f.operator===l&&o(t,f.semver))return!1}return!0};kH.exports=KEe});var FH=w((rtt,RH)=>{var UEe=TI(),HEe=(t,e,r)=>UEe(t,e,">",r);RH.exports=HEe});var LH=w((itt,NH)=>{var GEe=TI(),jEe=(t,e,r)=>GEe(t,e,"<",r);NH.exports=jEe});var MH=w((ntt,TH)=>{var OH=bs(),YEe=(t,e,r)=>(t=new OH(t,r),e=new OH(e,r),t.intersects(e));TH.exports=YEe});var UH=w((stt,KH)=>{var qEe=Pp(),JEe=Bs();KH.exports=(t,e,r)=>{let i=[],n=null,s=null,o=t.sort((u,g)=>JEe(u,g,r));for(let u of o)qEe(u,e,r)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var GH=bs(),OI=Sp(),{ANY:xv}=OI,Dp=Pp(),Pv=Bs(),zEe=(t,e,r={})=>{if(t===e)return!0;t=new GH(t,r),e=new GH(e,r);let i=!1;e:for(let n of t.set){for(let s of e.set){let o=WEe(n,s,r);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},WEe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===xv){if(e.length===1&&e[0].semver===xv)return!0;r.includePrerelease?t=[new OI(">=0.0.0-0")]:t=[new OI(">=0.0.0")]}if(e.length===1&&e[0].semver===xv){if(r.includePrerelease)return!0;e=[new OI(">=0.0.0")]}let i=new Set,n,s;for(let h of t)h.operator===">"||h.operator===">="?n=jH(n,h,r):h.operator==="<"||h.operator==="<="?s=YH(s,h,r):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Pv(n.semver,s.semver,r),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Dp(h,String(n),r)||s&&!Dp(h,String(s),r))return null;for(let p of e)if(!Dp(h,String(p),r))return!1;return!0}let a,l,c,u,g=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=jH(n,h,r),a===h&&a!==n)return!1}else if(n.operator===">="&&!Dp(n.semver,String(h),r))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=YH(s,h,r),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Dp(s.semver,String(h),r))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},jH=(t,e,r)=>{if(!t)return e;let i=Pv(t.semver,e.semver,r);return i>0?t:i<0||e.operator===">"&&t.operator===">="?e:t},YH=(t,e,r)=>{if(!t)return e;let i=Pv(t.semver,e.semver,r);return i<0?t:i>0||e.operator==="<"&&t.operator==="<="?e:t};HH.exports=zEe});var ri=w((att,JH)=>{var Dv=Ec();JH.exports={re:Dv.re,src:Dv.src,tokens:Dv.t,SEMVER_SPEC_VERSION:Ep().SEMVER_SPEC_VERSION,SemVer:Hi(),compareIdentifiers:QI().compareIdentifiers,rcompareIdentifiers:QI().rcompareIdentifiers,parse:Ic(),valid:h2(),clean:d2(),inc:m2(),diff:b2(),major:v2(),minor:k2(),patch:P2(),prerelease:R2(),compare:Bs(),rcompare:N2(),compareLoose:T2(),compareBuild:xI(),sort:U2(),rsort:G2(),gt:Bp(),lt:PI(),eq:kI(),neq:yv(),gte:DI(),lte:RI(),cmp:wv(),coerce:V2(),Comparator:Sp(),Range:bs(),satisfies:Pp(),toComparators:mH(),maxSatisfying:IH(),minSatisfying:wH(),minVersion:QH(),validRange:SH(),outside:TI(),gtr:FH(),ltr:LH(),intersects:MH(),simplifyRange:UH(),subset:qH()}});var Rv=w(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.VERSION=void 0;MI.VERSION="9.1.0"});var Yt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,s;i{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof KI=="object"&&KI.exports?KI.exports=e():t.regexpToAst=e()})(typeof self!="undefined"?self:WH,function(){function t(){}t.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},t.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},t.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},t.prototype.disjunction=function(){var p=[],m=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(m)}},t.prototype.alternative=function(){for(var p=[],m=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(m)}},t.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},t.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(p)}}l()},t.prototype.quantifier=function(p){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:Infinity};break;case"+":m={atLeast:1,atMost:Infinity};break;case"?":m={atLeast:0,atMost:1};break;case"{":var b=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:b,atMost:b};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:b,atMost:S}):m={atLeast:b,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&m===void 0)return;a(m);break}if(!(p===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},t.prototype.atom=function(){var p,m=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(m),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},t.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},t.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},t.prototype.characterClassEscape=function(){var p,m=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,m=!0;break;case"s":p=f;break;case"S":p=f,m=!0;break;case"w":p=g;break;case"W":p=g,m=!0;break}return a(p),{type:"Set",value:p,complement:m}},t.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},t.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var m=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},t.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},t.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},t.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},t.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},t.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},t.prototype.characterClass=function(){var p=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),b=y.type==="Character";if(b&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),k=S.type==="Character";if(k){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},t.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,r=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,m){p.length!==void 0?p.forEach(function(y){m.push(y)}):m.push(p)}function o(p,m){if(p[m]===!0)throw"duplicate flag "+m;p[m]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var m in p){var y=p[m];p.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(b){this.visit(b)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:t,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var GI=w(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.clearRegExpParserCache=fg.getRegExpAst=void 0;var _Ee=UI(),HI={},VEe=new _Ee.RegExpParser;function XEe(t){var e=t.toString();if(HI.hasOwnProperty(e))return HI[e];var r=VEe.pattern(e);return HI[e]=r,r}fg.getRegExpAst=XEe;function ZEe(){HI={}}fg.clearRegExpParserCache=ZEe});var ZH=w(Bn=>{"use strict";var $Ee=Bn&&Bn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.canMatchCharCode=Bn.firstCharOptimizedIndices=Bn.getOptimizedStartCodesIndices=Bn.failedOptimizationPrefixMsg=void 0;var zH=UI(),Qs=Yt(),_H=GI(),Ka=Fv(),VH="Complement Sets are not supported for first char optimization";Bn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function eIe(t,e){e===void 0&&(e=!1);try{var r=(0,_H.getRegExpAst)(t),i=jI(r.value,{},r.flags.ignoreCase);return i}catch(s){if(s.message===VH)e&&(0,Qs.PRINT_WARNING)(""+Bn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+t.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,Qs.PRINT_ERROR)(Bn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+t.toString()+` > -`)+(" Using the regexp-to-ast library version: "+zH.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Bn.getOptimizedStartCodesIndices=eIe;function jI(t,e,r){switch(t.type){case"Disjunction":for(var i=0;i=Ka.minOptimizationVal)for(var f=u.from>=Ka.minOptimizationVal?u.from:Ka.minOptimizationVal,h=u.to,p=(0,Ka.charCodeToOptimizedIndex)(f),m=(0,Ka.charCodeToOptimizedIndex)(h),y=p;y<=m;y++)e[y]=y}}});break;case"Group":jI(o.value,e,r);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Nv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,Qs.values)(e)}Bn.firstCharOptimizedIndices=jI;function YI(t,e,r){var i=(0,Ka.charCodeToOptimizedIndex)(t);e[i]=i,r===!0&&tIe(t,e)}function tIe(t,e){var r=String.fromCharCode(t),i=r.toUpperCase();if(i!==r){var n=(0,Ka.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=r.toLowerCase();if(s!==r){var n=(0,Ka.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function XH(t,e){return(0,Qs.find)(t.value,function(r){if(typeof r=="number")return(0,Qs.contains)(e,r);var i=r;return(0,Qs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Nv(t){return t.quantifier&&t.quantifier.atLeast===0?!0:t.value?(0,Qs.isArray)(t.value)?(0,Qs.every)(t.value,Nv):Nv(t.value):!1}var rIe=function(t){$Ee(e,t);function e(r){var i=t.call(this)||this;return i.targetCharCodes=r,i.found=!1,i}return e.prototype.visitChildren=function(r){if(this.found!==!0){switch(r.type){case"Lookahead":this.visitLookahead(r);return;case"NegativeLookahead":this.visitNegativeLookahead(r);return}t.prototype.visitChildren.call(this,r)}},e.prototype.visitCharacter=function(r){(0,Qs.contains)(this.targetCharCodes,r.value)&&(this.found=!0)},e.prototype.visitSet=function(r){r.complement?XH(r,this.targetCharCodes)===void 0&&(this.found=!0):XH(r,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(zH.BaseRegExpVisitor);function iIe(t,e){if(e instanceof RegExp){var r=(0,_H.getRegExpAst)(e),i=new rIe(t);return i.visit(r),i.found}else return(0,Qs.find)(e,function(n){return(0,Qs.contains)(t,n.charCodeAt(0))})!==void 0}Bn.canMatchCharCode=iIe});var Fv=w(Ze=>{"use strict";var $H=Ze&&Ze.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Ze,"__esModule",{value:!0});Ze.charCodeToOptimizedIndex=Ze.minOptimizationVal=Ze.buildLineBreakIssueMessage=Ze.LineTerminatorOptimizedTester=Ze.isShortPattern=Ze.isCustomPattern=Ze.cloneEmptyGroups=Ze.performWarningRuntimeChecks=Ze.performRuntimeChecks=Ze.addStickyFlag=Ze.addStartOfInput=Ze.findUnreachablePatterns=Ze.findModesThatDoNotExist=Ze.findInvalidGroupType=Ze.findDuplicatePatterns=Ze.findUnsupportedFlags=Ze.findStartOfInputAnchor=Ze.findEmptyMatchRegExps=Ze.findEndOfInputAnchor=Ze.findInvalidPatterns=Ze.findMissingPatterns=Ze.validatePatterns=Ze.analyzeTokenTypes=Ze.enableSticky=Ze.disableSticky=Ze.SUPPORT_STICKY=Ze.MODES=Ze.DEFAULT_MODE=void 0;var eG=UI(),Ar=Rp(),Ne=Yt(),hg=ZH(),tG=GI(),Lo="PATTERN";Ze.DEFAULT_MODE="defaultMode";Ze.MODES="modes";Ze.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function nIe(){Ze.SUPPORT_STICKY=!1}Ze.disableSticky=nIe;function sIe(){Ze.SUPPORT_STICKY=!0}Ze.enableSticky=sIe;function aIe(t,e){e=(0,Ne.defaults)(e,{useSticky:Ze.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,k){return k()}});var r=e.tracer;r("initCharCodeToOptimizedIndexMap",function(){oIe()});var i;r("Reject Lexer.NA",function(){i=(0,Ne.reject)(t,function(S){return S[Lo]===Ar.Lexer.NA})});var n=!1,s;r("Transform Patterns",function(){n=!1,s=(0,Ne.map)(i,function(S){var k=S[Lo];if((0,Ne.isRegExp)(k)){var T=k.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!k.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Ne.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(k):Lv(k)}else{if((0,Ne.isFunction)(k))return n=!0,{exec:k};if((0,Ne.has)(k,"exec"))return n=!0,k;if(typeof k=="string"){if(k.length===1)return k;var Y=k.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(Y);return e.useSticky?Tv(j):Lv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;r("misc mapping",function(){o=(0,Ne.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Ne.map)(i,function(S){var k=S.GROUP;if(k!==Ar.Lexer.SKIPPED){if((0,Ne.isString)(k))return k;if((0,Ne.isUndefined)(k))return!1;throw Error("non exhaustive match")}}),l=(0,Ne.map)(i,function(S){var k=S.LONGER_ALT;if(k){var T=(0,Ne.isArray)(k)?(0,Ne.map)(k,function(Y){return(0,Ne.indexOf)(i,Y)}):[(0,Ne.indexOf)(i,k)];return T}}),c=(0,Ne.map)(i,function(S){return S.PUSH_MODE}),u=(0,Ne.map)(i,function(S){return(0,Ne.has)(S,"POP_MODE")})});var g;r("Line Terminator Handling",function(){var S=nG(e.lineTerminatorCharacters);g=(0,Ne.map)(i,function(k){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ne.map)(i,function(k){if((0,Ne.has)(k,"LINE_BREAKS"))return k.LINE_BREAKS;if(iG(k,S)===!1)return(0,hg.canMatchCharCode)(S,k.PATTERN)}))});var f,h,p,m;r("Misc Mapping #2",function(){f=(0,Ne.map)(i,Ov),h=(0,Ne.map)(s,rG),p=(0,Ne.reduce)(i,function(S,k){var T=k.GROUP;return(0,Ne.isString)(T)&&T!==Ar.Lexer.SKIPPED&&(S[T]=[]),S},{}),m=(0,Ne.map)(s,function(S,k){return{pattern:s[k],longerAlt:l[k],canLineTerminator:g[k],isCustom:f[k],short:h[k],group:a[k],push:c[k],pop:u[k],tokenTypeIdx:o[k],tokenType:i[k]}})});var y=!0,b=[];return e.safeMode||r("First Char Optimization",function(){b=(0,Ne.reduce)(i,function(S,k,T){if(typeof k.PATTERN=="string"){var Y=k.PATTERN.charCodeAt(0),j=Kv(Y);Mv(S,j,m[T])}else if((0,Ne.isArray)(k.START_CHARS_HINT)){var Z;(0,Ne.forEach)(k.START_CHARS_HINT,function(re){var ee=typeof re=="string"?re.charCodeAt(0):re,A=Kv(ee);Z!==A&&(Z=A,Mv(S,A,m[T]))})}else if((0,Ne.isRegExp)(k.PATTERN))if(k.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+hg.failedOptimizationPrefixMsg+(" Unable to analyze < "+k.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var J=(0,hg.getOptimizedStartCodesIndices)(k.PATTERN,e.ensureOptimizations);(0,Ne.isEmpty)(J)&&(y=!1),(0,Ne.forEach)(J,function(re){Mv(S,re,m[T])})}else e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+hg.failedOptimizationPrefixMsg+(" TokenType: <"+k.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),r("ArrayPacking",function(){b=(0,Ne.packArray)(b)}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:b,hasCustom:n,canBeOptimized:y}}Ze.analyzeTokenTypes=aIe;function lIe(t,e){var r=[],i=sG(t);r=r.concat(i.errors);var n=oG(i.valid),s=n.valid;return r=r.concat(n.errors),r=r.concat(AIe(s)),r=r.concat(aG(s)),r=r.concat(AG(s,e)),r=r.concat(lG(s)),r}Ze.validatePatterns=lIe;function AIe(t){var e=[],r=(0,Ne.filter)(t,function(i){return(0,Ne.isRegExp)(i[Lo])});return e=e.concat(cG(r)),e=e.concat(gG(r)),e=e.concat(fG(r)),e=e.concat(hG(r)),e=e.concat(uG(r)),e}function sG(t){var e=(0,Ne.filter)(t,function(n){return!(0,Ne.has)(n,Lo)}),r=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:Ar.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(t,e);return{errors:r,valid:i}}Ze.findMissingPatterns=sG;function oG(t){var e=(0,Ne.filter)(t,function(n){var s=n[Lo];return!(0,Ne.isRegExp)(s)&&!(0,Ne.isFunction)(s)&&!(0,Ne.has)(s,"exec")&&!(0,Ne.isString)(s)}),r=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ar.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(t,e);return{errors:r,valid:i}}Ze.findInvalidPatterns=oG;var cIe=/[^\\][\$]/;function cG(t){var e=function(n){$H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(eG.BaseRegExpVisitor),r=(0,Ne.filter)(t,function(n){var s=n[Lo];try{var o=(0,tG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return cIe.test(s.source)}}),i=(0,Ne.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findEndOfInputAnchor=cG;function uG(t){var e=(0,Ne.filter)(t,function(i){var n=i[Lo];return n.test("")}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:Ar.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return r}Ze.findEmptyMatchRegExps=uG;var uIe=/[^\\[][\^]|^\^/;function gG(t){var e=function(n){$H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(eG.BaseRegExpVisitor),r=(0,Ne.filter)(t,function(n){var s=n[Lo];try{var o=(0,tG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return uIe.test(s.source)}}),i=(0,Ne.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findStartOfInputAnchor=gG;function fG(t){var e=(0,Ne.filter)(t,function(i){var n=i[Lo];return n instanceof RegExp&&(n.multiline||n.global)}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ar.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return r}Ze.findUnsupportedFlags=fG;function hG(t){var e=[],r=(0,Ne.map)(t,function(s){return(0,Ne.reduce)(t,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ne.contains)(e,a)&&a.PATTERN!==Ar.Lexer.NA&&(e.push(a),o.push(a)),o},[])});r=(0,Ne.compact)(r);var i=(0,Ne.filter)(r,function(s){return s.length>1}),n=(0,Ne.map)(i,function(s){var o=(0,Ne.map)(s,function(l){return l.name}),a=(0,Ne.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:Ar.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ze.findDuplicatePatterns=hG;function aG(t){var e=(0,Ne.filter)(t,function(i){if(!(0,Ne.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==Ar.Lexer.SKIPPED&&n!==Ar.Lexer.NA&&!(0,Ne.isString)(n)}),r=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ar.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return r}Ze.findInvalidGroupType=aG;function AG(t,e){var r=(0,Ne.filter)(t,function(n){return n.PUSH_MODE!==void 0&&!(0,Ne.contains)(e,n.PUSH_MODE)}),i=(0,Ne.map)(r,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:Ar.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ze.findModesThatDoNotExist=AG;function lG(t){var e=[],r=(0,Ne.reduce)(t,function(i,n,s){var o=n.PATTERN;return o===Ar.Lexer.NA||((0,Ne.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ne.isRegExp)(o)&&fIe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ne.forEach)(t,function(i,n){(0,Ne.forEach)(r,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:Ar.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ze.findUnreachablePatterns=lG;function gIe(t,e){if((0,Ne.isRegExp)(e)){var r=e.exec(t);return r!==null&&r.index===0}else{if((0,Ne.isFunction)(e))return e(t,0,[],{});if((0,Ne.has)(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function fIe(t){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ne.find)(e,function(r){return t.source.indexOf(r)!==-1})===void 0}function Lv(t){var e=t.ignoreCase?"i":"";return new RegExp("^(?:"+t.source+")",e)}Ze.addStartOfInput=Lv;function Tv(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}Ze.addStickyFlag=Tv;function hIe(t,e,r){var i=[];return(0,Ne.has)(t,Ze.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.DEFAULT_MODE+`> property in its definition -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ne.has)(t,Ze.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.MODES+`> property in its definition -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ne.has)(t,Ze.MODES)&&(0,Ne.has)(t,Ze.DEFAULT_MODE)&&!(0,Ne.has)(t.modes,t.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ze.DEFAULT_MODE+": <"+t.defaultMode+`>which does not exist -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ne.has)(t,Ze.MODES)&&(0,Ne.forEach)(t.modes,function(n,s){(0,Ne.forEach)(n,function(o,a){(0,Ne.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:Ar.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ze.performRuntimeChecks=hIe;function pIe(t,e,r){var i=[],n=!1,s=(0,Ne.compact)((0,Ne.flatten)((0,Ne.mapValues)(t.modes,function(l){return l}))),o=(0,Ne.reject)(s,function(l){return l[Lo]===Ar.Lexer.NA}),a=nG(r);return e&&(0,Ne.forEach)(o,function(l){var c=iG(l,a);if(c!==!1){var u=pG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ne.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,hg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:Ar.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ze.performWarningRuntimeChecks=pIe;function dIe(t){var e={},r=(0,Ne.keys)(t);return(0,Ne.forEach)(r,function(i){var n=t[i];if((0,Ne.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ze.cloneEmptyGroups=dIe;function Ov(t){var e=t.PATTERN;if((0,Ne.isRegExp)(e))return!1;if((0,Ne.isFunction)(e))return!0;if((0,Ne.has)(e,"exec"))return!0;if((0,Ne.isString)(e))return!1;throw Error("non exhaustive match")}Ze.isCustomPattern=Ov;function rG(t){return(0,Ne.isString)(t)&&t.length===1?t.charCodeAt(0):!1}Ze.isShortPattern=rG;Ze.LineTerminatorOptimizedTester={test:function(t){for(var e=t.length,r=this.lastIndex;r Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+t.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ze.buildLineBreakIssueMessage=pG;function nG(t){var e=(0,Ne.map)(t,function(r){return(0,Ne.isString)(r)&&r.length>0?r.charCodeAt(0):r});return e}function Mv(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}Ze.minOptimizationVal=256;var qI=[];function Kv(t){return t255?255+~~(t/255):t}}});var pg=w(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.isTokenType=Ft.hasExtendingTokensTypesMapProperty=Ft.hasExtendingTokensTypesProperty=Ft.hasCategoriesProperty=Ft.hasShortKeyProperty=Ft.singleAssignCategoriesToksMap=Ft.assignCategoriesMapProp=Ft.assignCategoriesTokensProp=Ft.assignTokenDefaultProps=Ft.expandCategories=Ft.augmentTokenTypes=Ft.tokenIdxToClass=Ft.tokenShortNameIdx=Ft.tokenStructuredMatcherNoCategories=Ft.tokenStructuredMatcher=void 0;var ii=Yt();function CIe(t,e){var r=t.tokenTypeIdx;return r===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[r]===!0}Ft.tokenStructuredMatcher=CIe;function mIe(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}Ft.tokenStructuredMatcherNoCategories=mIe;Ft.tokenShortNameIdx=1;Ft.tokenIdxToClass={};function EIe(t){var e=dG(t);CG(e),EG(e),mG(e),(0,ii.forEach)(e,function(r){r.isParent=r.categoryMatches.length>0})}Ft.augmentTokenTypes=EIe;function dG(t){for(var e=(0,ii.cloneArr)(t),r=t,i=!0;i;){r=(0,ii.compact)((0,ii.flatten)((0,ii.map)(r,function(s){return s.CATEGORIES})));var n=(0,ii.difference)(r,e);e=e.concat(n),(0,ii.isEmpty)(n)?i=!1:r=n}return e}Ft.expandCategories=dG;function CG(t){(0,ii.forEach)(t,function(e){IG(e)||(Ft.tokenIdxToClass[Ft.tokenShortNameIdx]=e,e.tokenTypeIdx=Ft.tokenShortNameIdx++),Uv(e)&&!(0,ii.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Uv(e)||(e.CATEGORIES=[]),yG(e)||(e.categoryMatches=[]),wG(e)||(e.categoryMatchesMap={})})}Ft.assignTokenDefaultProps=CG;function mG(t){(0,ii.forEach)(t,function(e){e.categoryMatches=[],(0,ii.forEach)(e.categoryMatchesMap,function(r,i){e.categoryMatches.push(Ft.tokenIdxToClass[i].tokenTypeIdx)})})}Ft.assignCategoriesTokensProp=mG;function EG(t){(0,ii.forEach)(t,function(e){Hv([],e)})}Ft.assignCategoriesMapProp=EG;function Hv(t,e){(0,ii.forEach)(t,function(r){e.categoryMatchesMap[r.tokenTypeIdx]=!0}),(0,ii.forEach)(e.CATEGORIES,function(r){var i=t.concat(e);(0,ii.contains)(i,r)||Hv(i,r)})}Ft.singleAssignCategoriesToksMap=Hv;function IG(t){return(0,ii.has)(t,"tokenTypeIdx")}Ft.hasShortKeyProperty=IG;function Uv(t){return(0,ii.has)(t,"CATEGORIES")}Ft.hasCategoriesProperty=Uv;function yG(t){return(0,ii.has)(t,"categoryMatches")}Ft.hasExtendingTokensTypesProperty=yG;function wG(t){return(0,ii.has)(t,"categoryMatchesMap")}Ft.hasExtendingTokensTypesMapProperty=wG;function IIe(t){return(0,ii.has)(t,"tokenTypeIdx")}Ft.isTokenType=IIe});var Gv=w(JI=>{"use strict";Object.defineProperty(JI,"__esModule",{value:!0});JI.defaultLexerErrorProvider=void 0;JI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(t){return"Unable to pop Lexer Mode after encountering Token ->"+t.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(t,e,r,i,n){return"unexpected character: ->"+t.charAt(e)+"<- at offset: "+e+","+(" skipped "+r+" characters.")}}});var Rp=w(bc=>{"use strict";Object.defineProperty(bc,"__esModule",{value:!0});bc.Lexer=bc.LexerDefinitionErrorType=void 0;var oo=Fv(),lr=Yt(),yIe=pg(),wIe=Gv(),BIe=GI(),bIe;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(bIe=bc.LexerDefinitionErrorType||(bc.LexerDefinitionErrorType={}));var Fp={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:wIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Fp);var QIe=function(){function t(e,r){var i=this;if(r===void 0&&(r=Fp),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,lr.merge)(Fp,r);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Fp.lineTerminatorsPattern)i.config.lineTerminatorsPattern=oo.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Fp.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,lr.isArray)(e)?(s={modes:{}},s.modes[oo.DEFAULT_MODE]=(0,lr.cloneArr)(e),s[oo.DEFAULT_MODE]=oo.DEFAULT_MODE):(o=!1,s=(0,lr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,oo.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,oo.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,lr.forEach)(s.modes,function(u,g){s.modes[g]=(0,lr.reject)(u,function(f){return(0,lr.isUndefined)(f)})});var a=(0,lr.keys)(s.modes);if((0,lr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,oo.validatePatterns)(u,a))}),(0,lr.isEmpty)(i.lexerDefinitionErrors)){(0,yIe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,oo.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,lr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,lr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,lr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,lr.forEach)(i.lexerDefinitionWarning,function(u){(0,lr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(oo.SUPPORT_STICKY?(i.chopInput=lr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=lr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=lr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=lr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=lr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,lr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(r.ensureOptimizations&&!(0,lr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,BIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,lr.toFastProperties)(i)})})}return t.prototype.tokenize=function(e,r){if(r===void 0&&(r=this.defaultMode),!(0,lr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,lr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,r);return s},t.prototype.tokenizeInternal=function(e,r){var i=this,n,s,o,a,l,c,u,g,f,h,p,m,y,b,S,k,T=e,Y=T.length,j=0,Z=0,J=this.hasCustom?0:Math.floor(e.length/10),re=new Array(J),ee=[],A=this.trackStartLines?1:void 0,oe=this.trackStartLines?1:void 0,le=(0,oo.cloneEmptyGroups)(this.emptyGroups),X=this.trackStartLines,O=this.config.lineTerminatorsPattern,L=0,pe=[],Ce=[],Oe=[],te=[];Object.freeze(te);var se=void 0;function be(){return pe}function he(vr){var Gn=(0,oo.charCodeToOptimizedIndex)(vr),gs=Ce[Gn];return gs===void 0?te:gs}var Fe=function(vr){if(Oe.length===1&&vr.tokenType.PUSH_MODE===void 0){var Gn=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(vr);ee.push({offset:vr.startOffset,line:vr.startLine!==void 0?vr.startLine:void 0,column:vr.startColumn!==void 0?vr.startColumn:void 0,length:vr.image.length,message:Gn})}else{Oe.pop();var gs=(0,lr.last)(Oe);pe=i.patternIdxToConfig[gs],Ce=i.charCodeToPatternIdxToConfig[gs],L=pe.length;var ya=i.canModeBeOptimized[gs]&&i.config.safeMode===!1;Ce&&ya?se=he:se=be}};function Ue(vr){Oe.push(vr),Ce=this.charCodeToPatternIdxToConfig[vr],pe=this.patternIdxToConfig[vr],L=pe.length,L=pe.length;var Gn=this.canModeBeOptimized[vr]&&this.config.safeMode===!1;Ce&&Gn?se=he:se=be}Ue.call(this,r);for(var xe;jc.length){c=a,u=g,xe=gt;break}}}break}}if(c!==null){if(f=c.length,h=xe.group,h!==void 0&&(p=xe.tokenTypeIdx,m=this.createTokenInstance(c,j,p,xe.tokenType,A,oe,f),this.handlePayload(m,u),h===!1?Z=this.addToken(re,Z,m):le[h].push(m)),e=this.chopInput(e,f),j=j+f,oe=this.computeNewColumn(oe,f),X===!0&&xe.canLineTerminator===!0){var Mt=0,mi=void 0,Gt=void 0;O.lastIndex=0;do mi=O.test(c),mi===!0&&(Gt=O.lastIndex-1,Mt++);while(mi===!0);Mt!==0&&(A=A+Mt,oe=f-Gt,this.updateTokenEndLineColumnLocation(m,h,Gt,Mt,A,oe,f))}this.handleModes(xe,Fe,Ue,m)}else{for(var Qr=j,Ti=A,Vs=oe,Un=!1;!Un&&j <"+e+">");var n=(0,lr.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",t.NA=/NOT_APPLICABLE/,t}();bc.Lexer=QIe});var WA=w(xi=>{"use strict";Object.defineProperty(xi,"__esModule",{value:!0});xi.tokenMatcher=xi.createTokenInstance=xi.EOF=xi.createToken=xi.hasTokenLabel=xi.tokenName=xi.tokenLabel=void 0;var ao=Yt(),vIe=Rp(),jv=pg();function SIe(t){return BG(t)?t.LABEL:t.name}xi.tokenLabel=SIe;function kIe(t){return t.name}xi.tokenName=kIe;function BG(t){return(0,ao.isString)(t.LABEL)&&t.LABEL!==""}xi.hasTokenLabel=BG;var xIe="parent",bG="categories",QG="label",vG="group",SG="push_mode",kG="pop_mode",xG="longer_alt",PG="line_breaks",DG="start_chars_hint";function RG(t){return PIe(t)}xi.createToken=RG;function PIe(t){var e=t.pattern,r={};if(r.name=t.name,(0,ao.isUndefined)(e)||(r.PATTERN=e),(0,ao.has)(t,xIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,ao.has)(t,bG)&&(r.CATEGORIES=t[bG]),(0,jv.augmentTokenTypes)([r]),(0,ao.has)(t,QG)&&(r.LABEL=t[QG]),(0,ao.has)(t,vG)&&(r.GROUP=t[vG]),(0,ao.has)(t,kG)&&(r.POP_MODE=t[kG]),(0,ao.has)(t,SG)&&(r.PUSH_MODE=t[SG]),(0,ao.has)(t,xG)&&(r.LONGER_ALT=t[xG]),(0,ao.has)(t,PG)&&(r.LINE_BREAKS=t[PG]),(0,ao.has)(t,DG)&&(r.START_CHARS_HINT=t[DG]),r}xi.EOF=RG({name:"EOF",pattern:vIe.Lexer.NA});(0,jv.augmentTokenTypes)([xi.EOF]);function DIe(t,e,r,i,n,s,o,a){return{image:e,startOffset:r,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}xi.createTokenInstance=DIe;function RIe(t,e){return(0,jv.tokenStructuredMatcher)(t,e)}xi.tokenMatcher=RIe});var bn=w(Vt=>{"use strict";var Ua=Vt&&Vt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.serializeProduction=Vt.serializeGrammar=Vt.Terminal=Vt.Alternation=Vt.RepetitionWithSeparator=Vt.Repetition=Vt.RepetitionMandatoryWithSeparator=Vt.RepetitionMandatory=Vt.Option=Vt.Alternative=Vt.Rule=Vt.NonTerminal=Vt.AbstractProduction=void 0;var fr=Yt(),FIe=WA(),To=function(){function t(e){this._definition=e}return Object.defineProperty(t.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),t.prototype.accept=function(e){e.visit(this),(0,fr.forEach)(this.definition,function(r){r.accept(e)})},t}();Vt.AbstractProduction=To;var FG=function(t){Ua(e,t);function e(r){var i=t.call(this,[])||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(r){},enumerable:!1,configurable:!0}),e.prototype.accept=function(r){r.visit(this)},e}(To);Vt.NonTerminal=FG;var NG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.orgText="",(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Rule=NG;var LG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.ignoreAmbiguities=!1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Alternative=LG;var TG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Option=TG;var OG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionMandatory=OG;var MG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionMandatoryWithSeparator=MG;var KG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.Repetition=KG;var UG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return e}(To);Vt.RepetitionWithSeparator=UG;var HG=function(t){Ua(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,fr.assign)(i,(0,fr.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(r){this._definition=r},enumerable:!1,configurable:!0}),e}(To);Vt.Alternation=HG;var WI=function(){function t(e){this.idx=1,(0,fr.assign)(this,(0,fr.pick)(e,function(r){return r!==void 0}))}return t.prototype.accept=function(e){e.visit(this)},t}();Vt.Terminal=WI;function NIe(t){return(0,fr.map)(t,Np)}Vt.serializeGrammar=NIe;function Np(t){function e(s){return(0,fr.map)(s,Np)}if(t instanceof FG){var r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,fr.isString)(t.label)&&(r.label=t.label),r}else{if(t instanceof LG)return{type:"Alternative",definition:e(t.definition)};if(t instanceof TG)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof OG)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof MG)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Np(new WI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof UG)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Np(new WI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof KG)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof HG)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof WI){var i={type:"Terminal",name:t.terminalType.name,label:(0,FIe.tokenLabel)(t.terminalType),idx:t.idx};(0,fr.isString)(t.label)&&(i.terminalLabel=t.label);var n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(i.pattern=(0,fr.isRegExp)(n)?n.source:n),i}else{if(t instanceof NG)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}Vt.serializeProduction=Np});var _I=w(zI=>{"use strict";Object.defineProperty(zI,"__esModule",{value:!0});zI.RestWalker=void 0;var Yv=Yt(),Qn=bn(),LIe=function(){function t(){}return t.prototype.walk=function(e,r){var i=this;r===void 0&&(r=[]),(0,Yv.forEach)(e.definition,function(n,s){var o=(0,Yv.drop)(e.definition,s+1);if(n instanceof Qn.NonTerminal)i.walkProdRef(n,o,r);else if(n instanceof Qn.Terminal)i.walkTerminal(n,o,r);else if(n instanceof Qn.Alternative)i.walkFlat(n,o,r);else if(n instanceof Qn.Option)i.walkOption(n,o,r);else if(n instanceof Qn.RepetitionMandatory)i.walkAtLeastOne(n,o,r);else if(n instanceof Qn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,r);else if(n instanceof Qn.RepetitionWithSeparator)i.walkManySep(n,o,r);else if(n instanceof Qn.Repetition)i.walkMany(n,o,r);else if(n instanceof Qn.Alternation)i.walkOr(n,o,r);else throw Error("non exhaustive match")})},t.prototype.walkTerminal=function(e,r,i){},t.prototype.walkProdRef=function(e,r,i){},t.prototype.walkFlat=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkOption=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkAtLeastOne=function(e,r,i){var n=[new Qn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkAtLeastOneSep=function(e,r,i){var n=GG(e,r,i);this.walk(e,n)},t.prototype.walkMany=function(e,r,i){var n=[new Qn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkManySep=function(e,r,i){var n=GG(e,r,i);this.walk(e,n)},t.prototype.walkOr=function(e,r,i){var n=this,s=r.concat(i);(0,Yv.forEach)(e.definition,function(o){var a=new Qn.Alternative({definition:[o]});n.walk(a,s)})},t}();zI.RestWalker=LIe;function GG(t,e,r){var i=[new Qn.Option({definition:[new Qn.Terminal({terminalType:t.separator})].concat(t.definition)})],n=i.concat(e,r);return n}});var dg=w(VI=>{"use strict";Object.defineProperty(VI,"__esModule",{value:!0});VI.GAstVisitor=void 0;var Oo=bn(),TIe=function(){function t(){}return t.prototype.visit=function(e){var r=e;switch(r.constructor){case Oo.NonTerminal:return this.visitNonTerminal(r);case Oo.Alternative:return this.visitAlternative(r);case Oo.Option:return this.visitOption(r);case Oo.RepetitionMandatory:return this.visitRepetitionMandatory(r);case Oo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(r);case Oo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(r);case Oo.Repetition:return this.visitRepetition(r);case Oo.Alternation:return this.visitAlternation(r);case Oo.Terminal:return this.visitTerminal(r);case Oo.Rule:return this.visitRule(r);default:throw Error("non exhaustive match")}},t.prototype.visitNonTerminal=function(e){},t.prototype.visitAlternative=function(e){},t.prototype.visitOption=function(e){},t.prototype.visitRepetition=function(e){},t.prototype.visitRepetitionMandatory=function(e){},t.prototype.visitRepetitionMandatoryWithSeparator=function(e){},t.prototype.visitRepetitionWithSeparator=function(e){},t.prototype.visitAlternation=function(e){},t.prototype.visitTerminal=function(e){},t.prototype.visitRule=function(e){},t}();VI.GAstVisitor=TIe});var Tp=w(ji=>{"use strict";var OIe=ji&&ji.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(ji,"__esModule",{value:!0});ji.collectMethods=ji.DslMethodsCollectorVisitor=ji.getProductionDslName=ji.isBranchingProd=ji.isOptionalProd=ji.isSequenceProd=void 0;var Lp=Yt(),kr=bn(),MIe=dg();function KIe(t){return t instanceof kr.Alternative||t instanceof kr.Option||t instanceof kr.Repetition||t instanceof kr.RepetitionMandatory||t instanceof kr.RepetitionMandatoryWithSeparator||t instanceof kr.RepetitionWithSeparator||t instanceof kr.Terminal||t instanceof kr.Rule}ji.isSequenceProd=KIe;function qv(t,e){e===void 0&&(e=[]);var r=t instanceof kr.Option||t instanceof kr.Repetition||t instanceof kr.RepetitionWithSeparator;return r?!0:t instanceof kr.Alternation?(0,Lp.some)(t.definition,function(i){return qv(i,e)}):t instanceof kr.NonTerminal&&(0,Lp.contains)(e,t)?!1:t instanceof kr.AbstractProduction?(t instanceof kr.NonTerminal&&e.push(t),(0,Lp.every)(t.definition,function(i){return qv(i,e)})):!1}ji.isOptionalProd=qv;function UIe(t){return t instanceof kr.Alternation}ji.isBranchingProd=UIe;function HIe(t){if(t instanceof kr.NonTerminal)return"SUBRULE";if(t instanceof kr.Option)return"OPTION";if(t instanceof kr.Alternation)return"OR";if(t instanceof kr.RepetitionMandatory)return"AT_LEAST_ONE";if(t instanceof kr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(t instanceof kr.RepetitionWithSeparator)return"MANY_SEP";if(t instanceof kr.Repetition)return"MANY";if(t instanceof kr.Terminal)return"CONSUME";throw Error("non exhaustive match")}ji.getProductionDslName=HIe;var jG=function(t){OIe(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.separator="-",r.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},r}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(r){var i=r.terminalType.name+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitNonTerminal=function(r){var i=r.nonTerminalName+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitOption=function(r){this.dslMethods.option.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.dslMethods.repetitionWithSeparator.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.dslMethods.repetitionMandatory.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.dslMethods.repetitionMandatoryWithSeparator.push(r)},e.prototype.visitRepetition=function(r){this.dslMethods.repetition.push(r)},e.prototype.visitAlternation=function(r){this.dslMethods.alternation.push(r)},e}(MIe.GAstVisitor);ji.DslMethodsCollectorVisitor=jG;var XI=new jG;function GIe(t){XI.reset(),t.accept(XI);var e=XI.dslMethods;return XI.reset(),e}ji.collectMethods=GIe});var Wv=w(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.firstForTerminal=Mo.firstForBranching=Mo.firstForSequence=Mo.first=void 0;var ZI=Yt(),YG=bn(),Jv=Tp();function $I(t){if(t instanceof YG.NonTerminal)return $I(t.referencedRule);if(t instanceof YG.Terminal)return WG(t);if((0,Jv.isSequenceProd)(t))return qG(t);if((0,Jv.isBranchingProd)(t))return JG(t);throw Error("non exhaustive match")}Mo.first=$I;function qG(t){for(var e=[],r=t.definition,i=0,n=r.length>i,s,o=!0;n&&o;)s=r[i],o=(0,Jv.isOptionalProd)(s),e=e.concat($I(s)),i=i+1,n=r.length>i;return(0,ZI.uniq)(e)}Mo.firstForSequence=qG;function JG(t){var e=(0,ZI.map)(t.definition,function(r){return $I(r)});return(0,ZI.uniq)((0,ZI.flatten)(e))}Mo.firstForBranching=JG;function WG(t){return[t.terminalType]}Mo.firstForTerminal=WG});var zv=w(ey=>{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.IN=void 0;ey.IN="_~IN~_"});var ZG=w(vs=>{"use strict";var jIe=vs&&vs.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(vs,"__esModule",{value:!0});vs.buildInProdFollowPrefix=vs.buildBetweenProdsFollowPrefix=vs.computeAllProdsFollows=vs.ResyncFollowsWalker=void 0;var YIe=_I(),qIe=Wv(),zG=Yt(),_G=zv(),JIe=bn(),XG=function(t){jIe(e,t);function e(r){var i=t.call(this)||this;return i.topProd=r,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(r,i,n){},e.prototype.walkProdRef=function(r,i,n){var s=VG(r.referencedRule,r.idx)+this.topProd.name,o=i.concat(n),a=new JIe.Alternative({definition:o}),l=(0,qIe.first)(a);this.follows[s]=l},e}(YIe.RestWalker);vs.ResyncFollowsWalker=XG;function WIe(t){var e={};return(0,zG.forEach)(t,function(r){var i=new XG(r).startWalking();(0,zG.assign)(e,i)}),e}vs.computeAllProdsFollows=WIe;function VG(t,e){return t.name+e+_G.IN}vs.buildBetweenProdsFollowPrefix=VG;function zIe(t){var e=t.terminalType.name;return e+t.idx+_G.IN}vs.buildInProdFollowPrefix=zIe});var Op=w(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.defaultGrammarValidatorErrorProvider=Ha.defaultGrammarResolverErrorProvider=Ha.defaultParserErrorProvider=void 0;var Cg=WA(),_Ie=Yt(),Ao=Yt(),_v=bn(),$G=Tp();Ha.defaultParserErrorProvider={buildMismatchTokenMessage:function(t){var e=t.expected,r=t.actual,i=t.previous,n=t.ruleName,s=(0,Cg.hasTokenLabel)(e),o=s?"--> "+(0,Cg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+r.image+"' <--";return a},buildNotAllInputParsedMessage:function(t){var e=t.firstRedundant,r=t.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(t){var e=t.expectedPathsPerAlt,r=t.actual,i=t.previous,n=t.customUserDescription,s=t.ruleName,o="Expecting: ",a=(0,Ao.first)(r).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,Ao.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Ao.map)(c,function(h){return"["+(0,Ao.map)(h,function(p){return(0,Cg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Ao.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(t){var e=t.expectedIterationPaths,r=t.actual,i=t.customUserDescription,n=t.ruleName,s="Expecting: ",o=(0,Ao.first)(r).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,Ao.map)(e,function(u){return"["+(0,Ao.map)(u,function(g){return(0,Cg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ha.defaultParserErrorProvider);Ha.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(t,e){var r="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+t.name+"<-";return r}};Ha.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(t,e){function r(u){return u instanceof _v.Terminal?u.terminalType.name:u instanceof _v.NonTerminal?u.nonTerminalName:""}var i=t.name,n=(0,Ao.first)(e),s=n.idx,o=(0,$G.getProductionDslName)(n),a=r(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(t){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+t.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(t){var e=(0,Ao.map)(t.prefixPath,function(n){return(0,Cg.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous alternatives: <"+t.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(t){var e=(0,Ao.map)(t.prefixPath,function(n){return(0,Cg.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous Alternatives Detected: <"+t.ambiguityIndices.join(" ,")+"> in "+(" inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(t){var e=(0,$G.getProductionDslName)(t.repetition);t.repetition.idx!==0&&(e+=t.repetition.idx);var r="The repetition <"+e+"> within Rule <"+t.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return r},buildTokenNameError:function(t){return"deprecated"},buildEmptyAlternationError:function(t){var e="Ambiguous empty alternative: <"+(t.emptyChoiceIdx+1)+">"+(" in inside <"+t.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(t){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+t.topLevelRule.name+`> Rule. - has `+(t.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(t){var e=t.topLevelRule.name,r=_Ie.map(t.leftRecursionPath,function(s){return s.name}),i=e+" --> "+r.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(t){return"deprecated"},buildDuplicateRuleNameError:function(t){var e;t.topLevelRule instanceof _v.Rule?e=t.topLevelRule.name:e=t.topLevelRule;var r="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+t.grammarName+"<-";return r}}});var rj=w(zA=>{"use strict";var VIe=zA&&zA.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(zA,"__esModule",{value:!0});zA.GastRefResolverVisitor=zA.resolveGrammar=void 0;var XIe=Zn(),ej=Yt(),ZIe=dg();function $Ie(t,e){var r=new tj(t,e);return r.resolveRefs(),r.errors}zA.resolveGrammar=$Ie;var tj=function(t){VIe(e,t);function e(r,i){var n=t.call(this)||this;return n.nameToTopRule=r,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var r=this;(0,ej.forEach)((0,ej.values)(this.nameToTopRule),function(i){r.currTopLevel=i,i.accept(r)})},e.prototype.visitNonTerminal=function(r){var i=this.nameToTopRule[r.nonTerminalName];if(i)r.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,r);this.errors.push({message:n,type:XIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:r.nonTerminalName})}},e}(ZIe.GAstVisitor);zA.GastRefResolverVisitor=tj});var Kp=w(Mr=>{"use strict";var Qc=Mr&&Mr.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Mr,"__esModule",{value:!0});Mr.nextPossibleTokensAfter=Mr.possiblePathsFrom=Mr.NextTerminalAfterAtLeastOneSepWalker=Mr.NextTerminalAfterAtLeastOneWalker=Mr.NextTerminalAfterManySepWalker=Mr.NextTerminalAfterManyWalker=Mr.AbstractNextTerminalAfterProductionWalker=Mr.NextAfterTokenWalker=Mr.AbstractNextPossibleTokensWalker=void 0;var ij=_I(),Kt=Yt(),eye=Wv(),Dt=bn(),nj=function(t){Qc(e,t);function e(r,i){var n=t.call(this)||this;return n.topProd=r,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(r,i){i===void 0&&(i=[]),this.found||t.prototype.walk.call(this,r,i)},e.prototype.walkProdRef=function(r,i,n){if(r.referencedRule.name===this.nextProductionName&&r.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(r.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(ij.RestWalker);Mr.AbstractNextPossibleTokensWalker=nj;var tye=function(t){Qc(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(r,i,n){if(this.isAtEndOfPath&&r.terminalType.name===this.nextTerminalName&&r.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,eye.first)(o),this.found=!0}},e}(nj);Mr.NextAfterTokenWalker=tye;var Mp=function(t){Qc(e,t);function e(r,i){var n=t.call(this)||this;return n.topRule=r,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(ij.RestWalker);Mr.AbstractNextTerminalAfterProductionWalker=Mp;var rye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkMany=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkMany.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterManyWalker=rye;var iye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkManySep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkManySep.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterManySepWalker=iye;var nye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOne.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterAtLeastOneWalker=nye;var sye=function(t){Qc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOneSep.call(this,r,i,n)},e}(Mp);Mr.NextTerminalAfterAtLeastOneSepWalker=sye;function sj(t,e,r){r===void 0&&(r=[]),r=(0,Kt.cloneArr)(r);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(t,n+1))}function o(c){var u=sj(s(c),e,r);return i.concat(u)}for(;r.length=0;le--){var X=b.definition[le],O={idx:p,def:X.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(b instanceof Dt.Alternative)g.push({idx:p,def:b.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y});else if(b instanceof Dt.Rule)g.push(oye(b,p,m,y));else throw Error("non exhaustive match")}}return u}Mr.nextPossibleTokensAfter=aye;function oye(t,e,r,i){var n=(0,Kt.cloneArr)(r);n.push(t.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:t.definition,ruleStack:n,occurrenceStack:s}}});var Up=w(tr=>{"use strict";var oj=tr&&tr.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(tr,"__esModule",{value:!0});tr.areTokenCategoriesNotUsed=tr.isStrictPrefixOfPath=tr.containsPath=tr.getLookaheadPathsForOptionalProd=tr.getLookaheadPathsForOr=tr.lookAheadSequenceFromAlternatives=tr.buildSingleAlternativeLookaheadFunction=tr.buildAlternativesLookAheadFunc=tr.buildLookaheadFuncForOptionalProd=tr.buildLookaheadFuncForOr=tr.getProdType=tr.PROD_TYPE=void 0;var cr=Yt(),aj=Kp(),Aye=_I(),ty=pg(),_A=bn(),lye=dg(),ci;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(ci=tr.PROD_TYPE||(tr.PROD_TYPE={}));function cye(t){if(t instanceof _A.Option)return ci.OPTION;if(t instanceof _A.Repetition)return ci.REPETITION;if(t instanceof _A.RepetitionMandatory)return ci.REPETITION_MANDATORY;if(t instanceof _A.RepetitionMandatoryWithSeparator)return ci.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof _A.RepetitionWithSeparator)return ci.REPETITION_WITH_SEPARATOR;if(t instanceof _A.Alternation)return ci.ALTERNATION;throw Error("non exhaustive match")}tr.getProdType=cye;function uye(t,e,r,i,n,s){var o=Aj(t,e,r),a=Vv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o,i,a,n)}tr.buildLookaheadFuncForOr=uye;function gye(t,e,r,i,n,s){var o=lj(t,e,n,r),a=Vv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o[0],a,i)}tr.buildLookaheadFuncForOptionalProd=gye;function fye(t,e,r,i){var n=t.length,s=(0,cr.every)(t,function(l){return(0,cr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,cr.map)(l,function(k){return k.GATE}),u=0;u{"use strict";var $v=Xt&&Xt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Xt,"__esModule",{value:!0});Xt.checkPrefixAlternativesAmbiguities=Xt.validateSomeNonEmptyLookaheadPath=Xt.validateTooManyAlts=Xt.RepetionCollector=Xt.validateAmbiguousAlternationAlternatives=Xt.validateEmptyOrAlternative=Xt.getFirstNoneTerminal=Xt.validateNoLeftRecursion=Xt.validateRuleIsOverridden=Xt.validateRuleDoesNotAlreadyExist=Xt.OccurrenceValidationCollector=Xt.identifyProductionForDuplicates=Xt.validateGrammar=void 0;var nr=Yt(),xr=Yt(),Ko=Zn(),eS=Tp(),mg=Up(),mye=Kp(),lo=bn(),tS=dg();function yye(t,e,r,i,n){var s=nr.map(t,function(h){return Eye(h,i)}),o=nr.map(t,function(h){return rS(h,h,i)}),a=[],l=[],c=[];(0,xr.every)(o,xr.isEmpty)&&(a=(0,xr.map)(t,function(h){return hj(h,i)}),l=(0,xr.map)(t,function(h){return pj(h,e,i)}),c=Cj(t,e,i));var u=Iye(t,r,i),g=(0,xr.map)(t,function(h){return dj(h,i)}),f=(0,xr.map)(t,function(h){return fj(h,t,n,i)});return nr.flatten(s.concat(c,o,a,l,u,g,f))}Xt.validateGrammar=yye;function Eye(t,e){var r=new Ij;t.accept(r);var i=r.allProductions,n=nr.groupBy(i,mj),s=nr.pick(n,function(a){return a.length>1}),o=nr.map(nr.values(s),function(a){var l=nr.first(a),c=e.buildDuplicateFoundError(t,a),u=(0,eS.getProductionDslName)(l),g={message:c,type:Ko.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:u,occurrence:l.idx},f=Ej(l);return f&&(g.parameter=f),g});return o}function mj(t){return(0,eS.getProductionDslName)(t)+"_#_"+t.idx+"_#_"+Ej(t)}Xt.identifyProductionForDuplicates=mj;function Ej(t){return t instanceof lo.Terminal?t.terminalType.name:t instanceof lo.NonTerminal?t.nonTerminalName:""}var Ij=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitNonTerminal=function(r){this.allProductions.push(r)},e.prototype.visitOption=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e.prototype.visitAlternation=function(r){this.allProductions.push(r)},e.prototype.visitTerminal=function(r){this.allProductions.push(r)},e}(tS.GAstVisitor);Xt.OccurrenceValidationCollector=Ij;function fj(t,e,r,i){var n=[],s=(0,xr.reduce)(e,function(a,l){return l.name===t.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});n.push({message:o,type:Ko.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:t.name})}return n}Xt.validateRuleDoesNotAlreadyExist=fj;function wye(t,e,r){var i=[],n;return nr.contains(e,t)||(n="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+r+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Ko.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:t})),i}Xt.validateRuleIsOverridden=wye;function rS(t,e,r,i){i===void 0&&(i=[]);var n=[],s=Hp(e.definition);if(nr.isEmpty(s))return[];var o=t.name,a=nr.contains(s,t);a&&n.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:Ko.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=nr.difference(s,i.concat([t])),c=nr.map(l,function(u){var g=nr.cloneArr(i);return g.push(u),rS(t,u,r,g)});return n.concat(nr.flatten(c))}Xt.validateNoLeftRecursion=rS;function Hp(t){var e=[];if(nr.isEmpty(t))return e;var r=nr.first(t);if(r instanceof lo.NonTerminal)e.push(r.referencedRule);else if(r instanceof lo.Alternative||r instanceof lo.Option||r instanceof lo.RepetitionMandatory||r instanceof lo.RepetitionMandatoryWithSeparator||r instanceof lo.RepetitionWithSeparator||r instanceof lo.Repetition)e=e.concat(Hp(r.definition));else if(r instanceof lo.Alternation)e=nr.flatten(nr.map(r.definition,function(o){return Hp(o.definition)}));else if(!(r instanceof lo.Terminal))throw Error("non exhaustive match");var i=(0,eS.isOptionalProd)(r),n=t.length>1;if(i&&n){var s=nr.drop(t);return e.concat(Hp(s))}else return e}Xt.getFirstNoneTerminal=Hp;var iS=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.alternations=[],r}return e.prototype.visitAlternation=function(r){this.alternations.push(r)},e}(tS.GAstVisitor);function hj(t,e){var r=new iS;t.accept(r);var i=r.alternations,n=nr.reduce(i,function(s,o){var a=nr.dropRight(o.definition),l=nr.map(a,function(c,u){var g=(0,mye.nextPossibleTokensAfter)([c],[],null,1);return nr.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:o,emptyChoiceIdx:u}),type:Ko.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(nr.compact(l))},[]);return n}Xt.validateEmptyOrAlternative=hj;function pj(t,e,r){var i=new iS;t.accept(i);var n=i.alternations;n=(0,xr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=nr.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,mg.getLookaheadPathsForOr)(l,t,c,a),g=Bye(u,a,t,r),f=yj(u,a,t,r);return o.concat(g,f)},[]);return s}Xt.validateAmbiguousAlternationAlternatives=pj;var wj=function(t){$v(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e}(tS.GAstVisitor);Xt.RepetionCollector=wj;function dj(t,e){var r=new iS;t.accept(r);var i=r.alternations,n=nr.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:o}),type:Ko.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:t.name,occurrence:o.idx}),s},[]);return n}Xt.validateTooManyAlts=dj;function Cj(t,e,r){var i=[];return(0,xr.forEach)(t,function(n){var s=new wj;n.accept(s);var o=s.allProductions;(0,xr.forEach)(o,function(a){var l=(0,mg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,mg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,xr.isEmpty)((0,xr.flatten)(f))){var h=r.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Ko.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Xt.validateSomeNonEmptyLookaheadPath=Cj;function Bye(t,e,r,i){var n=[],s=(0,xr.reduce)(t,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,xr.forEach)(l,function(u){var g=[c];(0,xr.forEach)(t,function(f,h){c!==h&&(0,mg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,mg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=nr.map(s,function(a){var l=(0,xr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Ko.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function yj(t,e,r,i){var n=[],s=(0,xr.reduce)(t,function(o,a,l){var c=(0,xr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,xr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,xr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Eg,"__esModule",{value:!0});Eg.validateGrammar=Eg.resolveGrammar=void 0;var sS=Yt(),bye=rj(),Qye=nS(),Bj=Op();function vye(t){t=(0,sS.defaults)(t,{errMsgProvider:Bj.defaultGrammarResolverErrorProvider});var e={};return(0,sS.forEach)(t.rules,function(r){e[r.name]=r}),(0,bye.resolveGrammar)(e,t.errMsgProvider)}Eg.resolveGrammar=vye;function Sye(t){return t=(0,sS.defaults)(t,{errMsgProvider:Bj.defaultGrammarValidatorErrorProvider}),(0,Qye.validateGrammar)(t.rules,t.maxLookahead,t.tokenTypes,t.errMsgProvider,t.grammarName)}Eg.validateGrammar=Sye});var Ig=w(vn=>{"use strict";var Gp=vn&&vn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(vn,"__esModule",{value:!0});vn.EarlyExitException=vn.NotAllInputParsedException=vn.NoViableAltException=vn.MismatchedTokenException=vn.isRecognitionException=void 0;var kye=Yt(),Qj="MismatchedTokenException",vj="NoViableAltException",Sj="EarlyExitException",kj="NotAllInputParsedException",xj=[Qj,vj,Sj,kj];Object.freeze(xj);function xye(t){return(0,kye.contains)(xj,t.name)}vn.isRecognitionException=xye;var ry=function(t){Gp(e,t);function e(r,i){var n=this.constructor,s=t.call(this,r)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Pye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Qj,s}return e}(ry);vn.MismatchedTokenException=Pye;var Dye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=vj,s}return e}(ry);vn.NoViableAltException=Dye;var Rye=function(t){Gp(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.name=kj,n}return e}(ry);vn.NotAllInputParsedException=Rye;var Fye=function(t){Gp(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Sj,s}return e}(ry);vn.EarlyExitException=Fye});var aS=w(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.attemptInRepetitionRecovery=Yi.Recoverable=Yi.InRuleRecoveryException=Yi.IN_RULE_RECOVERY_EXCEPTION=Yi.EOF_FOLLOW_KEY=void 0;var iy=WA(),Ss=Yt(),Nye=Ig(),Lye=zv(),Tye=Zn();Yi.EOF_FOLLOW_KEY={};Yi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function oS(t){this.name=Yi.IN_RULE_RECOVERY_EXCEPTION,this.message=t}Yi.InRuleRecoveryException=oS;oS.prototype=Error.prototype;var Oye=function(){function t(){}return t.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,Ss.has)(e,"recoveryEnabled")?e.recoveryEnabled:Tye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Pj)},t.prototype.getTokenToInsert=function(e){var r=(0,iy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r},t.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},t.prototype.tryInRepetitionRecovery=function(e,r,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),m=new Nye.MismatchedTokenException(p,u,s.LA(0));m.resyncedTokens=(0,Ss.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,r);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},t.prototype.shouldInRepetitionRecoveryBeTried=function(e,r,i){return!(i===!1||e===void 0||r===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))},t.prototype.getFollowsForInRuleRecovery=function(e,r){var i=this.getCurrentGrammarPath(e,r),n=this.getNextPossibleTokenTypes(i);return n},t.prototype.tryInRuleRecovery=function(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new oS("sad sad panda")},t.prototype.canPerformInRuleRecovery=function(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)},t.prototype.canRecoverWithSingleTokenInsertion=function(e,r){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,Ss.isEmpty)(r))return!1;var n=this.LA(1),s=(0,Ss.find)(r,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},t.prototype.canRecoverWithSingleTokenDeletion=function(e){var r=this.tokenMatcher(this.LA(2),e);return r},t.prototype.isInCurrentRuleReSyncSet=function(e){var r=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(r);return(0,Ss.contains)(i,e)},t.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),r=this.LA(1),i=2;;){var n=r.tokenType;if((0,Ss.contains)(e,n))return n;r=this.LA(i),i++}},t.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Yi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(i)}},t.prototype.buildFullFollowKeyStack=function(){var e=this,r=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,Ss.map)(r,function(n,s){return s===0?Yi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(r[s-1])}})},t.prototype.flattenFollowSet=function(){var e=this,r=(0,Ss.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,Ss.flatten)(r)},t.prototype.getFollowSetFromFollowKey=function(e){if(e===Yi.EOF_FOLLOW_KEY)return[iy.EOF];var r=e.ruleName+e.idxInCallingRule+Lye.IN+e.inRule;return this.resyncFollows[r]},t.prototype.addToResyncTokens=function(e,r){return this.tokenMatcher(e,iy.EOF)||r.push(e),r},t.prototype.reSyncTo=function(e){for(var r=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,r);return(0,Ss.dropRight)(r)},t.prototype.attemptInRepetitionRecovery=function(e,r,i,n,s,o,a){},t.prototype.getCurrentGrammarPath=function(e,r){var i=this.getHumanReadableRuleStack(),n=(0,Ss.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:r};return s},t.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,Ss.map)(this.RULE_STACK,function(r){return e.shortRuleNameToFullName(r)})},t}();Yi.Recoverable=Oye;function Pj(t,e,r,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=iy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(t,e,r,f)}Yi.attemptInRepetitionRecovery=Pj});var ny=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.LooksAhead=void 0;var Ga=Up(),co=Yt(),Dj=Zn(),ja=ny(),vc=Tp(),Kye=function(){function t(){}return t.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,co.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Dj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,co.has)(e,"maxLookahead")?e.maxLookahead:Dj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,co.isES2015MapSupported)()?new Map:[],(0,co.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},t.prototype.preComputeLookaheadFunctions=function(e){var r=this;(0,co.forEach)(e,function(i){r.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,vc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,co.forEach)(s,function(g){var f=g.idx===0?"":g.idx;r.TRACE_INIT(""+(0,vc.getProductionDslName)(g)+f,function(){var h=(0,Ga.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||r.maxLookahead,g.hasPredicates,r.dynamicTokensEnabled,r.lookAheadBuilderForAlternatives),p=(0,ja.getKeyForAutomaticLookahead)(r.fullRuleNameToShort[i.name],ja.OR_IDX,g.idx);r.setLaFuncCache(p,h)})}),(0,co.forEach)(o,function(g){r.computeLookaheadFunc(i,g.idx,ja.MANY_IDX,Ga.PROD_TYPE.REPETITION,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(a,function(g){r.computeLookaheadFunc(i,g.idx,ja.OPTION_IDX,Ga.PROD_TYPE.OPTION,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(l,function(g){r.computeLookaheadFunc(i,g.idx,ja.AT_LEAST_ONE_IDX,Ga.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(c,function(g){r.computeLookaheadFunc(i,g.idx,ja.AT_LEAST_ONE_SEP_IDX,Ga.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,vc.getProductionDslName)(g))}),(0,co.forEach)(u,function(g){r.computeLookaheadFunc(i,g.idx,ja.MANY_SEP_IDX,Ga.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,vc.getProductionDslName)(g))})})})},t.prototype.computeLookaheadFunc=function(e,r,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(r===0?"":r),function(){var l=(0,Ga.buildLookaheadFuncForOptionalProd)(r,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ja.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,r);a.setLaFuncCache(c,l)})},t.prototype.lookAheadBuilderForOptional=function(e,r,i){return(0,Ga.buildSingleAlternativeLookaheadFunction)(e,r,i)},t.prototype.lookAheadBuilderForAlternatives=function(e,r,i,n){return(0,Ga.buildAlternativesLookAheadFunc)(e,r,i,n)},t.prototype.getKeyForAutomaticLookahead=function(e,r){var i=this.getLastExplicitRuleShortName();return(0,ja.getKeyForAutomaticLookahead)(i,e,r)},t.prototype.getLaFuncFromCache=function(e){},t.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},t.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},t.prototype.setLaFuncCache=function(e,r){},t.prototype.setLaFuncCacheUsingMap=function(e,r){this.lookAheadFuncsCache.set(e,r)},t.prototype.setLaFuncUsingObj=function(e,r){this.lookAheadFuncsCache[e]=r},t}();sy.LooksAhead=Kye});var Fj=w(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.addNoneTerminalToCst=Uo.addTerminalToCst=Uo.setNodeLocationFull=Uo.setNodeLocationOnlyOffset=void 0;function Uye(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";Object.defineProperty(VA,"__esModule",{value:!0});VA.defineNameProp=VA.functionName=VA.classNameFromInstance=void 0;var Yye=Yt();function qye(t){return Nj(t.constructor)}VA.classNameFromInstance=qye;var Lj="name";function Nj(t){var e=t.name;return e||"anonymous"}VA.functionName=Nj;function Jye(t,e){var r=Object.getOwnPropertyDescriptor(t,Lj);return(0,Yye.isUndefined)(r)||r.configurable?(Object.defineProperty(t,Lj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}VA.defineNameProp=Jye});var Uj=w(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.validateRedundantMethods=Pi.validateMissingCstMethods=Pi.validateVisitor=Pi.CstVisitorDefinitionError=Pi.createBaseVisitorConstructorWithDefaults=Pi.createBaseSemanticVisitorConstructor=Pi.defaultVisit=void 0;var ks=Yt(),jp=AS();function Tj(t,e){for(var r=(0,ks.keys)(t),i=r.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return r.prototype=i,r.prototype.constructor=r,r._RULE_NAMES=e,r}Pi.createBaseSemanticVisitorConstructor=Wye;function zye(t,e,r){var i=function(){};(0,jp.defineNameProp)(i,t+"BaseSemanticsWithDefaults");var n=Object.create(r.prototype);return(0,ks.forEach)(e,function(s){n[s]=Tj}),i.prototype=n,i.prototype.constructor=i,i}Pi.createBaseVisitorConstructorWithDefaults=zye;var lS;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(lS=Pi.CstVisitorDefinitionError||(Pi.CstVisitorDefinitionError={}));function Oj(t,e){var r=Mj(t,e),i=Kj(t,e);return r.concat(i)}Pi.validateVisitor=Oj;function Mj(t,e){var r=(0,ks.map)(e,function(i){if(!(0,ks.isFunction)(t[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,jp.functionName)(t.constructor)+" CST Visitor.",type:lS.MISSING_METHOD,methodName:i}});return(0,ks.compact)(r)}Pi.validateMissingCstMethods=Mj;var _ye=["constructor","visit","validateVisitor"];function Kj(t,e){var r=[];for(var i in t)(0,ks.isFunction)(t[i])&&!(0,ks.contains)(_ye,i)&&!(0,ks.contains)(e,i)&&r.push({msg:"Redundant visitor method: <"+i+"> on "+(0,jp.functionName)(t.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:lS.REDUNDANT_METHOD,methodName:i});return r}Pi.validateRedundantMethods=Kj});var Gj=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.TreeBuilder=void 0;var yg=Fj(),ni=Yt(),Hj=Uj(),Vye=Zn(),Xye=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ni.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Vye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ni.NOOP,this.cstFinallyStateUpdate=ni.NOOP,this.cstPostTerminal=ni.NOOP,this.cstPostNonTerminal=ni.NOOP,this.cstPostRule=ni.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yg.setNodeLocationFull,this.setNodeLocationFromNode=yg.setNodeLocationFull,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=yg.setNodeLocationOnlyOffset,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=ni.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,r){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?(i.endOffset=r.endOffset,i.endLine=r.endLine,i.endColumn=r.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?i.endOffset=r.endOffset:i.startOffset=NaN},t.prototype.cstPostTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yg.addTerminalToCst)(i,r,e),this.setNodeLocationFromToken(i.location,r)},t.prototype.cstPostNonTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yg.addNoneTerminalToCst)(i,r,e),this.setNodeLocationFromNode(i.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if((0,ni.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Hj.createBaseSemanticVisitorConstructor)(this.className,(0,ni.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ni.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Hj.createBaseVisitorConstructorWithDefaults)(this.className,(0,ni.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}();oy.TreeBuilder=Xye});var Yj=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.LexerAdapter=void 0;var jj=Zn(),Zye=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):jj.END_OF_FILE},t.prototype.LA=function(e){var r=this.currIdx+e;return r<0||this.tokVectorLength<=r?jj.END_OF_FILE:this.tokVector[r]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}();ay.LexerAdapter=Zye});var Jj=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.RecognizerApi=void 0;var qj=Yt(),$ye=Ig(),cS=Zn(),ewe=Op(),twe=nS(),rwe=bn(),iwe=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,r,i){return this.consumeInternal(r,e,i)},t.prototype.subrule=function(e,r,i){return this.subruleInternal(r,e,i)},t.prototype.option=function(e,r){return this.optionInternal(r,e)},t.prototype.or=function(e,r){return this.orInternal(r,e)},t.prototype.many=function(e,r){return this.manyInternal(e,r)},t.prototype.atLeastOne=function(e,r){return this.atLeastOneInternal(e,r)},t.prototype.CONSUME=function(e,r){return this.consumeInternal(e,0,r)},t.prototype.CONSUME1=function(e,r){return this.consumeInternal(e,1,r)},t.prototype.CONSUME2=function(e,r){return this.consumeInternal(e,2,r)},t.prototype.CONSUME3=function(e,r){return this.consumeInternal(e,3,r)},t.prototype.CONSUME4=function(e,r){return this.consumeInternal(e,4,r)},t.prototype.CONSUME5=function(e,r){return this.consumeInternal(e,5,r)},t.prototype.CONSUME6=function(e,r){return this.consumeInternal(e,6,r)},t.prototype.CONSUME7=function(e,r){return this.consumeInternal(e,7,r)},t.prototype.CONSUME8=function(e,r){return this.consumeInternal(e,8,r)},t.prototype.CONSUME9=function(e,r){return this.consumeInternal(e,9,r)},t.prototype.SUBRULE=function(e,r){return this.subruleInternal(e,0,r)},t.prototype.SUBRULE1=function(e,r){return this.subruleInternal(e,1,r)},t.prototype.SUBRULE2=function(e,r){return this.subruleInternal(e,2,r)},t.prototype.SUBRULE3=function(e,r){return this.subruleInternal(e,3,r)},t.prototype.SUBRULE4=function(e,r){return this.subruleInternal(e,4,r)},t.prototype.SUBRULE5=function(e,r){return this.subruleInternal(e,5,r)},t.prototype.SUBRULE6=function(e,r){return this.subruleInternal(e,6,r)},t.prototype.SUBRULE7=function(e,r){return this.subruleInternal(e,7,r)},t.prototype.SUBRULE8=function(e,r){return this.subruleInternal(e,8,r)},t.prototype.SUBRULE9=function(e,r){return this.subruleInternal(e,9,r)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,r,i){if(i===void 0&&(i=cS.DEFAULT_RULE_CONFIG),(0,qj.contains)(this.definedRulesNames,e)){var n=ewe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:cS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,r,i);return this[e]=o,o},t.prototype.OVERRIDE_RULE=function(e,r,i){i===void 0&&(i=cS.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,twe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,r,i);return this[e]=s,s},t.prototype.BACKTRACK=function(e,r){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,r),!0}catch(n){if((0,$ye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return(0,rwe.serializeGrammar)((0,qj.values)(this.gastProductionsCache))},t}();Ay.RecognizerApi=iwe});var Vj=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.RecognizerEngine=void 0;var Rr=Yt(),$n=ny(),cy=Ig(),Wj=Up(),wg=Kp(),zj=Zn(),nwe=aS(),_j=WA(),Yp=pg(),swe=AS(),owe=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,r){if(this.className=(0,swe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Yp.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Rr.has)(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Rr.isArray)(e)){if((0,Rr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Rr.isArray)(e))this.tokensMap=(0,Rr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Rr.has)(e,"modes")&&(0,Rr.every)((0,Rr.flatten)((0,Rr.values)(e.modes)),Yp.isTokenType)){var i=(0,Rr.flatten)((0,Rr.values)(e.modes)),n=(0,Rr.uniq)(i);this.tokensMap=(0,Rr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Rr.isObject)(e))this.tokensMap=(0,Rr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=_j.EOF;var s=(0,Rr.every)((0,Rr.values)(e),function(o){return(0,Rr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Yp.tokenStructuredMatcherNoCategories:Yp.tokenStructuredMatcher,(0,Yp.augmentTokenTypes)((0,Rr.values)(this.tokensMap))},t.prototype.defineRule=function(e,r,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Rr.has)(i,"resyncEnabled")?i.resyncEnabled:zj.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Rr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:zj.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<$n.BITS_FOR_METHOD_TYPE+$n.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){r.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return r.apply(this,u)}catch(f){return this.invokeRuleCatch(f,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=r,l},t.prototype.invokeRuleCatch=function(e,r,i){var n=this.RULE_STACK.length===1,s=r&&!this.isBackTracking()&&this.recoveryEnabled;if((0,cy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},t.prototype.optionInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.OPTION_IDX,r);return this.optionInternalLogic(e,r,i)},t.prototype.optionInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},t.prototype.atLeastOneInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,r,i)},t.prototype.atLeastOneInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(r.DEF!==void 0){if(o=r.DEF,a=r.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=r;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,Wj.PROD_TYPE.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],s,$n.AT_LEAST_ONE_IDX,e,wg.NextTerminalAfterAtLeastOneWalker)},t.prototype.atLeastOneSepFirstInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,r,i)},t.prototype.atLeastOneSepFirstInternalLogic=function(e,r,i){var n=this,s=r.DEF,o=r.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wg.NextTerminalAfterAtLeastOneSepWalker],l,$n.AT_LEAST_ONE_SEP_IDX,e,wg.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Wj.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)},t.prototype.manyInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.MANY_IDX,e);return this.manyInternalLogic(e,r,i)},t.prototype.manyInternalLogic=function(e,r,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(r.DEF!==void 0){if(o=r.DEF,a=r.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=r;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],s,$n.MANY_IDX,e,wg.NextTerminalAfterManyWalker,c)},t.prototype.manySepFirstInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,r,i)},t.prototype.manySepFirstInternalLogic=function(e,r,i){var n=this,s=r.DEF,o=r.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,wg.NextTerminalAfterManySepWalker],l,$n.MANY_SEP_IDX,e,wg.NextTerminalAfterManySepWalker)}},t.prototype.repetitionSepSecondInternal=function(e,r,i,n,s){for(;i();)this.CONSUME(r),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,i,n,s],i,$n.AT_LEAST_ONE_SEP_IDX,e,s)},t.prototype.doSingleRepetition=function(e){var r=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>r},t.prototype.orInternal=function(e,r){var i=this.getKeyForAutomaticLookahead($n.OR_IDX,r),n=(0,Rr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(r,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new cy.NotAllInputParsedException(r,e))}},t.prototype.subruleInternal=function(e,r,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,r,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},t.prototype.subruleInternalError=function(e,r,i){throw(0,cy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:i),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,r,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,r,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},t.prototype.consumeInternalError=function(e,r,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new cy.MismatchedTokenException(n,r,s))},t.prototype.consumeInternalRecovery=function(e,r,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===nwe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},t.prototype.saveRecogState=function(){var e=this.errors,r=(0,Rr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,r,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),_j.EOF)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}();ly.RecognizerEngine=owe});var Zj=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.ErrorHandler=void 0;var uS=Ig(),gS=Yt(),Xj=Up(),awe=Zn(),Awe=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,gS.has)(e,"errorMessageProvider")?e.errorMessageProvider:awe.DEFAULT_PARSER_CONFIG.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if((0,uS.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,gS.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return(0,gS.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,r,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Xj.getLookaheadPathsForOptionalProd)(e,s,r,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new uS.EarlyExitException(u,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,r){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Xj.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new uS.NoViableAltException(c,this.LA(1),l))},t}();uy.ErrorHandler=Awe});var tY=w(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.ContentAssist=void 0;var $j=Kp(),eY=Yt(),lwe=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,r){var i=this.gastProductionsCache[e];if((0,eY.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,$j.nextPossibleTokensAfter)([i],r,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var r=(0,eY.first)(e.ruleStack),i=this.getGAstProductions(),n=i[r],s=new $j.NextAfterTokenWalker(n,e).startWalking();return s},t}();gy.ContentAssist=lwe});var lY=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.GastRecorder=void 0;var Sn=Yt(),Ho=bn(),cwe=Rp(),rY=pg(),iY=WA(),uwe=Zn(),gwe=ny(),hy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(hy);var nY=!0,sY=Math.pow(2,gwe.BITS_FOR_OCCURRENCE_IDX)-1,oY=(0,iY.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:cwe.Lexer.NA});(0,rY.augmentTokenTypes)([oY]);var aY=(0,iY.createTokenInstance)(oY,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(aY);var fwe={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},pwe=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var r=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)r(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var r=0;r<10;r++){var i=r>0?r:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,r){return function(){return!0}},t.prototype.LA_RECORD=function(e){return uwe.END_OF_FILE},t.prototype.topLevelRuleRecord=function(e,r){try{var i=new Ho.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),r.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},t.prototype.optionInternalRecord=function(e,r){return qp.call(this,Ho.Option,e,r)},t.prototype.atLeastOneInternalRecord=function(e,r){qp.call(this,Ho.RepetitionMandatory,r,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,r){qp.call(this,Ho.RepetitionMandatoryWithSeparator,r,e,nY)},t.prototype.manyInternalRecord=function(e,r){qp.call(this,Ho.Repetition,r,e)},t.prototype.manySepFirstInternalRecord=function(e,r){qp.call(this,Ho.RepetitionWithSeparator,r,e,nY)},t.prototype.orInternalRecord=function(e,r){return hwe.call(this,e,r)},t.prototype.subruleInternalRecord=function(e,r,i){if(py(r),!e||(0,Sn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Sn.peek)(this.recordingProdStack),o=e.ruleName,a=new Ho.NonTerminal({idx:r,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?fwe:hy},t.prototype.consumeInternalRecord=function(e,r,i){if(py(r),!(0,rY.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Sn.peek)(this.recordingProdStack),o=new Ho.Terminal({idx:r,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),aY},t}();fy.GastRecorder=pwe;function qp(t,e,r,i){i===void 0&&(i=!1),py(r);var n=(0,Sn.peek)(this.recordingProdStack),s=(0,Sn.isFunction)(e)?e:e.DEF,o=new t({definition:[],idx:r});return i&&(o.separator=e.SEP),(0,Sn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),hy}function hwe(t,e){var r=this;py(e);var i=(0,Sn.peek)(this.recordingProdStack),n=(0,Sn.isArray)(t)===!1,s=n===!1?t:t.DEF,o=new Ho.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});(0,Sn.has)(t,"MAX_LOOKAHEAD")&&(o.maxLookahead=t.MAX_LOOKAHEAD);var a=(0,Sn.some)(s,function(l){return(0,Sn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,Sn.forEach)(s,function(l){var c=new Ho.Alternative({definition:[]});o.definition.push(c),(0,Sn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,Sn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),r.recordingProdStack.push(c),l.ALT.call(r),r.recordingProdStack.pop()}),hy}function AY(t){return t===0?"":""+t}function py(t){if(t<0||t>sY){var e=new Error("Invalid DSL Method idx value: <"+t+`> - `+("Idx value must be a none negative value smaller than "+(sY+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var uY=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.PerformanceTracer=void 0;var cY=Yt(),dwe=Zn(),Cwe=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if((0,cY.has)(e,"traceInitPerf")){var r=e.traceInitPerf,i=typeof r=="number";this.traceInitMaxIdent=i?r:Infinity,this.traceInitPerf=i?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=dwe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,cY.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t}();dy.PerformanceTracer=Cwe});var gY=w(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.applyMixins=void 0;function mwe(t,e){e.forEach(function(r){var i=r.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(t.prototype,n,s):t.prototype[n]=r.prototype[n]}})})}Cy.applyMixins=mwe});var Zn=w(Er=>{"use strict";var fY=Er&&Er.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Er,"__esModule",{value:!0});Er.EmbeddedActionsParser=Er.CstParser=Er.Parser=Er.EMPTY_ALT=Er.ParserDefinitionErrorType=Er.DEFAULT_RULE_CONFIG=Er.DEFAULT_PARSER_CONFIG=Er.END_OF_FILE=void 0;var an=Yt(),Ewe=ZG(),hY=WA(),pY=Op(),dY=bj(),Iwe=aS(),ywe=Rj(),wwe=Gj(),Bwe=Yj(),bwe=Jj(),Qwe=Vj(),vwe=Zj(),Swe=tY(),kwe=lY(),xwe=uY(),Pwe=gY();Er.END_OF_FILE=(0,hY.createTokenInstance)(hY.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Er.END_OF_FILE);Er.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:pY.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Er.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var Dwe;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Dwe=Er.ParserDefinitionErrorType||(Er.ParserDefinitionErrorType={}));function Rwe(t){return t===void 0&&(t=void 0),function(){return t}}Er.EMPTY_ALT=Rwe;var my=function(){function t(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(r),i.initLexerAdapter(),i.initLooksAhead(r),i.initRecognizerEngine(e,r),i.initRecoverable(r),i.initTreeBuilder(r),i.initContentAssist(),i.initGastRecorder(r),i.initPerformanceTracer(r),(0,an.has)(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,an.has)(r,"skipValidations")?r.skipValidations:Er.DEFAULT_PARSER_CONFIG.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var r;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,an.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,an.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,dY.resolveGrammar)({rules:(0,an.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,an.isEmpty)(n)&&e.skipValidations===!1){var s=(0,dY.validateGrammar)({rules:(0,an.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,an.values)(e.tokensMap),errMsgProvider:pY.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,an.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Ewe.computeAllProdsFollows)((0,an.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,an.values)(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,an.isEmpty)(e.definitionErrors))throw r=(0,an.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+r.join(` -------------------------------- -`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();Er.Parser=my;(0,Pwe.applyMixins)(my,[Iwe.Recoverable,ywe.LooksAhead,wwe.TreeBuilder,Bwe.LexerAdapter,Qwe.RecognizerEngine,bwe.RecognizerApi,vwe.ErrorHandler,Swe.ContentAssist,kwe.GastRecorder,xwe.PerformanceTracer]);var Fwe=function(t){fY(e,t);function e(r,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!0,n=t.call(this,r,s)||this,n}return e}(my);Er.CstParser=Fwe;var Nwe=function(t){fY(e,t);function e(r,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!1,n=t.call(this,r,s)||this,n}return e}(my);Er.EmbeddedActionsParser=Nwe});var mY=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.createSyntaxDiagramsCode=void 0;var CY=Rv();function Lwe(t,e){var r=e===void 0?{}:e,i=r.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+CY.VERSION+"/diagrams/":i,s=r.css,o=s===void 0?"https://unpkg.com/chevrotain@"+CY.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` - - - - -`,u=` -
    -`,g=` - -`,f=` - -`;return a+l+c+u+g+f}Ey.createSyntaxDiagramsCode=Lwe});var yY=w(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Parser=Ve.createSyntaxDiagramsCode=Ve.clearCache=Ve.GAstVisitor=Ve.serializeProduction=Ve.serializeGrammar=Ve.Terminal=Ve.Rule=Ve.RepetitionWithSeparator=Ve.RepetitionMandatoryWithSeparator=Ve.RepetitionMandatory=Ve.Repetition=Ve.Option=Ve.NonTerminal=Ve.Alternative=Ve.Alternation=Ve.defaultLexerErrorProvider=Ve.NoViableAltException=Ve.NotAllInputParsedException=Ve.MismatchedTokenException=Ve.isRecognitionException=Ve.EarlyExitException=Ve.defaultParserErrorProvider=Ve.tokenName=Ve.tokenMatcher=Ve.tokenLabel=Ve.EOF=Ve.createTokenInstance=Ve.createToken=Ve.LexerDefinitionErrorType=Ve.Lexer=Ve.EMPTY_ALT=Ve.ParserDefinitionErrorType=Ve.EmbeddedActionsParser=Ve.CstParser=Ve.VERSION=void 0;var Twe=Rv();Object.defineProperty(Ve,"VERSION",{enumerable:!0,get:function(){return Twe.VERSION}});var Iy=Zn();Object.defineProperty(Ve,"CstParser",{enumerable:!0,get:function(){return Iy.CstParser}});Object.defineProperty(Ve,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Iy.EmbeddedActionsParser}});Object.defineProperty(Ve,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Iy.ParserDefinitionErrorType}});Object.defineProperty(Ve,"EMPTY_ALT",{enumerable:!0,get:function(){return Iy.EMPTY_ALT}});var EY=Rp();Object.defineProperty(Ve,"Lexer",{enumerable:!0,get:function(){return EY.Lexer}});Object.defineProperty(Ve,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return EY.LexerDefinitionErrorType}});var Bg=WA();Object.defineProperty(Ve,"createToken",{enumerable:!0,get:function(){return Bg.createToken}});Object.defineProperty(Ve,"createTokenInstance",{enumerable:!0,get:function(){return Bg.createTokenInstance}});Object.defineProperty(Ve,"EOF",{enumerable:!0,get:function(){return Bg.EOF}});Object.defineProperty(Ve,"tokenLabel",{enumerable:!0,get:function(){return Bg.tokenLabel}});Object.defineProperty(Ve,"tokenMatcher",{enumerable:!0,get:function(){return Bg.tokenMatcher}});Object.defineProperty(Ve,"tokenName",{enumerable:!0,get:function(){return Bg.tokenName}});var Owe=Op();Object.defineProperty(Ve,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Owe.defaultParserErrorProvider}});var Jp=Ig();Object.defineProperty(Ve,"EarlyExitException",{enumerable:!0,get:function(){return Jp.EarlyExitException}});Object.defineProperty(Ve,"isRecognitionException",{enumerable:!0,get:function(){return Jp.isRecognitionException}});Object.defineProperty(Ve,"MismatchedTokenException",{enumerable:!0,get:function(){return Jp.MismatchedTokenException}});Object.defineProperty(Ve,"NotAllInputParsedException",{enumerable:!0,get:function(){return Jp.NotAllInputParsedException}});Object.defineProperty(Ve,"NoViableAltException",{enumerable:!0,get:function(){return Jp.NoViableAltException}});var Mwe=Gv();Object.defineProperty(Ve,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Mwe.defaultLexerErrorProvider}});var Go=bn();Object.defineProperty(Ve,"Alternation",{enumerable:!0,get:function(){return Go.Alternation}});Object.defineProperty(Ve,"Alternative",{enumerable:!0,get:function(){return Go.Alternative}});Object.defineProperty(Ve,"NonTerminal",{enumerable:!0,get:function(){return Go.NonTerminal}});Object.defineProperty(Ve,"Option",{enumerable:!0,get:function(){return Go.Option}});Object.defineProperty(Ve,"Repetition",{enumerable:!0,get:function(){return Go.Repetition}});Object.defineProperty(Ve,"RepetitionMandatory",{enumerable:!0,get:function(){return Go.RepetitionMandatory}});Object.defineProperty(Ve,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Go.RepetitionMandatoryWithSeparator}});Object.defineProperty(Ve,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Go.RepetitionWithSeparator}});Object.defineProperty(Ve,"Rule",{enumerable:!0,get:function(){return Go.Rule}});Object.defineProperty(Ve,"Terminal",{enumerable:!0,get:function(){return Go.Terminal}});var IY=bn();Object.defineProperty(Ve,"serializeGrammar",{enumerable:!0,get:function(){return IY.serializeGrammar}});Object.defineProperty(Ve,"serializeProduction",{enumerable:!0,get:function(){return IY.serializeProduction}});var Kwe=dg();Object.defineProperty(Ve,"GAstVisitor",{enumerable:!0,get:function(){return Kwe.GAstVisitor}});function Uwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. - It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}Ve.clearCache=Uwe;var Hwe=mY();Object.defineProperty(Ve,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Hwe.createSyntaxDiagramsCode}});var Gwe=function(){function t(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return t}();Ve.Parser=Gwe});var bY=w((_tt,wY)=>{var yy=yY(),Ya=yy.createToken,BY=yy.tokenMatcher,fS=yy.Lexer,jwe=yy.EmbeddedActionsParser;wY.exports=t=>{let e=Ya({name:"LogicalOperator",pattern:fS.NA}),r=Ya({name:"Or",pattern:/\|/,categories:e}),i=Ya({name:"Xor",pattern:/\^/,categories:e}),n=Ya({name:"And",pattern:/&/,categories:e}),s=Ya({name:"Not",pattern:/!/}),o=Ya({name:"LParen",pattern:/\(/}),a=Ya({name:"RParen",pattern:/\)/}),l=Ya({name:"Query",pattern:t}),u=[Ya({name:"WhiteSpace",pattern:/\s+/,group:fS.SKIPPED}),r,i,n,o,a,s,e,l],g=new fS(u);class f extends jwe{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let b=y,S=this.CONSUME(e),k=this.SUBRULE2(this.atomicExpression);BY(S,r)?y=T=>b(T)||k(T):BY(S,i)?y=T=>!!(b(T)^k(T)):y=T=>b(T)&&k(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var QY=w(wy=>{var Ywe=bY();wy.makeParser=(t=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:r}=Ywe(t),i=new r;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};wy.parse=wy.makeParser()});var SY=w((Xtt,vY)=>{"use strict";vY.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var hS=w((Ztt,kY)=>{var Wp=SY(),xY={};for(let t of Object.keys(Wp))xY[Wp[t]]=t;var at={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};kY.exports=at;for(let t of Object.keys(at)){if(!("channels"in at[t]))throw new Error("missing channels property: "+t);if(!("labels"in at[t]))throw new Error("missing channel labels property: "+t);if(at[t].labels.length!==at[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=at[t];delete at[t].channels,delete at[t].labels,Object.defineProperty(at[t],"channels",{value:e}),Object.defineProperty(at[t],"labels",{value:r})}at.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(e,r,i),s=Math.max(e,r,i),o=s-n,a,l;s===n?a=0:e===s?a=(r-i)/o:r===s?a=2+(i-e)/o:i===s&&(a=4+(e-r)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};at.rgb.hsv=function(t){let e,r,i,n,s,o=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),r=g(a),i=g(l),o===c?n=i-r:a===c?n=1/3+e-i:l===c&&(n=2/3+r-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};at.rgb.hwb=function(t){let e=t[0],r=t[1],i=t[2],n=at.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(r,i));return i=1-1/255*Math.max(e,Math.max(r,i)),[n,s*100,i*100]};at.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(1-e,1-r,1-i),s=(1-e-n)/(1-n)||0,o=(1-r-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function qwe(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}at.rgb.keyword=function(t){let e=xY[t];if(e)return e;let r=Infinity,i;for(let n of Object.keys(Wp)){let s=Wp[n],o=qwe(t,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+r*.3576+i*.1805,s=e*.2126+r*.7152+i*.0722,o=e*.0193+r*.1192+i*.9505;return[n*100,s*100,o*100]};at.rgb.lab=function(t){let e=at.rgb.xyz(t),r=e[0],i=e[1],n=e[2];r/=95.047,i/=100,n/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(r-i),a=200*(i-n);return[s,o,a]};at.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n,s,o;if(r===0)return o=i*255,[o,o,o];i<.5?n=i*(1+r):n=i+r-i*r;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};at.hsl.hsv=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=r,s=Math.max(i,.01);i*=2,r*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+r)/2,a=i===0?2*n/(s+n):2*r/(i+r);return[e,a*100,o*100]};at.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-r),a=255*i*(1-r*s),l=255*i*(1-r*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};at.hsv.hsl=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=Math.max(i,.01),s,o;o=(2-r)*i;let a=(2-r)*n;return s=r*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};at.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n=r+i,s;n>1&&(r/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=r+s*(a-r),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=r;break;case 1:c=l,u=a,g=r;break;case 2:c=r,u=a,g=l;break;case 3:c=r,u=l,g=a;break;case 4:c=l,u=r,g=a;break;case 5:c=a,u=r,g=l;break}return[c*255,u*255,g*255]};at.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n=t[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,r*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};at.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n,s,o;return n=e*3.2406+r*-1.5372+i*-.4986,s=e*-.9689+r*1.8758+i*.0415,o=e*.0557+r*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};at.xyz.lab=function(t){let e=t[0],r=t[1],i=t[2];e/=95.047,r/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*r-16,s=500*(e-r),o=200*(r-i);return[n,s,o]};at.lab.xyz=function(t){let e=t[0],r=t[1],i=t[2],n,s,o;s=(e+16)/116,n=r/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};at.lab.lch=function(t){let e=t[0],r=t[1],i=t[2],n;n=Math.atan2(i,r)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(r*r+i*i);return[e,o,n]};at.lch.lab=function(t){let e=t[0],r=t[1],n=t[2]/360*2*Math.PI,s=r*Math.cos(n),o=r*Math.sin(n);return[e,s,o]};at.rgb.ansi16=function(t,e=null){let[r,i,n]=t,s=e===null?at.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(r/255));return s===2&&(o+=60),o};at.hsv.ansi16=function(t){return at.rgb.ansi16(at.hsv.rgb(t),t[2])};at.rgb.ansi256=function(t){let e=t[0],r=t[1],i=t[2];return e===r&&r===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5)};at.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,i=(e&1)*r*255,n=(e>>1&1)*r*255,s=(e>>2&1)*r*255;return[i,n,s]};at.ansi256.rgb=function(t){if(t>=232){let s=(t-232)*10+8;return[s,s,s]}t-=16;let e,r=Math.floor(t/36)/5*255,i=Math.floor((e=t%36)/6)/5*255,n=e%6/5*255;return[r,i,n]};at.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};at.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(a=>a+a).join(""));let i=parseInt(r,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};at.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.max(Math.max(e,r),i),s=Math.min(Math.min(e,r),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(r-i)/o%6:n===r?l=2+(i-e)/o:l=4+(e-r)/o,l/=6,l%=1,[l*360,o*100,a*100]};at.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=r<.5?2*e*r:2*e*(1-r),n=0;return i<1&&(n=(r-.5*i)/(1-i)),[t[0],i*100,n*100]};at.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=e*r,n=0;return i<1&&(n=(r-i)/(1-i)),[t[0],i*100,n*100]};at.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100;if(r===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-r)*i,[(r*n[0]+l)*255,(r*n[1]+l)*255,(r*n[2]+l)*255]};at.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e),n=0;return i>0&&(n=e/i),[t[0],n*100,i*100]};at.hcg.hsl=function(t){let e=t[1]/100,i=t[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[t[0],n*100,i*100]};at.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e);return[t[0],(i-e)*100,(1-i)*100]};at.hwb.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=1-r,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[t[0],n*100,s*100]};at.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};at.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};at.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};at.gray.hsl=function(t){return[0,0,t[0]]};at.gray.hsv=at.gray.hsl;at.gray.hwb=function(t){return[0,100,t[0]]};at.gray.cmyk=function(t){return[0,0,0,t[0]]};at.gray.lab=function(t){return[t[0],0,0]};at.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};at.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var DY=w(($tt,PY)=>{var By=hS();function Jwe(){let t={},e=Object.keys(By);for(let r=e.length,i=0;i{var pS=hS(),Vwe=DY(),bg={},Xwe=Object.keys(pS);function Zwe(t){let e=function(...r){let i=r[0];return i==null?i:(i.length>1&&(r=i),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function $we(t){let e=function(...r){let i=r[0];if(i==null)return i;i.length>1&&(r=i);let n=t(r);if(typeof n=="object")for(let s=n.length,o=0;o{bg[t]={},Object.defineProperty(bg[t],"channels",{value:pS[t].channels}),Object.defineProperty(bg[t],"labels",{value:pS[t].labels});let e=Vwe(t);Object.keys(e).forEach(i=>{let n=e[i];bg[t][i]=$we(n),bg[t][i].raw=Zwe(n)})});RY.exports=bg});var KY=w((trt,NY)=>{"use strict";var LY=(t,e)=>(...r)=>`[${t(...r)+e}m`,TY=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};5;${i}m`},OY=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},by=t=>t,MY=(t,e,r)=>[t,e,r],Qg=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let i=r();return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},dS,vg=(t,e,r,i)=>{dS===void 0&&(dS=FY());let n=i?10:0,s={};for(let[o,a]of Object.entries(dS)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=t(r,n):typeof a=="object"&&(s[l]=t(a[e],n))}return s};function eBe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],t.set(s[0],s[1]);Object.defineProperty(e,r,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="",e.bgColor.close="",Qg(e.color,"ansi",()=>vg(LY,"ansi16",by,!1)),Qg(e.color,"ansi256",()=>vg(TY,"ansi256",by,!1)),Qg(e.color,"ansi16m",()=>vg(OY,"rgb",MY,!1)),Qg(e.bgColor,"ansi",()=>vg(LY,"ansi16",by,!0)),Qg(e.bgColor,"ansi256",()=>vg(TY,"ansi256",by,!0)),Qg(e.bgColor,"ansi16m",()=>vg(OY,"rgb",MY,!0)),e}Object.defineProperty(NY,"exports",{enumerable:!0,get:eBe})});var HY=w((rrt,UY)=>{"use strict";UY.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(r+t),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var tBe=require("os"),jY=require("tty"),xs=HY(),{env:ui}=process,XA;xs("no-color")||xs("no-colors")||xs("color=false")||xs("color=never")?XA=0:(xs("color")||xs("colors")||xs("color=true")||xs("color=always"))&&(XA=1);"FORCE_COLOR"in ui&&(ui.FORCE_COLOR==="true"?XA=1:ui.FORCE_COLOR==="false"?XA=0:XA=ui.FORCE_COLOR.length===0?1:Math.min(parseInt(ui.FORCE_COLOR,10),3));function CS(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function mS(t,e){if(XA===0)return 0;if(xs("color=16m")||xs("color=full")||xs("color=truecolor"))return 3;if(xs("color=256"))return 2;if(t&&!e&&XA===void 0)return 0;let r=XA||0;if(ui.TERM==="dumb")return r;if(process.platform==="win32"){let i=tBe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in ui)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in ui)||ui.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ui)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ui.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ui)return 1;if(ui.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ui){let i=parseInt((ui.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ui.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ui.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ui.TERM)||"COLORTERM"in ui?1:r}function rBe(t){let e=mS(t,t&&t.isTTY);return CS(e)}GY.exports={supportsColor:rBe,stdout:CS(mS(!0,jY.isatty(1))),stderr:CS(mS(!0,jY.isatty(2)))}});var JY=w((nrt,qY)=>{"use strict";var iBe=(t,e,r)=>{let i=t.indexOf(e);if(i===-1)return t;let n=e.length,s=0,o="";do o+=t.substr(s,i-s)+e+r,s=i+n,i=t.indexOf(e,s);while(i!==-1);return o+=t.substr(s),o},nBe=(t,e,r,i)=>{let n=0,s="";do{let o=t[i-1]==="\r";s+=t.substr(n,(o?i-1:i)-n)+e+(o?`\r -`:` -`)+r,n=i+1,i=t.indexOf(` -`,n)}while(i!==-1);return s+=t.substr(n),s};qY.exports={stringReplaceAll:iBe,stringEncaseCRLFWithFirstIndex:nBe}});var XY=w((srt,WY)=>{"use strict";var sBe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,zY=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,oBe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,aBe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,ABe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function _Y(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):ABe.get(t)||t}function lBe(t,e){let r=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))r.push(o);else if(n=s.match(oBe))r.push(n[2].replace(aBe,(a,l,c)=>l?_Y(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${t}')`)}return r}function cBe(t){zY.lastIndex=0;let e=[],r;for(;(r=zY.exec(t))!==null;){let i=r[1];if(r[2]){let n=lBe(i,r[2]);e.push([i].concat(n))}else e.push([i])}return e}function VY(t,e){let r={};for(let n of e)for(let s of n.styles)r[s[0]]=n.inverse?null:s.slice(1);let i=t;for(let[n,s]of Object.entries(r))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}WY.exports=(t,e)=>{let r=[],i=[],n=[];if(e.replace(sBe,(s,o,a,l,c,u)=>{if(o)n.push(_Y(o));else if(l){let g=n.join("");n=[],i.push(r.length===0?g:VY(t,r)(g)),r.push({inverse:a,styles:cBe(l)})}else if(c){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(VY(t,r)(n.join(""))),n=[],r.pop()}else n.push(u)}),i.push(n.join("")),r.length>0){let s=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var BS=w((ort,ZY)=>{"use strict";var zp=KY(),{stdout:ES,stderr:IS}=YY(),{stringReplaceAll:uBe,stringEncaseCRLFWithFirstIndex:gBe}=JY(),$Y=["ansi","ansi","ansi256","ansi16m"],Sg=Object.create(null),fBe=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=ES?ES.level:0;t.level=e.level===void 0?r:e.level},eq=class{constructor(e){return tq(e)}},tq=t=>{let e={};return fBe(e,t),e.template=(...r)=>hBe(e.template,...r),Object.setPrototypeOf(e,Qy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=eq,e.template};function Qy(t){return tq(t)}for(let[t,e]of Object.entries(zp))Sg[t]={get(){let r=vy(this,yS(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Sg.visible={get(){let t=vy(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var rq=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of rq)Sg[t]={get(){let{level:e}=this;return function(...r){let i=yS(zp.color[$Y[e]][t](...r),zp.color.close,this._styler);return vy(this,i,this._isEmpty)}}};for(let t of rq){let e="bg"+t[0].toUpperCase()+t.slice(1);Sg[e]={get(){let{level:r}=this;return function(...i){let n=yS(zp.bgColor[$Y[r]][t](...i),zp.bgColor.close,this._styler);return vy(this,n,this._isEmpty)}}}}var pBe=Object.defineProperties(()=>{},ie(N({},Sg),{level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}})),yS=(t,e,r)=>{let i,n;return r===void 0?(i=t,n=e):(i=r.openAll+t,n=e+r.closeAll),{open:t,close:e,openAll:i,closeAll:n,parent:r}},vy=(t,e,r)=>{let i=(...n)=>dBe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=pBe,i._generator=t,i._styler=e,i._isEmpty=r,i},dBe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:i,closeAll:n}=r;if(e.indexOf("")!==-1)for(;r!==void 0;)e=uBe(e,r.close,r.open),r=r.parent;let s=e.indexOf(` -`);return s!==-1&&(e=gBe(e,n,i,s)),i+e+n},wS,hBe=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let i=e.slice(1),n=[r.raw[0]];for(let s=1;s{"use strict";Ps.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ps.find=(t,e)=>t.nodes.find(r=>r.type===e);Ps.exceedsLimit=(t,e,r=1,i)=>i===!1||!Ps.isInteger(t)||!Ps.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=i;Ps.escapeNode=(t,e=0,r)=>{let i=t.nodes[e];!i||(r&&i.type===r||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ps.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0==0?(t.invalid=!0,!0):!1;Ps.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0==0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ps.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ps.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ps.flatten=(...t)=>{let e=[],r=i=>{for(let n=0;n{"use strict";var nq=Sy();iq.exports=(t,e={})=>{let r=(i,n={})=>{let s=e.escapeInvalid&&nq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&nq.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=r(l);return a};return r(t)}});var oq=w((lrt,sq)=>{"use strict";sq.exports=function(t){return typeof t=="number"?t-t==0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var pq=w((crt,aq)=>{"use strict";var Aq=oq(),Sc=(t,e,r)=>{if(Aq(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(Aq(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=N({relaxZeros:!0},r);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=t+":"+e+"="+n+s+o+a;if(Sc.cache.hasOwnProperty(l))return Sc.cache[l].result;let c=Math.min(t,e),u=Math.max(t,e);if(Math.abs(c-u)===1){let m=t+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=cq(t)||cq(e),f={min:t,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let m=u<0?Math.abs(u):1;p=lq(m,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=lq(c,u,f,i)),f.negatives=p,f.positives=h,f.result=CBe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Sc.cache[l]=f,f.result};function CBe(t,e,r){let i=bS(t,e,"-",!1,r)||[],n=bS(e,t,"",!1,r)||[],s=bS(t,e,"-?",!0,r)||[];return i.concat(s).concat(n).join("|")}function EBe(t,e){let r=1,i=1,n=uq(t,r),s=new Set([e]);for(;t<=n&&n<=e;)s.add(n),r+=1,n=uq(t,r);for(n=gq(e+1,i)-1;t1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+fq(a.count),o=c+1;continue}r.isPadded&&(g=BBe(c,r,i)),u.string=g+u.pattern+fq(u.count),s.push(u),o=c+1,a=u}return s}function bS(t,e,r,i,n){let s=[];for(let o of t){let{string:a}=o;!i&&!hq(e,"string",a)&&s.push(r+a),i&&hq(e,"string",a)&&s.push(r+a)}return s}function IBe(t,e){let r=[];for(let i=0;ie?1:e>t?-1:0}function hq(t,e,r){return t.some(i=>i[e]===r)}function uq(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function gq(t,e){return t-t%Math.pow(10,e)}function fq(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function yBe(t,e,r){return`[${t}${e-t==1?"":"-"}${e}]`}function cq(t){return/^-?(0+)\d/.test(t)}function BBe(t,e,r){if(!e.isPadded)return t;let i=Math.abs(e.maxLen-String(t).length),n=r.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Sc.cache={};Sc.clearCache=()=>Sc.cache={};aq.exports=Sc});var SS=w((urt,dq)=>{"use strict";var bBe=require("util"),Cq=pq(),mq=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),QBe=t=>e=>t===!0?Number(e):String(e),QS=t=>typeof t=="number"||typeof t=="string"&&t!=="",Vp=t=>Number.isInteger(+t),vS=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},vBe=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,SBe=(t,e,r)=>{if(e>0){let i=t[0]==="-"?"-":"";i&&(t=t.slice(1)),t=i+t.padStart(i?e-1:e,"0")}return r===!1?String(t):t},Eq=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((o,a)=>oa?1:0),t.positives.sort((o,a)=>oa?1:0);let r=e.capture?"":"?:",i="",n="",s;return t.positives.length&&(i=t.positives.join("|")),t.negatives.length&&(n=`-(${r}${t.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${r}${s})`:s},Iq=(t,e,r,i)=>{if(r)return Cq(t,e,N({wrap:!1},i));let n=String.fromCharCode(t);if(t===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},yq=(t,e,r)=>{if(Array.isArray(t)){let i=r.wrap===!0,n=r.capture?"":"?:";return i?`(${n}${t.join("|")})`:t.join("|")}return Cq(t,e,r)},wq=(...t)=>new RangeError("Invalid range arguments: "+bBe.inspect(...t)),Bq=(t,e,r)=>{if(r.strictRanges===!0)throw wq([t,e]);return[]},xBe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},PBe=(t,e,r=1,i={})=>{let n=Number(t),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw wq([t,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(t),l=String(e),c=String(r);r=Math.max(Math.abs(r),1);let u=vS(a)||vS(l)||vS(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&vBe(t,e,i)===!1,h=i.transform||QBe(f);if(i.toRegex&&r===1)return Iq(Eq(t,g),Eq(e,g),!0,i);let p={negatives:[],positives:[]},m=S=>p[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],b=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&r>1?m(n):y.push(SBe(h(n,b),g,f)),n=o?n-r:n+r,b++;return i.toRegex===!0?r>1?kBe(p,i):yq(y,null,N({wrap:!1},i)):y},DBe=(t,e,r=1,i={})=>{if(!Vp(t)&&t.length>1||!Vp(e)&&e.length>1)return Bq(t,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${t}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&r===1)return Iq(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-r:s+r,g++;return i.toRegex===!0?yq(u,null,{wrap:!1,options:i}):u},xy=(t,e,r,i={})=>{if(e==null&&QS(t))return[t];if(!QS(t)||!QS(e))return Bq(t,e,i);if(typeof r=="function")return xy(t,e,1,{transform:r});if(mq(r))return xy(t,e,0,r);let n=N({},i);return n.capture===!0&&(n.wrap=!0),r=r||n.step||1,Vp(r)?Vp(t)&&Vp(e)?PBe(t,e,r,n):DBe(t,e,Math.max(Math.abs(r),1),n):r!=null&&!mq(r)?xBe(r,n):xy(t,e,1,r)};dq.exports=xy});var vq=w((grt,bq)=>{"use strict";var RBe=SS(),Qq=Sy(),FBe=(t,e={})=>{let r=(i,n={})=>{let s=Qq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=Qq.reduce(i.nodes),g=RBe(...u,ie(N({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=r(u,i);return c};return r(t)};bq.exports=FBe});var xq=w((frt,Sq)=>{"use strict";var NBe=SS(),kq=ky(),kg=Sy(),kc=(t="",e="",r=!1)=>{let i=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?kg.flatten(e).map(n=>`{${n}}`):e;for(let n of t)if(Array.isArray(n))for(let s of n)i.push(kc(s,e,r));else for(let s of e)r===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?kc(n,s,r):n+s);return kg.flatten(i)},LBe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(kc(a.pop(),kq(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(kc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=kg.reduce(n.nodes);if(kg.exceedsLimit(...g,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=NBe(...g,e);f.length===0&&(f=kq(n,e)),a.push(kc(a.pop(),f)),n.nodes=[];return}let l=kg.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";Pq.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Tq=w((prt,Rq)=>{"use strict";var TBe=ky(),{MAX_LENGTH:Fq,CHAR_BACKSLASH:kS,CHAR_BACKTICK:OBe,CHAR_COMMA:MBe,CHAR_DOT:KBe,CHAR_LEFT_PARENTHESES:UBe,CHAR_RIGHT_PARENTHESES:HBe,CHAR_LEFT_CURLY_BRACE:GBe,CHAR_RIGHT_CURLY_BRACE:jBe,CHAR_LEFT_SQUARE_BRACKET:Nq,CHAR_RIGHT_SQUARE_BRACKET:Lq,CHAR_DOUBLE_QUOTE:YBe,CHAR_SINGLE_QUOTE:qBe,CHAR_NO_BREAK_SPACE:JBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:WBe}=Dq(),zBe=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},i=typeof r.maxLength=="number"?Math.min(Fq,r.maxLength):Fq;if(t.length>i)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${i})`);let n={type:"root",input:t,nodes:[]},s=[n],o=n,a=n,l=0,c=t.length,u=0,g=0,f,h={},p=()=>t[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:TBe(o)}]}m({type:"comma",value:f}),o.commas++;continue}if(f===KBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let b=y[y.length-1];b.value+=a.value+f,a=b,o.ranges--;continue}m({type:"dot",value:f});continue}m({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],b=y.nodes.indexOf(o);y.nodes.splice(b,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};Rq.exports=zBe});var Kq=w((drt,Oq)=>{"use strict";var Mq=ky(),_Be=vq(),VBe=xq(),XBe=Tq(),es=(t,e={})=>{let r=[];if(Array.isArray(t))for(let i of t){let n=es.create(i,e);Array.isArray(n)?r.push(...n):r.push(n)}else r=[].concat(es.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};es.parse=(t,e={})=>XBe(t,e);es.stringify=(t,e={})=>typeof t=="string"?Mq(es.parse(t,e),e):Mq(t,e);es.compile=(t,e={})=>(typeof t=="string"&&(t=es.parse(t,e)),_Be(t,e));es.expand=(t,e={})=>{typeof t=="string"&&(t=es.parse(t,e));let r=VBe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};es.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?es.compile(t,e):es.expand(t,e);Oq.exports=es});var Xp=w((Crt,Uq)=>{"use strict";var ZBe=require("path"),jo="\\\\/",Hq=`[^${jo}]`,qa="\\.",$Be="\\+",e0e="\\?",Py="\\/",t0e="(?=.)",Gq="[^/]",xS=`(?:${Py}|$)`,jq=`(?:^|${Py})`,PS=`${qa}{1,2}${xS}`,r0e=`(?!${qa})`,i0e=`(?!${jq}${PS})`,n0e=`(?!${qa}{0,1}${xS})`,s0e=`(?!${PS})`,o0e=`[^.${Py}]`,a0e=`${Gq}*?`,Yq={DOT_LITERAL:qa,PLUS_LITERAL:$Be,QMARK_LITERAL:e0e,SLASH_LITERAL:Py,ONE_CHAR:t0e,QMARK:Gq,END_ANCHOR:xS,DOTS_SLASH:PS,NO_DOT:r0e,NO_DOTS:i0e,NO_DOT_SLASH:n0e,NO_DOTS_SLASH:s0e,QMARK_NO_DOT:o0e,STAR:a0e,START_ANCHOR:jq},A0e=ie(N({},Yq),{SLASH_LITERAL:`[${jo}]`,QMARK:Hq,STAR:`${Hq}*?`,DOTS_SLASH:`${qa}{1,2}(?:[${jo}]|$)`,NO_DOT:`(?!${qa})`,NO_DOTS:`(?!(?:^|[${jo}])${qa}{1,2}(?:[${jo}]|$))`,NO_DOT_SLASH:`(?!${qa}{0,1}(?:[${jo}]|$))`,NO_DOTS_SLASH:`(?!${qa}{1,2}(?:[${jo}]|$))`,QMARK_NO_DOT:`[^.${jo}]`,START_ANCHOR:`(?:^|[${jo}])`,END_ANCHOR:`(?:[${jo}]|$)`}),l0e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Uq.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:l0e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:ZBe.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?A0e:Yq}}});var Zp=w(kn=>{"use strict";var c0e=require("path"),u0e=process.platform==="win32",{REGEX_BACKSLASH:g0e,REGEX_REMOVE_BACKSLASH:f0e,REGEX_SPECIAL_CHARS:h0e,REGEX_SPECIAL_CHARS_GLOBAL:p0e}=Xp();kn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);kn.hasRegexChars=t=>h0e.test(t);kn.isRegexChar=t=>t.length===1&&kn.hasRegexChars(t);kn.escapeRegex=t=>t.replace(p0e,"\\$1");kn.toPosixSlashes=t=>t.replace(g0e,"/");kn.removeBackslashes=t=>t.replace(f0e,e=>e==="\\"?"":e);kn.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};kn.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:u0e===!0||c0e.sep==="\\";kn.escapeLast=(t,e,r)=>{let i=t.lastIndexOf(e,r);return i===-1?t:t[i-1]==="\\"?kn.escapeLast(t,e,i-1):`${t.slice(0,i)}\\${t.slice(i)}`};kn.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};kn.wrapOutput=(t,e={},r={})=>{let i=r.contains?"":"^",n=r.contains?"":"$",s=`${i}(?:${t})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Zq=w((Ert,qq)=>{"use strict";var Jq=Zp(),{CHAR_ASTERISK:DS,CHAR_AT:d0e,CHAR_BACKWARD_SLASH:$p,CHAR_COMMA:C0e,CHAR_DOT:RS,CHAR_EXCLAMATION_MARK:FS,CHAR_FORWARD_SLASH:Wq,CHAR_LEFT_CURLY_BRACE:NS,CHAR_LEFT_PARENTHESES:LS,CHAR_LEFT_SQUARE_BRACKET:m0e,CHAR_PLUS:E0e,CHAR_QUESTION_MARK:zq,CHAR_RIGHT_CURLY_BRACE:I0e,CHAR_RIGHT_PARENTHESES:_q,CHAR_RIGHT_SQUARE_BRACKET:y0e}=Xp(),Vq=t=>t===Wq||t===$p,Xq=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?Infinity:1)},w0e=(t,e)=>{let r=e||{},i=t.length-1,n=r.parts===!0||r.scanToEnd===!0,s=[],o=[],a=[],l=t,c=-1,u=0,g=0,f=!1,h=!1,p=!1,m=!1,y=!1,b=!1,S=!1,k=!1,T=!1,Y=!1,j=0,Z,J,re={value:"",depth:0,isGlob:!1},ee=()=>c>=i,A=()=>l.charCodeAt(c+1),oe=()=>(Z=J,l.charCodeAt(++c));for(;c0&&(X=l.slice(0,u),l=l.slice(u),g-=u),le&&p===!0&&g>0?(le=l.slice(0,g),O=l.slice(g)):p===!0?(le="",O=l):le=l,le&&le!==""&&le!=="/"&&le!==l&&Vq(le.charCodeAt(le.length-1))&&(le=le.slice(0,-1)),r.unescape===!0&&(O&&(O=Jq.removeBackslashes(O)),le&&S===!0&&(le=Jq.removeBackslashes(le)));let L={prefix:X,input:t,start:u,base:le,glob:O,isBrace:f,isBracket:h,isGlob:p,isExtglob:m,isGlobstar:y,negated:k,negatedExtglob:T};if(r.tokens===!0&&(L.maxDepth=0,Vq(J)||o.push(re),L.tokens=o),r.parts===!0||r.tokens===!0){let pe;for(let Ce=0;Ce{"use strict";var Dy=Xp(),ts=Zp(),{MAX_LENGTH:Ry,POSIX_REGEX_SOURCE:B0e,REGEX_NON_SPECIAL_CHARS:b0e,REGEX_SPECIAL_CHARS_BACKREF:Q0e,REPLACEMENTS:eJ}=Dy,v0e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch(i){return t.map(n=>ts.escapeRegex(n)).join("..")}return r},xg=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,tJ=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=eJ[t]||t;let r=N({},e),i=typeof r.maxLength=="number"?Math.min(Ry,r.maxLength):Ry,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:r.prepend||""},o=[s],a=r.capture?"":"?:",l=ts.isWindows(e),c=Dy.globChars(l),u=Dy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:b,NO_DOTS_SLASH:S,QMARK:k,QMARK_NO_DOT:T,STAR:Y,START_ANCHOR:j}=c,Z=V=>`(${a}(?:(?!${j}${V.dot?m:g}).)*?)`,J=r.dot?"":y,re=r.dot?k:T,ee=r.bash===!0?Z(r):Y;r.capture&&(ee=`(${ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};t=ts.removePrefix(t,A),n=t.length;let oe=[],le=[],X=[],O=s,L,pe=()=>A.index===n-1,Ce=A.peek=(V=1)=>t[A.index+V],Oe=A.advance=()=>t[++A.index]||"",te=()=>t.slice(A.index+1),se=(V="",Qe=0)=>{A.consumed+=V,A.index+=Qe},be=V=>{A.output+=V.output!=null?V.output:V.value,se(V.value)},he=()=>{let V=1;for(;Ce()==="!"&&(Ce(2)!=="("||Ce(3)==="?");)Oe(),A.start++,V++;return V%2==0?!1:(A.negated=!0,A.start++,!0)},Fe=V=>{A[V]++,X.push(V)},Ue=V=>{A[V]--,X.pop()},xe=V=>{if(O.type==="globstar"){let Qe=A.braces>0&&(V.type==="comma"||V.type==="brace"),ce=V.extglob===!0||oe.length&&(V.type==="pipe"||V.type==="paren");V.type!=="slash"&&V.type!=="paren"&&!Qe&&!ce&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=ee,A.output+=O.output)}if(oe.length&&V.type!=="paren"&&(oe[oe.length-1].inner+=V.value),(V.value||V.output)&&be(V),O&&O.type==="text"&&V.type==="text"){O.value+=V.value,O.output=(O.output||"")+V.value;return}V.prev=O,o.push(V),O=V},Se=(V,Qe)=>{let ce=ie(N({},u[Qe]),{conditions:1,inner:""});ce.prev=O,ce.parens=A.parens,ce.output=A.output;let fe=(r.capture?"(":"")+ce.open;Fe("parens"),xe({type:V,value:Qe,output:A.output?"":p}),xe({type:"paren",extglob:!0,value:Oe(),output:fe}),oe.push(ce)},de=V=>{let Qe=V.close+(r.capture?")":""),ce;if(V.type==="negate"){let fe=ee;V.inner&&V.inner.length>1&&V.inner.includes("/")&&(fe=Z(r)),(fe!==ee||pe()||/^\)+$/.test(te()))&&(Qe=V.close=`)$))${fe}`),V.inner.includes("*")&&(ce=te())&&/^\.[^\\/.]+$/.test(ce)&&(Qe=V.close=`)${ce})${fe})`),V.prev.type==="bos"&&(A.negatedExtglob=!0)}xe({type:"paren",extglob:!0,value:L,output:Qe}),Ue("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let V=!1,Qe=t.replace(Q0e,(ce,fe,gt,Ht,Mt,mi)=>Ht==="\\"?(V=!0,ce):Ht==="?"?fe?fe+Ht+(Mt?k.repeat(Mt.length):""):mi===0?re+(Mt?k.repeat(Mt.length):""):k.repeat(gt.length):Ht==="."?g.repeat(gt.length):Ht==="*"?fe?fe+Ht+(Mt?ee:""):ee:fe?ce:`\\${ce}`);return V===!0&&(r.unescape===!0?Qe=Qe.replace(/\\/g,""):Qe=Qe.replace(/\\+/g,ce=>ce.length%2==0?"\\\\":ce?"\\":"")),Qe===t&&r.contains===!0?(A.output=t,A):(A.output=ts.wrapOutput(Qe,A,e),A)}for(;!pe();){if(L=Oe(),L==="\0")continue;if(L==="\\"){let ce=Ce();if(ce==="/"&&r.bash!==!0||ce==="."||ce===";")continue;if(!ce){L+="\\",xe({type:"text",value:L});continue}let fe=/^\\+/.exec(te()),gt=0;if(fe&&fe[0].length>2&&(gt=fe[0].length,A.index+=gt,gt%2!=0&&(L+="\\")),r.unescape===!0?L=Oe():L+=Oe(),A.brackets===0){xe({type:"text",value:L});continue}}if(A.brackets>0&&(L!=="]"||O.value==="["||O.value==="[^")){if(r.posix!==!1&&L===":"){let ce=O.value.slice(1);if(ce.includes("[")&&(O.posix=!0,ce.includes(":"))){let fe=O.value.lastIndexOf("["),gt=O.value.slice(0,fe),Ht=O.value.slice(fe+2),Mt=B0e[Ht];if(Mt){O.value=gt+Mt,A.backtrack=!0,Oe(),!s.output&&o.indexOf(O)===1&&(s.output=p);continue}}}(L==="["&&Ce()!==":"||L==="-"&&Ce()==="]")&&(L=`\\${L}`),L==="]"&&(O.value==="["||O.value==="[^")&&(L=`\\${L}`),r.posix===!0&&L==="!"&&O.value==="["&&(L="^"),O.value+=L,be({value:L});continue}if(A.quotes===1&&L!=='"'){L=ts.escapeRegex(L),O.value+=L,be({value:L});continue}if(L==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&xe({type:"text",value:L});continue}if(L==="("){Fe("parens"),xe({type:"paren",value:L});continue}if(L===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(xg("opening","("));let ce=oe[oe.length-1];if(ce&&A.parens===ce.parens+1){de(oe.pop());continue}xe({type:"paren",value:L,output:A.parens?")":"\\)"}),Ue("parens");continue}if(L==="["){if(r.nobracket===!0||!te().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(xg("closing","]"));L=`\\${L}`}else Fe("brackets");xe({type:"bracket",value:L});continue}if(L==="]"){if(r.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){xe({type:"text",value:L,output:`\\${L}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(xg("opening","["));xe({type:"text",value:L,output:`\\${L}`});continue}Ue("brackets");let ce=O.value.slice(1);if(O.posix!==!0&&ce[0]==="^"&&!ce.includes("/")&&(L=`/${L}`),O.value+=L,be({value:L}),r.literalBrackets===!1||ts.hasRegexChars(ce))continue;let fe=ts.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),r.literalBrackets===!0){A.output+=fe,O.value=fe;continue}O.value=`(${a}${fe}|${O.value})`,A.output+=O.value;continue}if(L==="{"&&r.nobrace!==!0){Fe("braces");let ce={type:"brace",value:L,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};le.push(ce),xe(ce);continue}if(L==="}"){let ce=le[le.length-1];if(r.nobrace===!0||!ce){xe({type:"text",value:L,output:L});continue}let fe=")";if(ce.dots===!0){let gt=o.slice(),Ht=[];for(let Mt=gt.length-1;Mt>=0&&(o.pop(),gt[Mt].type!=="brace");Mt--)gt[Mt].type!=="dots"&&Ht.unshift(gt[Mt].value);fe=v0e(Ht,r),A.backtrack=!0}if(ce.comma!==!0&&ce.dots!==!0){let gt=A.output.slice(0,ce.outputIndex),Ht=A.tokens.slice(ce.tokensIndex);ce.value=ce.output="\\{",L=fe="\\}",A.output=gt;for(let Mt of Ht)A.output+=Mt.output||Mt.value}xe({type:"brace",value:L,output:fe}),Ue("braces"),le.pop();continue}if(L==="|"){oe.length>0&&oe[oe.length-1].conditions++,xe({type:"text",value:L});continue}if(L===","){let ce=L,fe=le[le.length-1];fe&&X[X.length-1]==="braces"&&(fe.comma=!0,ce="|"),xe({type:"comma",value:L,output:ce});continue}if(L==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}xe({type:"slash",value:L,output:h});continue}if(L==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let ce=le[le.length-1];O.type="dots",O.output+=L,O.value+=L,ce.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){xe({type:"text",value:L,output:g});continue}xe({type:"dot",value:L,output:g});continue}if(L==="?"){if(!(O&&O.value==="(")&&r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){Se("qmark",L);continue}if(O&&O.type==="paren"){let fe=Ce(),gt=L;if(fe==="<"&&!ts.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(fe)||fe==="<"&&!/<([!=]|\w+>)/.test(te()))&&(gt=`\\${L}`),xe({type:"text",value:L,output:gt});continue}if(r.dot!==!0&&(O.type==="slash"||O.type==="bos")){xe({type:"qmark",value:L,output:T});continue}xe({type:"qmark",value:L,output:k});continue}if(L==="!"){if(r.noextglob!==!0&&Ce()==="("&&(Ce(2)!=="?"||!/[!=<:]/.test(Ce(3)))){Se("negate",L);continue}if(r.nonegate!==!0&&A.index===0){he();continue}}if(L==="+"){if(r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){Se("plus",L);continue}if(O&&O.value==="("||r.regex===!1){xe({type:"plus",value:L,output:f});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){xe({type:"plus",value:L});continue}xe({type:"plus",value:f});continue}if(L==="@"){if(r.noextglob!==!0&&Ce()==="("&&Ce(2)!=="?"){xe({type:"at",extglob:!0,value:L,output:""});continue}xe({type:"text",value:L});continue}if(L!=="*"){(L==="$"||L==="^")&&(L=`\\${L}`);let ce=b0e.exec(te());ce&&(L+=ce[0],A.index+=ce[0].length),xe({type:"text",value:L});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=L,O.output=ee,A.backtrack=!0,A.globstar=!0,se(L);continue}let V=te();if(r.noextglob!==!0&&/^\([^?]/.test(V)){Se("star",L);continue}if(O.type==="star"){if(r.noglobstar===!0){se(L);continue}let ce=O.prev,fe=ce.prev,gt=ce.type==="slash"||ce.type==="bos",Ht=fe&&(fe.type==="star"||fe.type==="globstar");if(r.bash===!0&&(!gt||V[0]&&V[0]!=="/")){xe({type:"star",value:L,output:""});continue}let Mt=A.braces>0&&(ce.type==="comma"||ce.type==="brace"),mi=oe.length&&(ce.type==="pipe"||ce.type==="paren");if(!gt&&ce.type!=="paren"&&!Mt&&!mi){xe({type:"star",value:L,output:""});continue}for(;V.slice(0,3)==="/**";){let Gt=t[A.index+4];if(Gt&&Gt!=="/")break;V=V.slice(3),se("/**",3)}if(ce.type==="bos"&&pe()){O.type="globstar",O.value+=L,O.output=Z(r),A.output=O.output,A.globstar=!0,se(L);continue}if(ce.type==="slash"&&ce.prev.type!=="bos"&&!Ht&&pe()){A.output=A.output.slice(0,-(ce.output+O.output).length),ce.output=`(?:${ce.output}`,O.type="globstar",O.output=Z(r)+(r.strictSlashes?")":"|$)"),O.value+=L,A.globstar=!0,A.output+=ce.output+O.output,se(L);continue}if(ce.type==="slash"&&ce.prev.type!=="bos"&&V[0]==="/"){let Gt=V[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ce.output+O.output).length),ce.output=`(?:${ce.output}`,O.type="globstar",O.output=`${Z(r)}${h}|${h}${Gt})`,O.value+=L,A.output+=ce.output+O.output,A.globstar=!0,se(L+Oe()),xe({type:"slash",value:"/",output:""});continue}if(ce.type==="bos"&&V[0]==="/"){O.type="globstar",O.value+=L,O.output=`(?:^|${h}|${Z(r)}${h})`,A.output=O.output,A.globstar=!0,se(L+Oe()),xe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=Z(r),O.value+=L,A.output+=O.output,A.globstar=!0,se(L);continue}let Qe={type:"star",value:L,output:ee};if(r.bash===!0){Qe.output=".*?",(O.type==="bos"||O.type==="slash")&&(Qe.output=J+Qe.output),xe(Qe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&r.regex===!0){Qe.output=L,xe(Qe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=b,O.output+=b):r.dot===!0?(A.output+=S,O.output+=S):(A.output+=J,O.output+=J),Ce()!=="*"&&(A.output+=p,O.output+=p)),xe(Qe)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing","]"));A.output=ts.escapeLast(A.output,"["),Ue("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing",")"));A.output=ts.escapeLast(A.output,"("),Ue("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(xg("closing","}"));A.output=ts.escapeLast(A.output,"{"),Ue("braces")}if(r.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&xe({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let V of A.tokens)A.output+=V.output!=null?V.output:V.value,V.suffix&&(A.output+=V.suffix)}return A};tJ.fastpaths=(t,e)=>{let r=N({},e),i=typeof r.maxLength=="number"?Math.min(Ry,r.maxLength):Ry,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);t=eJ[t]||t;let s=ts.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=Dy.globChars(s),m=r.dot?g:u,y=r.dot?f:u,b=r.capture?"":"?:",S={negated:!1,prefix:""},k=r.bash===!0?".*?":h;r.capture&&(k=`(${k})`);let T=J=>J.noglobstar===!0?k:`(${b}(?:(?!${p}${J.dot?c:o}).)*?)`,Y=J=>{switch(J){case"*":return`${m}${l}${k}`;case".*":return`${o}${l}${k}`;case"*.*":return`${m}${k}${o}${l}${k}`;case"*/*":return`${m}${k}${a}${l}${y}${k}`;case"**":return m+T(r);case"**/*":return`(?:${m}${T(r)}${a})?${y}${l}${k}`;case"**/*.*":return`(?:${m}${T(r)}${a})?${y}${k}${o}${l}${k}`;case"**/.*":return`(?:${m}${T(r)}${a})?${o}${l}${k}`;default:{let re=/^(.*?)\.(\w+)$/.exec(J);if(!re)return;let ee=Y(re[1]);return ee?ee+o+re[2]:void 0}}},j=ts.removePrefix(t,S),Z=Y(j);return Z&&r.strictSlashes!==!0&&(Z+=`${a}?`),Z};$q.exports=tJ});var nJ=w((yrt,iJ)=>{"use strict";var S0e=require("path"),k0e=Zq(),TS=rJ(),OS=Zp(),x0e=Xp(),P0e=t=>t&&typeof t=="object"&&!Array.isArray(t),_r=(t,e,r=!1)=>{if(Array.isArray(t)){let u=t.map(f=>_r(f,e,r));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=P0e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=OS.isWindows(e),o=i?_r.compileRe(t,e):_r.makeRe(t,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=ie(N({},e),{ignore:null,onMatch:null,onResult:null});l=_r(n.ignore,u,r)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=_r.test(u,o,e,{glob:t,posix:s}),m={glob:t,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(m),f===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return r&&(c.state=a),c};_r.test=(t,e,r,{glob:i,posix:n}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let s=r||{},o=s.format||(n?OS.toPosixSlashes:null),a=t===i,l=a&&o?o(t):t;return a===!1&&(l=o?o(t):t,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=_r.matchBase(t,e,r,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};_r.matchBase=(t,e,r,i=OS.isWindows(r))=>(e instanceof RegExp?e:_r.makeRe(e,r)).test(S0e.basename(t));_r.isMatch=(t,e,r)=>_r(e,r)(t);_r.parse=(t,e)=>Array.isArray(t)?t.map(r=>_r.parse(r,e)):TS(t,ie(N({},e),{fastpaths:!1}));_r.scan=(t,e)=>k0e(t,e);_r.compileRe=(t,e,r=!1,i=!1)=>{if(r===!0)return t.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${t.output})${o}`;t&&t.negated===!0&&(a=`^(?!${a}).*$`);let l=_r.toRegex(a,e);return i===!0&&(l.state=t),l};_r.makeRe=(t,e={},r=!1,i=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(n.output=TS.fastpaths(t,e)),n.output||(n=TS(t,e)),_r.compileRe(n,e,r,i)};_r.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};_r.constants=x0e;iJ.exports=_r});var MS=w((wrt,sJ)=>{"use strict";sJ.exports=nJ()});var rs=w((Brt,oJ)=>{"use strict";var aJ=require("util"),AJ=Kq(),Yo=MS(),KS=Zp(),lJ=t=>t===""||t==="./",Pr=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),r&&r.onResult&&r.onResult(u)};for(let u=0;u!i.has(u));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Pr.match=Pr;Pr.matcher=(t,e)=>Yo(t,e);Pr.isMatch=(t,e,r)=>Yo(e,r)(t);Pr.any=Pr.isMatch;Pr.not=(t,e,r={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{r.onResult&&r.onResult(a),n.push(a.output)},o=Pr(t,e,ie(N({},r),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};Pr.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);if(Array.isArray(e))return e.some(i=>Pr.contains(t,i,r));if(typeof e=="string"){if(lJ(t)||lJ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Pr.isMatch(t,e,ie(N({},r),{contains:!0}))};Pr.matchKeys=(t,e,r)=>{if(!KS.isObject(t))throw new TypeError("Expected the first argument to be an object");let i=Pr(Object.keys(t),e,r),n={};for(let s of i)n[s]=t[s];return n};Pr.some=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=Yo(String(n),r);if(i.some(o=>s(o)))return!0}return!1};Pr.every=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=Yo(String(n),r);if(!i.every(o=>s(o)))return!1}return!0};Pr.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);return[].concat(e).every(i=>Yo(i,r)(t))};Pr.capture=(t,e,r)=>{let i=KS.isWindows(r),s=Yo.makeRe(String(t),ie(N({},r),{capture:!0})).exec(i?KS.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Pr.makeRe=(...t)=>Yo.makeRe(...t);Pr.scan=(...t)=>Yo.scan(...t);Pr.parse=(t,e)=>{let r=[];for(let i of[].concat(t||[]))for(let n of AJ(String(i),e))r.push(Yo.parse(n,e));return r};Pr.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:AJ(t,e)};Pr.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Pr.braces(t,ie(N({},e),{expand:!0}))};oJ.exports=Pr});var uJ=w((brt,cJ)=>{"use strict";cJ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var fJ=w((Qrt,gJ)=>{"use strict";var D0e=uJ();gJ.exports=t=>typeof t=="string"?t.replace(D0e(),""):t});var xJ=w((jrt,kJ)=>{"use strict";kJ.exports=(...t)=>[...new Set([].concat(...t))]});var ek=w((Yrt,PJ)=>{"use strict";var j0e=require("stream"),DJ=j0e.PassThrough,Y0e=Array.prototype.slice;PJ.exports=q0e;function q0e(){let t=[],e=!1,r=Y0e.call(arguments),i=r[r.length-1];i&&!Array.isArray(i)&&i.pipe==null?r.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=DJ(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});function J0e(t){return t.reduce((e,r)=>[].concat(e,r),[])}Oy.flatten=J0e;function W0e(t,e){let r=[[]],i=0;for(let n of t)e(n)?(i++,r[i]=[]):r[i].push(n);return r}Oy.splitWhen=W0e});var NJ=w(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});function z0e(t){return t.code==="ENOENT"}tk.isEnoentCodeError=z0e});var TJ=w(rk=>{"use strict";Object.defineProperty(rk,"__esModule",{value:!0});var LJ=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function _0e(t,e){return new LJ(t,e)}rk.createDirentFromStats=_0e});var OJ=w(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});var V0e=require("path"),X0e=2,Z0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function $0e(t){return t.replace(/\\/g,"/")}Tg.unixify=$0e;function ebe(t,e){return V0e.resolve(t,e)}Tg.makeAbsolute=ebe;function tbe(t){return t.replace(Z0e,"\\$2")}Tg.escape=tbe;function rbe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(X0e)}return t}Tg.removeLeadingDotSegment=rbe});var KJ=w((_rt,MJ)=>{MJ.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var GJ=w((Vrt,UJ)=>{var ibe=KJ(),HJ={"{":"}","(":")","[":"]"},nbe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=t.indexOf("\\",e),o===-1||o>i)))||n!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(n=t.indexOf("}",e),n>e&&(o=t.indexOf("\\",e),o===-1||o>n))||s!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(s=t.indexOf(")",e),s>e&&(o=t.indexOf("\\",e),o===-1||o>s))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(o=t.indexOf("\\",r),o===-1||o>s))))return!0;if(t[e]==="\\"){var a=t[e+1];e+=2;var l=HJ[a];if(l){var c=t.indexOf(l,e);c!==-1&&(e=c+1)}if(t[e]==="!")return!0}else e++}return!1},sbe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var obe=GJ(),abe=require("path").posix.dirname,Abe=require("os").platform()==="win32",ik="/",lbe=/\\/g,cbe=/[\{\[].*[\}\]]$/,ube=/(^|[^\\])([\{\[]|\([^\)]+$)/,gbe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;jJ.exports=function(e,r){var i=Object.assign({flipBackslashes:!0},r);i.flipBackslashes&&Abe&&e.indexOf(ik)<0&&(e=e.replace(lbe,ik)),cbe.test(e)&&(e+=ik),e+="a";do e=abe(e);while(obe(e)||ube.test(e));return e.replace(gbe,"$1")}});var $J=w(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});var fbe=require("path"),hbe=YJ(),qJ=rs(),pbe=MS(),JJ="**",dbe="\\",Cbe=/[*?]|^!/,mbe=/\[.*]/,Ebe=/(?:^|[^!*+?@])\(.*\|.*\)/,Ibe=/[!*+?@]\(.*\)/,ybe=/{.*(?:,|\.\.).*}/;function zJ(t,e={}){return!WJ(t,e)}si.isStaticPattern=zJ;function WJ(t,e={}){return!!(e.caseSensitiveMatch===!1||t.includes(dbe)||Cbe.test(t)||mbe.test(t)||Ebe.test(t)||e.extglob!==!1&&Ibe.test(t)||e.braceExpansion!==!1&&ybe.test(t))}si.isDynamicPattern=WJ;function wbe(t){return My(t)?t.slice(1):t}si.convertToPositivePattern=wbe;function Bbe(t){return"!"+t}si.convertToNegativePattern=Bbe;function My(t){return t.startsWith("!")&&t[1]!=="("}si.isNegativePattern=My;function _J(t){return!My(t)}si.isPositivePattern=_J;function bbe(t){return t.filter(My)}si.getNegativePatterns=bbe;function Qbe(t){return t.filter(_J)}si.getPositivePatterns=Qbe;function vbe(t){return hbe(t,{flipBackslashes:!1})}si.getBaseDirectory=vbe;function Sbe(t){return t.includes(JJ)}si.hasGlobStar=Sbe;function VJ(t){return t.endsWith("/"+JJ)}si.endsWithSlashGlobStar=VJ;function kbe(t){let e=fbe.basename(t);return VJ(t)||zJ(e)}si.isAffectDepthOfReadingPattern=kbe;function xbe(t){return t.reduce((e,r)=>e.concat(XJ(r)),[])}si.expandPatternsWithBraceExpansion=xbe;function XJ(t){return qJ.braces(t,{expand:!0,nodupes:!0})}si.expandBraceExpansion=XJ;function Pbe(t,e){let r=pbe.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.parts.length===0?[t]:r.parts}si.getPatternParts=Pbe;function ZJ(t,e){return qJ.makeRe(t,e)}si.makeRe=ZJ;function Dbe(t,e){return t.map(r=>ZJ(r,e))}si.convertPatternsToRe=Dbe;function Rbe(t,e){return e.some(r=>r.test(t))}si.matchAny=Rbe});var t3=w(nk=>{"use strict";Object.defineProperty(nk,"__esModule",{value:!0});var Fbe=ek();function Nbe(t){let e=Fbe(t);return t.forEach(r=>{r.once("error",i=>e.emit("error",i))}),e.once("close",()=>e3(t)),e.once("end",()=>e3(t)),e}nk.merge=Nbe;function e3(t){t.forEach(e=>e.emit("close"))}});var r3=w(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});function Lbe(t){return typeof t=="string"}Ky.isString=Lbe;function Tbe(t){return t===""}Ky.isEmpty=Tbe});var za=w(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});var Obe=FJ();Wa.array=Obe;var Mbe=NJ();Wa.errno=Mbe;var Kbe=TJ();Wa.fs=Kbe;var Ube=OJ();Wa.path=Ube;var Hbe=$J();Wa.pattern=Hbe;var Gbe=t3();Wa.stream=Gbe;var jbe=r3();Wa.string=jbe});var a3=w(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});var Fc=za();function Ybe(t,e){let r=i3(t),i=n3(t,e.ignore),n=r.filter(l=>Fc.pattern.isStaticPattern(l,e)),s=r.filter(l=>Fc.pattern.isDynamicPattern(l,e)),o=sk(n,i,!1),a=sk(s,i,!0);return o.concat(a)}_a.generate=Ybe;function sk(t,e,r){let i=s3(t);return"."in i?[ok(".",t,e,r)]:o3(i,e,r)}_a.convertPatternsToTasks=sk;function i3(t){return Fc.pattern.getPositivePatterns(t)}_a.getPositivePatterns=i3;function n3(t,e){return Fc.pattern.getNegativePatterns(t).concat(e).map(Fc.pattern.convertToPositivePattern)}_a.getNegativePatternsAsPositive=n3;function s3(t){let e={};return t.reduce((r,i)=>{let n=Fc.pattern.getBaseDirectory(i);return n in r?r[n].push(i):r[n]=[i],r},e)}_a.groupPatternsByBaseDirectory=s3;function o3(t,e,r){return Object.keys(t).map(i=>ok(i,t[i],e,r))}_a.convertPatternGroupsToTasks=o3;function ok(t,e,r,i){return{dynamic:i,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Fc.pattern.convertToNegativePattern))}}_a.convertPatternGroupToTask=ok});var l3=w(Uy=>{"use strict";Object.defineProperty(Uy,"__esModule",{value:!0});Uy.read=void 0;function qbe(t,e,r){e.fs.lstat(t,(i,n)=>{if(i!==null){A3(r,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){ak(r,n);return}e.fs.stat(t,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){A3(r,s);return}ak(r,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),ak(r,o)})})}Uy.read=qbe;function A3(t,e){t(e)}function ak(t,e){t(null,e)}});var c3=w(Hy=>{"use strict";Object.defineProperty(Hy,"__esModule",{value:!0});Hy.read=void 0;function Jbe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let i=e.fs.statSync(t);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw i}}Hy.read=Jbe});var u3=w(ZA=>{"use strict";Object.defineProperty(ZA,"__esModule",{value:!0});ZA.createFileSystemAdapter=ZA.FILE_SYSTEM_ADAPTER=void 0;var Gy=require("fs");ZA.FILE_SYSTEM_ADAPTER={lstat:Gy.lstat,stat:Gy.stat,lstatSync:Gy.lstatSync,statSync:Gy.statSync};function Wbe(t){return t===void 0?ZA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},ZA.FILE_SYSTEM_ADAPTER),t)}ZA.createFileSystemAdapter=Wbe});var f3=w(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});var zbe=u3(),g3=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=zbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e!=null?e:r}};Ak.default=g3});var Nc=w($A=>{"use strict";Object.defineProperty($A,"__esModule",{value:!0});$A.statSync=$A.stat=$A.Settings=void 0;var h3=l3(),_be=c3(),lk=f3();$A.Settings=lk.default;function Vbe(t,e,r){if(typeof e=="function"){h3.read(t,ck(),e);return}h3.read(t,ck(e),r)}$A.stat=Vbe;function Xbe(t,e){let r=ck(e);return _be.read(t,r)}$A.statSync=Xbe;function ck(t={}){return t instanceof lk.default?t:new lk.default(t)}});var d3=w((Ait,p3)=>{p3.exports=Zbe;function Zbe(t,e){var r,i,n,s=!0;Array.isArray(t)?(r=[],i=t.length):(n=Object.keys(t),r={},i=n.length);function o(l){function c(){e&&e(l,r),e=null}s?process.nextTick(c):c()}function a(l,c,u){r[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){t[l](function(c,u){a(l,c,u)})}):t.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var uk=w(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Yy=process.versions.node.split(".");if(Yy[0]===void 0||Yy[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var C3=Number.parseInt(Yy[0],10),$be=Number.parseInt(Yy[1],10),m3=10,eQe=10,tQe=C3>m3,rQe=C3===m3&&$be>=eQe;jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES=tQe||rQe});var I3=w(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.createDirentFromStats=void 0;var E3=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function iQe(t,e){return new E3(t,e)}qy.createDirentFromStats=iQe});var gk=w(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.fs=void 0;var nQe=I3();Jy.fs=nQe});var fk=w(Wy=>{"use strict";Object.defineProperty(Wy,"__esModule",{value:!0});Wy.joinPathSegments=void 0;function sQe(t,e,r){return t.endsWith(r)?t+e:t+r+e}Wy.joinPathSegments=sQe});var v3=w(el=>{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.readdir=el.readdirWithFileTypes=el.read=void 0;var oQe=Nc(),y3=d3(),aQe=uk(),w3=gk(),B3=fk();function AQe(t,e,r){if(!e.stats&&aQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){b3(t,e,r);return}Q3(t,e,r)}el.read=AQe;function b3(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(i,n)=>{if(i!==null){zy(r,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:B3.joinPathSegments(t,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){hk(r,s);return}let o=s.map(a=>lQe(a,e));y3(o,(a,l)=>{if(a!==null){zy(r,a);return}hk(r,l)})})}el.readdirWithFileTypes=b3;function lQe(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){r(i);return}r(null,t);return}t.dirent=w3.fs.createDirentFromStats(t.name,n),r(null,t)})}}function Q3(t,e,r){e.fs.readdir(t,(i,n)=>{if(i!==null){zy(r,i);return}let s=n.map(o=>{let a=B3.joinPathSegments(t,o,e.pathSegmentSeparator);return l=>{oQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:w3.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});y3(s,(o,a)=>{if(o!==null){zy(r,o);return}hk(r,a)})})}el.readdir=Q3;function zy(t,e){t(e)}function hk(t,e){t(null,e)}});var D3=w(tl=>{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});tl.readdir=tl.readdirWithFileTypes=tl.read=void 0;var cQe=Nc(),uQe=uk(),S3=gk(),k3=fk();function gQe(t,e){return!e.stats&&uQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?x3(t,e):P3(t,e)}tl.read=gQe;function x3(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:k3.joinPathSegments(t,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=S3.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}tl.readdirWithFileTypes=x3;function P3(t,e){return e.fs.readdirSync(t).map(i=>{let n=k3.joinPathSegments(t,i,e.pathSegmentSeparator),s=cQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:S3.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}tl.readdir=P3});var R3=w(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.createFileSystemAdapter=rl.FILE_SYSTEM_ADAPTER=void 0;var Og=require("fs");rl.FILE_SYSTEM_ADAPTER={lstat:Og.lstat,stat:Og.stat,lstatSync:Og.lstatSync,statSync:Og.statSync,readdir:Og.readdir,readdirSync:Og.readdirSync};function fQe(t){return t===void 0?rl.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},rl.FILE_SYSTEM_ADAPTER),t)}rl.createFileSystemAdapter=fQe});var N3=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var hQe=require("path"),pQe=Nc(),dQe=R3(),F3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=dQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,hQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};pk.default=F3});var _y=w(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.Settings=il.scandirSync=il.scandir=void 0;var L3=v3(),CQe=D3(),dk=N3();il.Settings=dk.default;function mQe(t,e,r){if(typeof e=="function"){L3.read(t,Ck(),e);return}L3.read(t,Ck(e),r)}il.scandir=mQe;function EQe(t,e){let r=Ck(e);return CQe.read(t,r)}il.scandirSync=EQe;function Ck(t={}){return t instanceof dk.default?t:new dk.default(t)}});var O3=w((mit,T3)=>{"use strict";function IQe(t){var e=new t,r=e;function i(){var s=e;return s.next?e=s.next:(e=new t,r=e),s.next=null,s}function n(s){r.next=s,r=s}return{get:i,release:n}}T3.exports=IQe});var K3=w((Eit,mk)=>{"use strict";var yQe=O3();function M3(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var i=yQe(wQe),n=null,s=null,o=0,a=null,l={push:m,drain:Wo,saturated:Wo,pause:u,paused:!1,concurrency:r,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Wo,kill:S,killAndDrain:k,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var Y=n,j=0;Y;)Y=Y.next,j++;return j}function f(){for(var Y=n,j=[];Y;)j.push(Y.value),Y=Y.next;return j}function h(){if(!!l.paused){l.paused=!1;for(var Y=0;Y{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.joinPathSegments=zo.replacePathSegmentSeparator=zo.isAppliedFilter=zo.isFatalError=void 0;function bQe(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}zo.isFatalError=bQe;function QQe(t,e){return t===null||t(e)}zo.isAppliedFilter=QQe;function vQe(t,e){return t.split(/[/\\]/).join(e)}zo.replacePathSegmentSeparator=vQe;function SQe(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}zo.joinPathSegments=SQe});var Ik=w(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var kQe=Vy(),U3=class{constructor(e,r){this._root=e,this._settings=r,this._root=kQe.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};Ek.default=U3});var wk=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var xQe=require("events"),PQe=_y(),DQe=K3(),Xy=Vy(),RQe=Ik(),H3=class extends RQe.default{constructor(e,r){super(e,r);this._settings=r,this._scandir=PQe.scandir,this._emitter=new xQe.EventEmitter,this._queue=DQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let i={directory:e,base:r};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){r(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!Xy.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let i=e.path;r!==void 0&&(e.path=Xy.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Xy.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&Xy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};yk.default=H3});var j3=w(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});var FQe=wk(),G3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new FQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{NQe(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{LQe(e,[...this._storage])}),this._reader.read()}};Bk.default=G3;function NQe(t,e){t(e)}function LQe(t,e){t(null,e)}});var q3=w(bk=>{"use strict";Object.defineProperty(bk,"__esModule",{value:!0});var TQe=require("stream"),OQe=wk(),Y3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new OQe.default(this._root,this._settings),this._stream=new TQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};bk.default=Y3});var W3=w(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});var MQe=_y(),Zy=Vy(),KQe=Ik(),J3=class extends KQe.default{constructor(){super(...arguments);this._scandir=MQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,r)}catch(i){this._handleError(i)}}_handleError(e){if(!!Zy.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let i=e.path;r!==void 0&&(e.path=Zy.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Zy.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&Zy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};Qk.default=J3});var _3=w(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});var UQe=W3(),z3=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new UQe.default(this._root,this._settings)}read(){return this._reader.read()}};vk.default=z3});var X3=w(Sk=>{"use strict";Object.defineProperty(Sk,"__esModule",{value:!0});var HQe=require("path"),GQe=_y(),V3=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,HQe.sep),this.fsScandirSettings=new GQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};Sk.default=V3});var xk=w(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.Settings=_o.walkStream=_o.walkSync=_o.walk=void 0;var Z3=j3(),jQe=q3(),YQe=_3(),kk=X3();_o.Settings=kk.default;function qQe(t,e,r){if(typeof e=="function"){new Z3.default(t,$y()).read(e);return}new Z3.default(t,$y(e)).read(r)}_o.walk=qQe;function JQe(t,e){let r=$y(e);return new YQe.default(t,r).read()}_o.walkSync=JQe;function WQe(t,e){let r=$y(e);return new jQe.default(t,r).read()}_o.walkStream=WQe;function $y(t={}){return t instanceof kk.default?t:new kk.default(t)}});var Dk=w(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});var zQe=require("path"),_Qe=Nc(),$3=za(),eW=class{constructor(e){this._settings=e,this._fsStatSettings=new _Qe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return zQe.resolve(this._settings.cwd,e)}_makeEntry(e,r){let i={name:r,path:r,dirent:$3.fs.createDirentFromStats(r,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!$3.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};Pk.default=eW});var Fk=w(Rk=>{"use strict";Object.defineProperty(Rk,"__esModule",{value:!0});var VQe=require("stream"),XQe=Nc(),ZQe=xk(),$Qe=Dk(),tW=class extends $Qe.default{constructor(){super(...arguments);this._walkStream=ZQe.walkStream,this._stat=XQe.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let i=e.map(this._getFullEntryPath,this),n=new VQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],r).then(l=>{l!==null&&r.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,r)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((r,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?r(s):i(n))})}};Rk.default=tW});var iW=w(Nk=>{"use strict";Object.defineProperty(Nk,"__esModule",{value:!0});var Mg=za(),rW=class{constructor(e,r,i){this._patterns=e,this._settings=r,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Mg.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let i=this._getPatternSegments(r),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:r,segments:i,sections:n})}}_getPatternSegments(e){return Mg.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Mg.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Mg.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Mg.array.splitWhen(e,r=>r.dynamic&&Mg.pattern.hasGlobStar(r.pattern))}};Nk.default=rW});var sW=w(Lk=>{"use strict";Object.defineProperty(Lk,"__esModule",{value:!0});var eve=iW(),nW=class extends eve.default{match(e){let r=e.split("/"),i=r.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||r.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};Lk.default=nW});var aW=w(Tk=>{"use strict";Object.defineProperty(Tk,"__esModule",{value:!0});var ew=za(),tve=sW(),oW=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,i){let n=this._getMatcher(r),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new tve.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(ew.pattern.isAffectDepthOfReadingPattern);return ew.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,i,n){let s=this._getEntryLevel(e,r.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(r))return!1;let o=ew.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,r){let i=e.split("/").length;return r.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!ew.pattern.matchAny(e,r)}};Tk.default=oW});var lW=w(Ok=>{"use strict";Object.defineProperty(Ok,"__esModule",{value:!0});var od=za(),AW=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let i=od.pattern.convertPatternsToRe(e,this._micromatchOptions),n=od.pattern.convertPatternsToRe(r,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,r,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,r)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let i=od.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,r)}_isMatchToPatterns(e,r){let i=od.path.removeLeadingDotSegment(e);return od.pattern.matchAny(i,r)}};Ok.default=AW});var uW=w(Mk=>{"use strict";Object.defineProperty(Mk,"__esModule",{value:!0});var rve=za(),cW=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return rve.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};Mk.default=cW});var hW=w(Kk=>{"use strict";Object.defineProperty(Kk,"__esModule",{value:!0});var gW=za(),fW=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=gW.path.makeAbsolute(this._settings.cwd,r),r=gW.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};Kk.default=fW});var tw=w(Uk=>{"use strict";Object.defineProperty(Uk,"__esModule",{value:!0});var ive=require("path"),nve=aW(),sve=lW(),ove=uW(),ave=hW(),pW=class{constructor(e){this._settings=e,this.errorFilter=new ove.default(this._settings),this.entryFilter=new sve.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new nve.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ave.default(this._settings)}_getRootDirectory(e){return ive.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Uk.default=pW});var CW=w(Hk=>{"use strict";Object.defineProperty(Hk,"__esModule",{value:!0});var Ave=Fk(),lve=tw(),dW=class extends lve.default{constructor(){super(...arguments);this._reader=new Ave.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(r,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Hk.default=dW});var EW=w(Gk=>{"use strict";Object.defineProperty(Gk,"__esModule",{value:!0});var cve=require("stream"),uve=Fk(),gve=tw(),mW=class extends gve.default{constructor(){super(...arguments);this._reader=new uve.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(r,e,i),s=new cve.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Gk.default=mW});var yW=w(jk=>{"use strict";Object.defineProperty(jk,"__esModule",{value:!0});var fve=Nc(),hve=xk(),pve=Dk(),IW=class extends pve.default{constructor(){super(...arguments);this._walkSync=hve.walkSync,this._statSync=fve.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,r);o===null||!r.entryFilter(o)||i.push(o)}return i}_getEntry(e,r,i){try{let n=this._getStat(e);return this._makeEntry(n,r)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};jk.default=IW});var BW=w(Yk=>{"use strict";Object.defineProperty(Yk,"__esModule",{value:!0});var dve=yW(),Cve=tw(),wW=class extends Cve.default{constructor(){super(...arguments);this._reader=new dve.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(r,e,i).map(i.transform)}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};Yk.default=wW});var QW=w(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});var Kg=require("fs"),mve=require("os"),Eve=mve.cpus().length;ad.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Kg.lstat,lstatSync:Kg.lstatSync,stat:Kg.stat,statSync:Kg.statSync,readdir:Kg.readdir,readdirSync:Kg.readdirSync};var bW=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,Eve),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},ad.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};ad.default=bW});var rw=w((jit,vW)=>{"use strict";var SW=a3(),Ive=CW(),yve=EW(),wve=BW(),qk=QW(),Lc=za();async function Wk(t,e){Ug(t);let r=Jk(t,Ive.default,e),i=await Promise.all(r);return Lc.array.flatten(i)}(function(t){function e(o,a){Ug(o);let l=Jk(o,wve.default,a);return Lc.array.flatten(l)}t.sync=e;function r(o,a){Ug(o);let l=Jk(o,yve.default,a);return Lc.stream.merge(l)}t.stream=r;function i(o,a){Ug(o);let l=[].concat(o),c=new qk.default(a);return SW.generate(l,c)}t.generateTasks=i;function n(o,a){Ug(o);let l=new qk.default(a);return Lc.pattern.isDynamicPattern(o,l)}t.isDynamicPattern=n;function s(o){return Ug(o),Lc.path.escape(o)}t.escapePath=s})(Wk||(Wk={}));function Jk(t,e,r){let i=[].concat(t),n=new qk.default(r),s=SW.generate(i,n),o=new e(n);return s.map(o.read,o)}function Ug(t){if(![].concat(t).every(i=>Lc.string.isString(i)&&!Lc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}vW.exports=Wk});var xW=w(Tc=>{"use strict";var{promisify:Bve}=require("util"),kW=require("fs");async function zk(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await Bve(kW[t])(r))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function _k(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return kW[t](r)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Tc.isFile=zk.bind(null,"stat","isFile");Tc.isDirectory=zk.bind(null,"stat","isDirectory");Tc.isSymlink=zk.bind(null,"lstat","isSymbolicLink");Tc.isFileSync=_k.bind(null,"statSync","isFile");Tc.isDirectorySync=_k.bind(null,"statSync","isDirectory");Tc.isSymlinkSync=_k.bind(null,"lstatSync","isSymbolicLink")});var NW=w((qit,Vk)=>{"use strict";var Oc=require("path"),PW=xW(),DW=t=>t.length>1?`{${t.join(",")}}`:t[0],RW=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return Oc.isAbsolute(r)?r:Oc.join(e,r)},bve=(t,e)=>Oc.extname(t)?`**/${t}`:`**/${t}.${DW(e)}`,FW=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>Oc.posix.join(t,bve(r,e.extensions))):e.files?e.files.map(r=>Oc.posix.join(t,`**/${r}`)):e.extensions?[Oc.posix.join(t,`**/*.${DW(e.extensions)}`)]:[Oc.posix.join(t,"**")]};Vk.exports=async(t,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async i=>await PW.isDirectory(RW(i,e.cwd))?FW(i,e):i));return[].concat.apply([],r)};Vk.exports.sync=(t,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(i=>PW.isDirectorySync(RW(i,e.cwd))?FW(i,e):i);return[].concat.apply([],r)}});var YW=w((Jit,LW)=>{function TW(t){return Array.isArray(t)?t:[t]}var OW="",MW=" ",Xk="\\",Qve=/^\s+$/,vve=/^\\!/,Sve=/^\\#/,kve=/\r?\n/g,xve=/^\.*\/|^\.+$/,Zk="/",KW=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",Pve=(t,e,r)=>Object.defineProperty(t,e,{value:r}),Dve=/([0-z])-([0-z])/g,Rve=t=>t.replace(Dve,(e,r,i)=>r.charCodeAt(0)<=i.charCodeAt(0)?e:OW),Fve=t=>{let{length:e}=t;return t.slice(0,e-e%2)},Nve=[[/\\?\s+$/,t=>t.indexOf("\\")===0?MW:OW],[/\\\s/g,()=>MW],[/[\\$.|*+(){^]/g,t=>`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>Xk],[/\\\\/g,()=>Xk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(t,e,r,i,n)=>e===Xk?`\\[${r}${Fve(i)}${n}`:n==="]"&&i.length%2==0?`[${Rve(r)}${i}]`:"[]"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],UW=Object.create(null),Lve=(t,e)=>{let r=UW[t];return r||(r=Nve.reduce((i,n)=>i.replace(n[0],n[1].bind(t)),t),UW[t]=r),e?new RegExp(r,"i"):new RegExp(r)},$k=t=>typeof t=="string",Tve=t=>t&&$k(t)&&!Qve.test(t)&&t.indexOf("#")!==0,Ove=t=>t.split(kve),HW=class{constructor(e,r,i,n){this.origin=e,this.pattern=r,this.negative=i,this.regex=n}},Mve=(t,e)=>{let r=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(vve,"!").replace(Sve,"#");let n=Lve(t,e);return new HW(r,t,i,n)},Kve=(t,e)=>{throw new e(t)},Va=(t,e,r)=>$k(t)?t?Va.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),GW=t=>xve.test(t);Va.isNotRelative=GW;Va.convert=t=>t;var jW=class{constructor({ignorecase:e=!0}={}){Pve(this,KW,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[KW]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(Tve(e)){let r=Mve(e,this._ignorecase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,TW($k(e)?Ove(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!r)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,r,i,n){let s=e&&Va.convert(e);return Va(s,e,Kve),this._t(s,r,i,n)}_t(e,r,i,n){if(e in r)return r[e];if(n||(n=e.split(Zk)),n.pop(),!n.length)return r[e]=this._testOne(e,i);let s=this._t(n.join(Zk)+Zk,r,i,n);return r[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return TW(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},iw=t=>new jW(t),Uve=()=>!1,Hve=t=>Va(t&&Va.convert(t),t,Uve);iw.isPathValid=Hve;iw.default=iw;LW.exports=iw;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");Va.convert=t;let e=/^[a-z]:\//i;Va.isNotRelative=r=>e.test(r)||GW(r)}});var JW=w((Wit,qW)=>{"use strict";qW.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var $W=w((zit,ex)=>{"use strict";var{promisify:Gve}=require("util"),WW=require("fs"),Xa=require("path"),zW=rw(),jve=YW(),Ad=JW(),_W=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],Yve=Gve(WW.readFile),qve=t=>e=>e.startsWith("!")?"!"+Xa.posix.join(t,e.slice(1)):Xa.posix.join(t,e),Jve=(t,e)=>{let r=Ad(Xa.relative(e.cwd,Xa.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(qve(r))},VW=t=>{let e=jve();for(let r of t)e.add(Jve(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},Wve=(t,e)=>{if(t=Ad(t),Xa.isAbsolute(e)){if(Ad(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return Xa.join(t,e)},XW=(t,e)=>r=>t.ignores(Ad(Xa.relative(e,Wve(e,r.path||r)))),zve=async(t,e)=>{let r=Xa.join(e,t),i=await Yve(r,"utf8");return{cwd:e,filePath:r,content:i}},_ve=(t,e)=>{let r=Xa.join(e,t),i=WW.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:i}},ZW=({ignore:t=[],cwd:e=Ad(process.cwd())}={})=>({ignore:t,cwd:e});ex.exports=async t=>{t=ZW(t);let e=await zW("**/.gitignore",{ignore:_W.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(n=>zve(n,t.cwd))),i=VW(r);return XW(i,t.cwd)};ex.exports.sync=t=>{t=ZW(t);let r=zW.sync("**/.gitignore",{ignore:_W.concat(t.ignore),cwd:t.cwd}).map(n=>_ve(n,t.cwd)),i=VW(r);return XW(i,t.cwd)}});var i8=w((_it,e8)=>{"use strict";var{Transform:Vve}=require("stream"),tx=class extends Vve{constructor(){super({objectMode:!0})}},t8=class extends tx{constructor(e){super();this._filter=e}_transform(e,r,i){this._filter(e)&&this.push(e),i()}},r8=class extends tx{constructor(){super();this._pushed=new Set}_transform(e,r,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};e8.exports={FilterStream:t8,UniqueStream:r8}});var sx=w((Vit,Mc)=>{"use strict";var n8=require("fs"),nw=xJ(),Xve=ek(),sw=rw(),ow=NW(),rx=$W(),{FilterStream:Zve,UniqueStream:$ve}=i8(),s8=()=>!1,o8=t=>t[0]==="!",eSe=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},tSe=(t={})=>{if(!t.cwd)return;let e;try{e=n8.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},rSe=t=>t.stats instanceof n8.Stats?t.path:t,aw=(t,e)=>{t=nw([].concat(t)),eSe(t),tSe(e);let r=[];e=N({ignore:[],expandDirectories:!0},e);for(let[i,n]of t.entries()){if(o8(n))continue;let s=t.slice(i).filter(a=>o8(a)).map(a=>a.slice(1)),o=ie(N({},e),{ignore:e.ignore.concat(s)});r.push({pattern:n,options:o})}return r},iSe=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r=ie(N({},r),{files:t.options.expandDirectories}):typeof t.options.expandDirectories=="object"&&(r=N(N({},r),t.options.expandDirectories)),e(t.pattern,r)},ix=(t,e)=>t.options.expandDirectories?iSe(t,e):[t.pattern],a8=t=>t&&t.gitignore?rx.sync({cwd:t.cwd,ignore:t.ignore}):s8,nx=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=ow.sync(r.ignore)),{pattern:e,options:r}};Mc.exports=async(t,e)=>{let r=aw(t,e),i=async()=>e&&e.gitignore?rx({cwd:e.cwd,ignore:e.ignore}):s8,n=async()=>{let l=await Promise.all(r.map(async c=>{let u=await ix(c,ow);return Promise.all(u.map(nx(c)))}));return nw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>sw(l.pattern,l.options)));return nw(...a).filter(l=>!s(rSe(l)))};Mc.exports.sync=(t,e)=>{let r=aw(t,e),i=[];for(let o of r){let a=ix(o,ow.sync).map(nx(o));i.push(...a)}let n=a8(e),s=[];for(let o of i)s=nw(s,sw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Mc.exports.stream=(t,e)=>{let r=aw(t,e),i=[];for(let a of r){let l=ix(a,ow.sync).map(nx(a));i.push(...l)}let n=a8(e),s=new Zve(a=>!n(a)),o=new $ve;return Xve(i.map(a=>sw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Mc.exports.generateGlobTasks=aw;Mc.exports.hasMagic=(t,e)=>[].concat(t).some(r=>sw.isDynamicPattern(r,e));Mc.exports.gitignore=rx});var Rn=w((Bnt,w8)=>{function dSe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}w8.exports=dSe});var hx=w((bnt,B8)=>{var CSe=typeof global=="object"&&global&&global.Object===Object&&global;B8.exports=CSe});var Fs=w((Qnt,b8)=>{var mSe=hx(),ESe=typeof self=="object"&&self&&self.Object===Object&&self,ISe=mSe||ESe||Function("return this")();b8.exports=ISe});var v8=w((vnt,Q8)=>{var ySe=Fs(),wSe=function(){return ySe.Date.now()};Q8.exports=wSe});var k8=w((Snt,S8)=>{var BSe=/\s/;function bSe(t){for(var e=t.length;e--&&BSe.test(t.charAt(e)););return e}S8.exports=bSe});var P8=w((knt,x8)=>{var QSe=k8(),vSe=/^\s+/;function SSe(t){return t&&t.slice(0,QSe(t)+1).replace(vSe,"")}x8.exports=SSe});var Hc=w((xnt,D8)=>{var kSe=Fs(),xSe=kSe.Symbol;D8.exports=xSe});var L8=w((Pnt,R8)=>{var F8=Hc(),N8=Object.prototype,PSe=N8.hasOwnProperty,DSe=N8.toString,Id=F8?F8.toStringTag:void 0;function RSe(t){var e=PSe.call(t,Id),r=t[Id];try{t[Id]=void 0;var i=!0}catch(s){}var n=DSe.call(t);return i&&(e?t[Id]=r:delete t[Id]),n}R8.exports=RSe});var O8=w((Dnt,T8)=>{var FSe=Object.prototype,NSe=FSe.toString;function LSe(t){return NSe.call(t)}T8.exports=LSe});var Gc=w((Rnt,M8)=>{var K8=Hc(),TSe=L8(),OSe=O8(),MSe="[object Null]",KSe="[object Undefined]",U8=K8?K8.toStringTag:void 0;function USe(t){return t==null?t===void 0?KSe:MSe:U8&&U8 in Object(t)?TSe(t):OSe(t)}M8.exports=USe});var Zo=w((Fnt,H8)=>{function HSe(t){return t!=null&&typeof t=="object"}H8.exports=HSe});var yd=w((Nnt,G8)=>{var GSe=Gc(),jSe=Zo(),YSe="[object Symbol]";function qSe(t){return typeof t=="symbol"||jSe(t)&&GSe(t)==YSe}G8.exports=qSe});var J8=w((Lnt,j8)=>{var JSe=P8(),Y8=Rn(),WSe=yd(),q8=0/0,zSe=/^[-+]0x[0-9a-f]+$/i,_Se=/^0b[01]+$/i,VSe=/^0o[0-7]+$/i,XSe=parseInt;function ZSe(t){if(typeof t=="number")return t;if(WSe(t))return q8;if(Y8(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Y8(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=JSe(t);var r=_Se.test(t);return r||VSe.test(t)?XSe(t.slice(2),r?2:8):zSe.test(t)?q8:+t}j8.exports=ZSe});var _8=w((Tnt,W8)=>{var $Se=Rn(),px=v8(),z8=J8(),eke="Expected a function",tke=Math.max,rke=Math.min;function ike(t,e,r){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof t!="function")throw new TypeError(eke);e=z8(e)||0,$Se(r)&&(u=!!r.leading,g="maxWait"in r,s=g?tke(z8(r.maxWait)||0,e):s,f="trailing"in r?!!r.trailing:f);function h(j){var Z=i,J=n;return i=n=void 0,c=j,o=t.apply(J,Z),o}function p(j){return c=j,a=setTimeout(b,e),u?h(j):o}function m(j){var Z=j-l,J=j-c,re=e-Z;return g?rke(re,s-J):re}function y(j){var Z=j-l,J=j-c;return l===void 0||Z>=e||Z<0||g&&J>=s}function b(){var j=px();if(y(j))return S(j);a=setTimeout(b,m(j))}function S(j){return a=void 0,f&&i?h(j):(i=n=void 0,o)}function k(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:S(px())}function Y(){var j=px(),Z=y(j);if(i=arguments,n=this,l=j,Z){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(b,e),h(l)}return a===void 0&&(a=setTimeout(b,e)),o}return Y.cancel=k,Y.flush=T,Y}W8.exports=ike});var X8=w((Ont,V8)=>{var nke=_8(),ske=Rn(),oke="Expected a function";function ake(t,e,r){var i=!0,n=!0;if(typeof t!="function")throw new TypeError(oke);return ske(r)&&(i="leading"in r?!!r.leading:i,n="trailing"in r?!!r.trailing:n),nke(t,e,{leading:i,maxWait:e,trailing:n})}V8.exports=ake});var eA=w(($a,Sw)=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});var s4=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ike(t){return s4.includes(t)}var yke=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...s4];function wke(t){return yke.includes(t)}var Bke=["null","undefined","string","number","bigint","boolean","symbol"];function bke(t){return Bke.includes(t)}function zg(t){return e=>typeof e===t}var{toString:o4}=Object.prototype,kd=t=>{let e=o4.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&z.domElement(t))return"HTMLElement";if(wke(e))return e},hr=t=>e=>kd(e)===t;function z(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(z.observable(t))return"Observable";if(z.array(t))return"Array";if(z.buffer(t))return"Buffer";let e=kd(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}z.undefined=zg("undefined");z.string=zg("string");var Qke=zg("number");z.number=t=>Qke(t)&&!z.nan(t);z.bigint=zg("bigint");z.function_=zg("function");z.null_=t=>t===null;z.class_=t=>z.function_(t)&&t.toString().startsWith("class ");z.boolean=t=>t===!0||t===!1;z.symbol=zg("symbol");z.numericString=t=>z.string(t)&&!z.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));z.array=(t,e)=>Array.isArray(t)?z.function_(e)?t.every(e):!0:!1;z.buffer=t=>{var e,r,i,n;return(n=(i=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||i===void 0?void 0:i.call(r,t))!==null&&n!==void 0?n:!1};z.nullOrUndefined=t=>z.null_(t)||z.undefined(t);z.object=t=>!z.null_(t)&&(typeof t=="object"||z.function_(t));z.iterable=t=>{var e;return z.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};z.asyncIterable=t=>{var e;return z.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};z.generator=t=>z.iterable(t)&&z.function_(t.next)&&z.function_(t.throw);z.asyncGenerator=t=>z.asyncIterable(t)&&z.function_(t.next)&&z.function_(t.throw);z.nativePromise=t=>hr("Promise")(t);var vke=t=>{var e,r;return z.function_((e=t)===null||e===void 0?void 0:e.then)&&z.function_((r=t)===null||r===void 0?void 0:r.catch)};z.promise=t=>z.nativePromise(t)||vke(t);z.generatorFunction=hr("GeneratorFunction");z.asyncGeneratorFunction=t=>kd(t)==="AsyncGeneratorFunction";z.asyncFunction=t=>kd(t)==="AsyncFunction";z.boundFunction=t=>z.function_(t)&&!t.hasOwnProperty("prototype");z.regExp=hr("RegExp");z.date=hr("Date");z.error=hr("Error");z.map=t=>hr("Map")(t);z.set=t=>hr("Set")(t);z.weakMap=t=>hr("WeakMap")(t);z.weakSet=t=>hr("WeakSet")(t);z.int8Array=hr("Int8Array");z.uint8Array=hr("Uint8Array");z.uint8ClampedArray=hr("Uint8ClampedArray");z.int16Array=hr("Int16Array");z.uint16Array=hr("Uint16Array");z.int32Array=hr("Int32Array");z.uint32Array=hr("Uint32Array");z.float32Array=hr("Float32Array");z.float64Array=hr("Float64Array");z.bigInt64Array=hr("BigInt64Array");z.bigUint64Array=hr("BigUint64Array");z.arrayBuffer=hr("ArrayBuffer");z.sharedArrayBuffer=hr("SharedArrayBuffer");z.dataView=hr("DataView");z.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;z.urlInstance=t=>hr("URL")(t);z.urlString=t=>{if(!z.string(t))return!1;try{return new URL(t),!0}catch(e){return!1}};z.truthy=t=>Boolean(t);z.falsy=t=>!t;z.nan=t=>Number.isNaN(t);z.primitive=t=>z.null_(t)||bke(typeof t);z.integer=t=>Number.isInteger(t);z.safeInteger=t=>Number.isSafeInteger(t);z.plainObject=t=>{if(o4.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};z.typedArray=t=>Ike(kd(t));var Ske=t=>z.safeInteger(t)&&t>=0;z.arrayLike=t=>!z.nullOrUndefined(t)&&!z.function_(t)&&Ske(t.length);z.inRange=(t,e)=>{if(z.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(z.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var kke=1,xke=["innerHTML","ownerDocument","style","attributes","nodeValue"];z.domElement=t=>z.object(t)&&t.nodeType===kke&&z.string(t.nodeName)&&!z.plainObject(t)&&xke.every(e=>e in t);z.observable=t=>{var e,r,i,n;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((n=(i=t)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};z.nodeStream=t=>z.object(t)&&z.function_(t.pipe)&&!z.observable(t);z.infinite=t=>t===Infinity||t===-Infinity;var a4=t=>e=>z.integer(e)&&Math.abs(e%2)===t;z.evenInteger=a4(0);z.oddInteger=a4(1);z.emptyArray=t=>z.array(t)&&t.length===0;z.nonEmptyArray=t=>z.array(t)&&t.length>0;z.emptyString=t=>z.string(t)&&t.length===0;z.nonEmptyString=t=>z.string(t)&&t.length>0;var Pke=t=>z.string(t)&&!/\S/.test(t);z.emptyStringOrWhitespace=t=>z.emptyString(t)||Pke(t);z.emptyObject=t=>z.object(t)&&!z.map(t)&&!z.set(t)&&Object.keys(t).length===0;z.nonEmptyObject=t=>z.object(t)&&!z.map(t)&&!z.set(t)&&Object.keys(t).length>0;z.emptySet=t=>z.set(t)&&t.size===0;z.nonEmptySet=t=>z.set(t)&&t.size>0;z.emptyMap=t=>z.map(t)&&t.size===0;z.nonEmptyMap=t=>z.map(t)&&t.size>0;z.propertyKey=t=>z.any([z.string,z.number,z.symbol],t);z.formData=t=>hr("FormData")(t);z.urlSearchParams=t=>hr("URLSearchParams")(t);var A4=(t,e,r)=>{if(!z.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};z.any=(t,...e)=>(z.array(t)?t:[t]).some(i=>A4(Array.prototype.some,i,e));z.all=(t,...e)=>A4(Array.prototype.every,t,e);var We=(t,e,r,i={})=>{if(!t){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(r.map(o=>`\`${z(o)}\``))].join(", ")}`:`received value of type \`${z(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};$a.assert={undefined:t=>We(z.undefined(t),"undefined",t),string:t=>We(z.string(t),"string",t),number:t=>We(z.number(t),"number",t),bigint:t=>We(z.bigint(t),"bigint",t),function_:t=>We(z.function_(t),"Function",t),null_:t=>We(z.null_(t),"null",t),class_:t=>We(z.class_(t),"Class",t),boolean:t=>We(z.boolean(t),"boolean",t),symbol:t=>We(z.symbol(t),"symbol",t),numericString:t=>We(z.numericString(t),"string with a number",t),array:(t,e)=>{We(z.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>We(z.buffer(t),"Buffer",t),nullOrUndefined:t=>We(z.nullOrUndefined(t),"null or undefined",t),object:t=>We(z.object(t),"Object",t),iterable:t=>We(z.iterable(t),"Iterable",t),asyncIterable:t=>We(z.asyncIterable(t),"AsyncIterable",t),generator:t=>We(z.generator(t),"Generator",t),asyncGenerator:t=>We(z.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>We(z.nativePromise(t),"native Promise",t),promise:t=>We(z.promise(t),"Promise",t),generatorFunction:t=>We(z.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>We(z.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>We(z.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>We(z.boundFunction(t),"Function",t),regExp:t=>We(z.regExp(t),"RegExp",t),date:t=>We(z.date(t),"Date",t),error:t=>We(z.error(t),"Error",t),map:t=>We(z.map(t),"Map",t),set:t=>We(z.set(t),"Set",t),weakMap:t=>We(z.weakMap(t),"WeakMap",t),weakSet:t=>We(z.weakSet(t),"WeakSet",t),int8Array:t=>We(z.int8Array(t),"Int8Array",t),uint8Array:t=>We(z.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>We(z.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>We(z.int16Array(t),"Int16Array",t),uint16Array:t=>We(z.uint16Array(t),"Uint16Array",t),int32Array:t=>We(z.int32Array(t),"Int32Array",t),uint32Array:t=>We(z.uint32Array(t),"Uint32Array",t),float32Array:t=>We(z.float32Array(t),"Float32Array",t),float64Array:t=>We(z.float64Array(t),"Float64Array",t),bigInt64Array:t=>We(z.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>We(z.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>We(z.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>We(z.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>We(z.dataView(t),"DataView",t),urlInstance:t=>We(z.urlInstance(t),"URL",t),urlString:t=>We(z.urlString(t),"string with a URL",t),truthy:t=>We(z.truthy(t),"truthy",t),falsy:t=>We(z.falsy(t),"falsy",t),nan:t=>We(z.nan(t),"NaN",t),primitive:t=>We(z.primitive(t),"primitive",t),integer:t=>We(z.integer(t),"integer",t),safeInteger:t=>We(z.safeInteger(t),"integer",t),plainObject:t=>We(z.plainObject(t),"plain object",t),typedArray:t=>We(z.typedArray(t),"TypedArray",t),arrayLike:t=>We(z.arrayLike(t),"array-like",t),domElement:t=>We(z.domElement(t),"HTMLElement",t),observable:t=>We(z.observable(t),"Observable",t),nodeStream:t=>We(z.nodeStream(t),"Node.js Stream",t),infinite:t=>We(z.infinite(t),"infinite number",t),emptyArray:t=>We(z.emptyArray(t),"empty array",t),nonEmptyArray:t=>We(z.nonEmptyArray(t),"non-empty array",t),emptyString:t=>We(z.emptyString(t),"empty string",t),nonEmptyString:t=>We(z.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>We(z.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>We(z.emptyObject(t),"empty object",t),nonEmptyObject:t=>We(z.nonEmptyObject(t),"non-empty object",t),emptySet:t=>We(z.emptySet(t),"empty set",t),nonEmptySet:t=>We(z.nonEmptySet(t),"non-empty set",t),emptyMap:t=>We(z.emptyMap(t),"empty map",t),nonEmptyMap:t=>We(z.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>We(z.propertyKey(t),"PropertyKey",t),formData:t=>We(z.formData(t),"FormData",t),urlSearchParams:t=>We(z.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>We(z.evenInteger(t),"even integer",t),oddInteger:t=>We(z.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>We(z.directInstanceOf(t,e),"T",t),inRange:(t,e)=>We(z.inRange(t,e),"in range",t),any:(t,...e)=>We(z.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>We(z.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(z,{class:{value:z.class_},function:{value:z.function_},null:{value:z.null_}});Object.defineProperties($a.assert,{class:{value:$a.assert.class_},function:{value:$a.assert.function_},null:{value:$a.assert.null_}});$a.default=z;Sw.exports=z;Sw.exports.default=z;Sw.exports.assert=$a.assert});var l4=w((Gst,Lx)=>{"use strict";var Tx=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},xd=class{static fn(e){return(...r)=>new xd((i,n,s)=>{r.push(s),e(...r).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,i)=>{this._reject=i;let n=a=>{this._isPending=!1,r(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Tx(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(xd.prototype,Promise.prototype);Lx.exports=xd;Lx.exports.CancelError=Tx});var c4=w((Ox,Mx)=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var Dke=require("tls"),Kx=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let i=typeof r.connect=="function",n=typeof r.secureConnect=="function",s=typeof r.close=="function",o=()=>{i&&r.connect(),t instanceof Dke.TLSSocket&&n&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),s&&t.once("close",r.close)};t.writable&&!t.connecting?o():t.connecting?t.once("connect",o):t.destroyed&&s&&r.close(t._hadError)};Ox.default=Kx;Mx.exports=Kx;Mx.exports.default=Kx});var u4=w((Ux,Hx)=>{"use strict";Object.defineProperty(Ux,"__esModule",{value:!0});var Rke=c4(),Fke=Number(process.versions.node.split(".")[0]),Gx=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Fke>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),Rke.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?i(t.socket):t.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?n():t.prependOnceListener("finish",n),t.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,r(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};Ux.default=Gx;Hx.exports=Gx;Hx.exports.default=Gx});var m4=w((jst,jx)=>{"use strict";var{V4MAPPED:Nke,ADDRCONFIG:Lke,ALL:g4,promises:{Resolver:f4},lookup:Tke}=require("dns"),{promisify:Yx}=require("util"),Oke=require("os"),_g=Symbol("cacheableLookupCreateConnection"),qx=Symbol("cacheableLookupInstance"),h4=Symbol("expires"),Mke=typeof g4=="number",p4=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Kke=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},d4=()=>{let t=!1,e=!1;for(let r of Object.values(Oke.networkInterfaces()))for(let i of r)if(!i.internal&&(i.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Uke=t=>Symbol.iterator in t,C4={ttl:!0},Hke={all:!0},Jx=class{constructor({cache:e=new Map,maxTtl:r=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new f4,lookup:o=Tke}={}){if(this.maxTtl=r,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Yx(o),this._resolver instanceof f4?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yx(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yx(this._resolver.resolve6.bind(this._resolver))),this._iface=d4(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,i){if(typeof r=="function"?(i=r,r={}):typeof r=="number"&&(r={family:r}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(n=>{r.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let i=await this.query(e);if(r.family===6){let n=i.filter(s=>s.family===6);r.hints&Nke&&(Mke&&r.hints&g4||n.length===0)?Kke(i):i=n}else r.family===4&&(i=i.filter(n=>n.family===4));if(r.hints&Lke){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return r.all?i:i[0]}async query(e){let r=await this._cache.get(e);if(!r){let i=this._pending[e];if(i)r=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,r=await n}}return r=r.map(i=>N({},i)),r}async _resolve(e){let r=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,C4),this._resolve6(e,C4)].map(c=>r(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(r){return{entries:[],cacheTtl:0}}}async _set(e,r,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,r[h4]=Date.now()+i;try{await this._cache.set(e,r,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Uke(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Hke);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let i=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,i),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[h4];n>=a?this._cache.delete(s):a("lookup"in r||(r.lookup=this.lookup),e[_g](r,i))}uninstall(e){if(p4(e),e[_g]){if(e[qx]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[_g],delete e[_g],delete e[qx]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=d4(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};jx.exports=Jx;jx.exports.default=Jx});var y4=w((Yst,Wx)=>{"use strict";var Gke=typeof URL=="undefined"?require("url").URL:URL,jke="text/plain",Yke="us-ascii",E4=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),qke=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let i=r[1].split(";"),n=r[2],s=e?"":r[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Yke)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==jke)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},I4=(t,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return qke(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Gke(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];E4(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])E4(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};Wx.exports=I4;Wx.exports.default=I4});var b4=w((qst,w4)=>{w4.exports=B4;function B4(t,e){if(t&&e)return B4(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(i){r[i]=t[i]}),r;function r(){for(var i=new Array(arguments.length),n=0;n{var Q4=b4();zx.exports=Q4(kw);zx.exports.strict=Q4(v4);kw.proto=kw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return kw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return v4(this)},configurable:!0})});function kw(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function v4(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var Vx=w((Wst,S4)=>{var Jke=_x(),Wke=function(){},zke=function(t){return t.setHeader&&typeof t.abort=="function"},_ke=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},k4=function(t,e,r){if(typeof e=="function")return k4(t,null,e);e||(e={}),r=Jke(r||Wke);var i=t._writableState,n=t._readableState,s=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,a=function(){t.writable||l()},l=function(){o=!1,s||r.call(t)},c=function(){s=!1,o||r.call(t)},u=function(p){r.call(t,p?new Error("exited with error code: "+p):null)},g=function(p){r.call(t,p)},f=function(){if(s&&!(n&&n.ended))return r.call(t,new Error("premature close"));if(o&&!(i&&i.ended))return r.call(t,new Error("premature close"))},h=function(){t.req.on("finish",l)};return zke(t)?(t.on("complete",l),t.on("abort",f),t.req?h():t.on("request",h)):o&&!i&&(t.on("end",a),t.on("close",a)),_ke(t)&&t.on("exit",u),t.on("end",c),t.on("finish",l),e.error!==!1&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",h),t.req&&t.req.removeListener("finish",l),t.removeListener("end",a),t.removeListener("close",a),t.removeListener("finish",l),t.removeListener("exit",u),t.removeListener("end",c),t.removeListener("error",g),t.removeListener("close",f)}};S4.exports=k4});var D4=w((zst,x4)=>{var Vke=_x(),Xke=Vx(),Xx=require("fs"),Pd=function(){},Zke=/^v?\.0/.test(process.version),xw=function(t){return typeof t=="function"},$ke=function(t){return!Zke||!Xx?!1:(t instanceof(Xx.ReadStream||Pd)||t instanceof(Xx.WriteStream||Pd))&&xw(t.close)},exe=function(t){return t.setHeader&&xw(t.abort)},txe=function(t,e,r,i){i=Vke(i);var n=!1;t.on("close",function(){n=!0}),Xke(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,$ke(t))return t.close(Pd);if(exe(t))return t.abort();if(xw(t.destroy))return t.destroy();i(o||new Error("stream was destroyed"))}}},P4=function(t){t()},rxe=function(t,e){return t.pipe(e)},ixe=function(){var t=Array.prototype.slice.call(arguments),e=xw(t[t.length-1]||Pd)&&t.pop()||Pd;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,i=t.map(function(n,s){var o=s0;return txe(n,o,a,function(l){r||(r=l),l&&i.forEach(P4),!o&&(i.forEach(P4),e(r))})});return t.reduce(rxe)};x4.exports=ixe});var F4=w((_st,R4)=>{"use strict";var{PassThrough:nxe}=require("stream");R4.exports=t=>{t=N({},t);let{array:e}=t,{encoding:r}=t,i=r==="buffer",n=!1;e?n=!(r||i):r=r||"utf8",i&&(r=null);let s=new nxe({objectMode:n});r&&s.setEncoding(r);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var N4=w((Vst,Vg)=>{"use strict";var sxe=D4(),oxe=F4(),Zx=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function Pw(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e=N({maxBuffer:Infinity},e);let{maxBuffer:r}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=sxe(t,oxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>r&&o(new Zx)})}),i.getBufferedValue()}Vg.exports=Pw;Vg.exports.default=Pw;Vg.exports.buffer=(t,e)=>Pw(t,ie(N({},e),{encoding:"buffer"}));Vg.exports.array=(t,e)=>Pw(t,ie(N({},e),{array:!0}));Vg.exports.MaxBufferError=Zx});var T4=w((Zst,L4)=>{"use strict";var axe=[200,203,204,206,300,301,404,405,410,414,501],Axe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],lxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},cxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function $x(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let i of r){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function uxe(t){let e=[];for(let r in t){let i=t[r];e.push(i===!0?r:r+"="+i)}if(!!e.length)return e.join(", ")}L4.exports=class{constructor(e,r,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=$x(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=$x(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":uxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!r.headers["cache-control"]&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Axe.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||axe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=$x(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of r)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let i in e)lxe[i]||(r[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete r[n]}if(r.warning){let i=r.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?r.warning=i.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let r=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(r-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let n=r["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?r["if-none-match"]=n.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),!r||!r.headers)throw Error("Response headers missing");let i=!1;if(r.status!==void 0&&r.status!=304?i=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in r.headers&&!cxe[o]?r.headers[o]:this._resHeaders[o];let s=Object.assign({},r,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var Dw=w(($st,O4)=>{"use strict";O4.exports=t=>{let e={};for(let[r,i]of Object.entries(t))e[r.toLowerCase()]=i;return e}});var U4=w((eot,M4)=>{"use strict";var gxe=require("stream").Readable,fxe=Dw(),K4=class extends gxe{constructor(e,r,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=fxe(r),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};M4.exports=K4});var G4=w((tot,H4)=>{"use strict";var hxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];H4.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(hxe));for(let i of r)i in e||(e[i]=typeof t[i]=="function"?t[i].bind(t):t[i])}});var Y4=w((rot,j4)=>{"use strict";var pxe=require("stream").PassThrough,dxe=G4(),Cxe=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new pxe;return dxe(t,e),t.pipe(e)};j4.exports=Cxe});var q4=w(eP=>{eP.stringify=function t(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",i=Array.isArray(e);r=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(r+=","),n=!1,i?e[s]==null?r+="null":r+=t(e[s]):e[s]!==void 0&&(r+=t(s)+":"+t(e[s])))}return r+=i?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};eP.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var _4=w((not,J4)=>{"use strict";var mxe=require("events"),W4=q4(),Exe=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(require(e[r]))(t)}return new Map},z4=class extends mxe{constructor(e,r){super();if(this.opts=Object.assign({namespace:"keyv",serialize:W4.stringify,deserialize:W4.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=Exe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return r&&r.raw?n:n.value}})}set(e,r,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return r={value:r,expires:s},this.opts.serialize(r)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};J4.exports=z4});var Z4=w((sot,V4)=>{"use strict";var Ixe=require("events"),Rw=require("url"),yxe=y4(),wxe=N4(),tP=T4(),X4=U4(),Bxe=Dw(),bxe=Y4(),Qxe=_4(),ea=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Qxe({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,i)=>{let n;if(typeof r=="string")n=rP(Rw.parse(r)),r={};else if(r instanceof Rw.URL)n=rP(Rw.parse(r.toString())),r={};else{let[g,...f]=(r.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=rP(ie(N({},r),{pathname:g,search:h}))}r=N(N({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},r),vxe(n)),r.headers=Bxe(r.headers);let s=new Ixe,o=yxe(Rw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${r.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=tP.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let k=S.policy.responseHeaders();y=new X4(l.statusCode,k,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new tP(g,y,g),y.fromCache=!1);let b;g.cache&&y.cachePolicy.storable()?(b=bxe(y),(async()=>{try{let S=wxe.buffer(y);if(await Promise.race([p,new Promise(j=>y.once("end",j))]),f)return;let k=await S,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:k},Y=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(Y=Y?Math.min(Y,g.maxTtl):g.maxTtl),await this.cache.set(a,T,Y)}catch(S){s.emit("error",new ea.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new ea.CacheError(S))}})(),s.emit("response",b||y),typeof i=="function"&&i(b||y)};try{let y=e(g,m);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new ea.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let m=tP.fromObject(p.cachePolicy);if(m.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=m.responseHeaders(),b=new X4(p.statusCode,y,p.body,p.url);b.cachePolicy=m,b.fromCache=!0,s.emit("response",b),typeof i=="function"&&i(b)}else l=p,h.headers=m.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new ea.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(r)}catch(h){r.automaticFailover&&!c&&u(r),s.emit("error",new ea.CacheError(h))}})(),s}}};function vxe(t){let e=N({},t);return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function rP(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}ea.RequestError=class extends Error{constructor(t){super(t.message);this.name="RequestError",Object.assign(this,t)}};ea.CacheError=class extends Error{constructor(t){super(t.message);this.name="CacheError",Object.assign(this,t)}};V4.exports=ea});var ez=w((oot,$4)=>{"use strict";var Sxe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];$4.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Sxe)),i={};for(let n of r)n in e||(i[n]={get(){let s=t[n];return typeof s=="function"?s.bind(t):s},set(s){t[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var rz=w((aot,tz)=>{"use strict";var{Transform:kxe,PassThrough:xxe}=require("stream"),iP=require("zlib"),Pxe=ez();tz.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof iP.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let i=!0,n=new kxe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new xxe({autoDestroy:!1,destroy(a,l){t.destroy(),l(a)}}),o=r?iP.createBrotliDecompress():iP.createUnzip();return o.once("error",a=>{if(i&&!t.readable){s.end();return}s.destroy(a)}),Pxe(t,s),t.pipe(n).pipe(o).pipe(s),s}});var nP=w((Aot,iz)=>{"use strict";var nz=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};iz.exports=nz});var oP=w((lot,sz)=>{"use strict";var Dxe=require("events"),Rxe=require("tls"),Fxe=require("http2"),Nxe=nP(),gn=Symbol("currentStreamsCount"),oz=Symbol("request"),Ns=Symbol("cachedOriginSet"),Xg=Symbol("gracefullyClosing"),Lxe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Txe=(t,e,r)=>{let i=0,n=t.length;for(;i>>1;r(t[s],e)?i=s+1:n=s}return i},Oxe=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,sP=(t,e)=>{for(let r of t)r[Ns].lengthe[Ns].includes(i))&&r[gn]+e[gn]<=e.remoteSettings.maxConcurrentStreams&&az(r)},Mxe=(t,e)=>{for(let r of t)e[Ns].lengthr[Ns].includes(i))&&e[gn]+r[gn]<=r.remoteSettings.maxConcurrentStreams&&az(e)},Az=({agent:t,isFree:e})=>{let r={};for(let i in t.sessions){let s=t.sessions[i].filter(o=>{let a=o[tA.kCurrentStreamsCount]{t[Xg]=!0,t[gn]===0&&t.close()},tA=class extends Dxe{constructor({timeout:e=6e4,maxSessions:r=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Nxe({maxSize:n})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let i of Lxe)e[i]&&(r+=`:${e[i]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let i=this.queue[e][r];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(r),a=tA.normalizeOrigin(e,r&&r.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let m=p.remoteSettings.maxConcurrentStreams;if(m=m||p[Xg]||p.destroyed)continue;h||(g=m),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);p(m)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=Fxe.connect(e,N({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},r));f[gn]=0,f[Xg]=!1;let h=()=>f[gn]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:b}of i)b(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:b}of i)b(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Ns])if(y in this.queue[o]){let{listeners:b}=this.queue[o][y];for(;b.length!==0&&h();)b.shift().resolve(f);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Ns]=f.originSet,!!h()&&(m(),sP(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let b of i)b.reject(y);f.destroy();return}f[Ns]=f.originSet;{let y=this.sessions;if(o in y){let b=y[o];b.splice(Txe(b,f,Oxe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),m(),l(),f[gn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,r,i),i.length=0),f.on("remoteSettings",()=>{m(),sP(this.sessions[o],f)})}),f[oz]=f.request,f.request=(y,b)=>{if(f[Xg])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=f[oz](y,b);return f.ref(),++f[gn],f[gn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(p=h(),--f[gn],!f.destroyed&&!f.closed&&(Mxe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let k=f[gn]===0;k&&f.unref(),k&&(this._freeSessionsCount>this.maxFreeSessions||f[Xg])?f.close():(sP(this.sessions[o],f),m())}}),S}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,r,i,n){return new Promise((s,o)=>{this.getSession(e,r,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,r){return tA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof r.servername=="undefined"&&(r.servername=n),Rxe.connect(i,n,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[gn]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let i of r)i.destroy(e);for(let r of Object.values(this.queue))for(let i of Object.values(r))i.destroyed=!0;this.queue={}}get freeSessions(){return Az({agent:this,isFree:!0})}get busySessions(){return Az({agent:this,isFree:!1})}};tA.kCurrentStreamsCount=gn;tA.kGracefullyClosing=Xg;sz.exports={Agent:tA,globalAgent:new tA}});var aP=w((cot,lz)=>{"use strict";var{Readable:Kxe}=require("stream"),cz=class extends Kxe{constructor(e,r){super({highWaterMark:r,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};lz.exports=cz});var AP=w((uot,uz)=>{"use strict";uz.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var fz=w((got,gz)=>{"use strict";gz.exports=(t,e,r)=>{for(let i of r)t.on(i,(...n)=>e.emit(i,...n))}});var pz=w((fot,hz)=>{"use strict";hz.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var Cz=w((pot,dz)=>{"use strict";var Zg=(t,e,r)=>{dz.exports[e]=class extends t{constructor(...n){super(typeof r=="string"?r:r(n));this.name=`${super.name} [${e}]`,this.code=e}}};Zg(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],i=Array.isArray(r);return i&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${i?"one of":"of"} type ${r}. Received ${typeof t[2]}`});Zg(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);Zg(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);Zg(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);Zg(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);Zg(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var gP=w((dot,mz)=>{"use strict";var Uxe=require("http2"),{Writable:Hxe}=require("stream"),{Agent:Ez,globalAgent:Gxe}=oP(),jxe=aP(),Yxe=AP(),qxe=fz(),Jxe=pz(),{ERR_INVALID_ARG_TYPE:lP,ERR_INVALID_PROTOCOL:Wxe,ERR_HTTP_HEADERS_SENT:Iz,ERR_INVALID_HTTP_TOKEN:zxe,ERR_HTTP_INVALID_HEADER_VALUE:_xe,ERR_INVALID_CHAR:Vxe}=Cz(),{HTTP2_HEADER_STATUS:yz,HTTP2_HEADER_METHOD:wz,HTTP2_HEADER_PATH:Bz,HTTP2_METHOD_CONNECT:Xxe}=Uxe.constants,Wi=Symbol("headers"),cP=Symbol("origin"),uP=Symbol("session"),bz=Symbol("options"),Fw=Symbol("flushedHeaders"),Dd=Symbol("jobs"),Zxe=/^[\^`\-\w!#$%&*+.|~]+$/,$xe=/[^\t\u0020-\u007E\u0080-\u00FF]/,Qz=class extends Hxe{constructor(e,r,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Yxe(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(i=r,r=n?e:N({},e)):r=N(N({},e),r),r.h2session)this[uP]=r.h2session;else if(r.agent===!1)this.agent=new Ez({maxFreeSessions:0});else if(typeof r.agent=="undefined"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Ez({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Gxe;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new lP("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Wxe(r.protocol,"https:");let s=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,o=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:a}=r;if(r.timeout=void 0,this[Wi]=Object.create(null),this[Dd]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[l,c]of Object.entries(r.headers))this.setHeader(l,c);r.auth&&!("authorization"in this[Wi])&&(this[Wi].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[bz]=r,s===443?(this[cP]=`https://${o}`,":authority"in this[Wi]||(this[Wi][":authority"]=o)):(this[cP]=`https://${o}:${s}`,":authority"in this[Wi]||(this[Wi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[Fw]=!1}get method(){return this[Wi][wz]}set method(e){e&&(this[Wi][wz]=e.toUpperCase())}get path(){return this[Wi][Bz]}set path(e){e&&(this[Wi][Bz]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,r,i);this._request?n():this[Dd].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[Dd].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[Fw]||this.destroyed)return;this[Fw]=!0;let e=this.method===Xxe,r=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||qxe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new jxe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[yz],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[yz]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[Dd])o();this.emit("socket",this.socket)};if(this[uP])try{r(this[uP].request(this[Wi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[cP],this[bz],this[Wi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new lP("name","string",e);return this[Wi][e.toLowerCase()]}get headersSent(){return this[Fw]}removeHeader(e){if(typeof e!="string")throw new lP("name","string",e);if(this.headersSent)throw new Iz("remove");delete this[Wi][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Iz("set");if(typeof e!="string"||!Zxe.test(e)&&!Jxe(e))throw new zxe("Header name",e);if(typeof r=="undefined")throw new _xe(r,e);if($xe.test(r))throw new Vxe("header content",e);this[Wi][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let i=()=>this._request.setTimeout(e,r);return this._request?i():this[Dd].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};mz.exports=Qz});var Sz=w((Cot,vz)=>{"use strict";var ePe=require("tls");vz.exports=(t={})=>new Promise((e,r)=>{let i=ePe.connect(t,()=>{t.resolveSocket?(i.off("error",r),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})});var xz=w((mot,kz)=>{"use strict";var tPe=require("net");kz.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),tPe.isIP(e)?"":e}});var Rz=w((Eot,fP)=>{"use strict";var Pz=require("http"),hP=require("https"),rPe=Sz(),iPe=nP(),nPe=gP(),sPe=xz(),oPe=AP(),Nw=new iPe({maxSize:100}),Rd=new Map,Dz=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{t.emit("free",e,r)};e.on("free",i);let n=()=>{t.removeSocket(e,r)};e.on("close",n);let s=()=>{t.removeSocket(e,r),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),t.emit("free",e,r)},aPe=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Nw.has(e)){if(Rd.has(e))return(await Rd.get(e)).alpnProtocol;let{path:r,agent:i}=t;t.path=t.socketPath;let n=rPe(t);Rd.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Nw.set(e,o),t.path=r,o==="h2")s.destroy();else{let{globalAgent:a}=hP,l=hP.Agent.prototype.createConnection;i?i.createConnection===l?Dz(i,s,t):s.destroy():a.createConnection===l?Dz(a,s,t):s.destroy()}return Rd.delete(e),o}catch(s){throw Rd.delete(e),s}}return Nw.get(e)};fP.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=oPe(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e=ie(N(N({ALPNProtocols:["h2","http/1.1"]},t),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||sPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?hP.globalAgent:Pz.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await aPe(e)==="h2"?(n&&(e.agent=n.http2),new nPe(e,r)):Pz.request(e,r)};fP.exports.protocolCache=Nw});var Nz=w((Iot,Fz)=>{"use strict";var APe=require("http2"),lPe=oP(),pP=gP(),cPe=aP(),uPe=Rz(),gPe=(t,e,r)=>new pP(t,e,r),fPe=(t,e,r)=>{let i=new pP(t,e,r);return i.end(),i};Fz.exports=ie(N(ie(N({},APe),{ClientRequest:pP,IncomingMessage:cPe}),lPe),{request:gPe,get:fPe,auto:uPe})});var CP=w(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});var Lz=eA();dP.default=t=>Lz.default.nodeStream(t)&&Lz.default.function_(t.getBoundary)});var Kz=w(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});var Tz=require("fs"),Oz=require("util"),Mz=eA(),hPe=CP(),pPe=Oz.promisify(Tz.stat);mP.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(Mz.default.string(t))return Buffer.byteLength(t);if(Mz.default.buffer(t))return t.length;if(hPe.default(t))return Oz.promisify(t.getLength.bind(t))();if(t instanceof Tz.ReadStream){let{size:r}=await pPe(t.path);return r===0?void 0:r}}});var IP=w(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});function dPe(t,e,r){let i={};for(let n of r)i[n]=(...s)=>{e.emit(n,...s)},t.on(n,i[n]);return()=>{for(let n of r)t.off(n,i[n])}}EP.default=dPe});var Uz=w(yP=>{"use strict";Object.defineProperty(yP,"__esModule",{value:!0});yP.default=()=>{let t=[];return{once(e,r,i){e.once(r,i),t.push({origin:e,event:r,fn:i})},unhandleAll(){for(let e of t){let{origin:r,event:i,fn:n}=e;r.removeListener(i,n)}t.length=0}}}});var Gz=w(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});Fd.TimeoutError=void 0;var CPe=require("net"),mPe=Uz(),Hz=Symbol("reentry"),EPe=()=>{},wP=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`);this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};Fd.TimeoutError=wP;Fd.default=(t,e,r)=>{if(Hz in t)return EPe;t[Hz]=!0;let i=[],{once:n,unhandleAll:s}=mPe.default(),o=(g,f,h)=>{var p;let m=setTimeout(f,g,g,h);(p=m.unref)===null||p===void 0||p.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=r,c=(g,f)=>{t.destroy(new wP(g,f))},u=()=>{for(let g of i)g();s()};if(t.once("error",g=>{if(u(),t.listenerCount("error")===0)throw g}),t.once("close",u),n(t,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};t.setTimeout(e.socket,g),i.push(()=>{t.removeListener("timeout",g)})}return n(t,"socket",g=>{var f;let{socketPath:h}=t;if(g.connecting){let p=Boolean(h!=null?h:CPe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect!="undefined"){let m=()=>o(e.connect,c,"connect");p?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect!="undefined"&&r.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(t,"upload-complete",p())}):n(t,"upload-complete",p())}}),typeof e.response!="undefined"&&n(t,"upload-complete",()=>{let g=o(e.response,c,"response");n(t,"response",g)}),u}});var Yz=w(BP=>{"use strict";Object.defineProperty(BP,"__esModule",{value:!0});var jz=eA();BP.default=t=>{t=t;let e={protocol:t.protocol,hostname:jz.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return jz.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var qz=w(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var IPe=require("url"),yPe=["protocol","host","hostname","port","pathname","search"];bP.default=(t,e)=>{var r,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(i=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&i!==void 0?i:""}`}let n=new IPe.URL(t);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of yPe)e[s]&&(n[s]=e[s].toString());return n}});var Wz=w(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var Jz=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};QP.default=Jz});var SP=w(vP=>{"use strict";Object.defineProperty(vP,"__esModule",{value:!0});var wPe=async t=>{let e=[],r=0;for await(let i of t)e.push(i),r+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};vP.default=wPe});var _z=w(qc=>{"use strict";Object.defineProperty(qc,"__esModule",{value:!0});qc.dnsLookupIpVersionToFamily=qc.isDnsLookupIpVersion=void 0;var zz={auto:0,ipv4:4,ipv6:6};qc.isDnsLookupIpVersion=t=>t in zz;qc.dnsLookupIpVersionToFamily=t=>{if(qc.isDnsLookupIpVersion(t))return zz[t];throw new Error("Invalid DNS lookup IP version")}});var kP=w(Lw=>{"use strict";Object.defineProperty(Lw,"__esModule",{value:!0});Lw.isResponseOk=void 0;Lw.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Xz=w(xP=>{"use strict";Object.defineProperty(xP,"__esModule",{value:!0});var Vz=new Set;xP.default=t=>{Vz.has(t)||(Vz.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Zz=w(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Ir=eA(),BPe=(t,e)=>{if(Ir.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ir.assert.any([Ir.default.string,Ir.default.undefined],t.encoding),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.resolveBodyOnly),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.methodRewriting),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],t.isStream),Ir.assert.any([Ir.default.string,Ir.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry=N({},e.retry):t.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ir.default.object(r)?(t.retry=N(N({},t.retry),r),t.retry.methods=[...new Set(t.retry.methods.map(i=>i.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ir.default.number(r)&&(t.retry.limit=r),Ir.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ir.default.number))),Ir.default.object(t.pagination)){e&&(t.pagination=N(N({},e.pagination),t.pagination));let{pagination:i}=t;if(!Ir.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ir.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ir.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ir.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};PP.default=BPe});var $z=w(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});Nd.retryAfterStatusCodes=void 0;Nd.retryAfterStatusCodes=new Set([413,429,503]);var bPe=({attemptCount:t,retryOptions:e,error:r,retryAfter:i})=>{if(t>e.limit)return 0;let n=e.methods.includes(r.options.method),s=e.errorCodes.includes(r.code),o=r.response&&e.statusCodes.includes(r.response.statusCode);if(!n||!s&&!o)return 0;if(r.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(r.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(t-1)*1e3+a};Nd.default=bPe});var Td=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.UnsupportedProtocolError=qt.ReadError=qt.TimeoutError=qt.UploadError=qt.CacheError=qt.HTTPError=qt.MaxRedirectsError=qt.RequestError=qt.setNonEnumerableProperties=qt.knownHookEvents=qt.withoutBody=qt.kIsNormalizedAlready=void 0;var e5=require("util"),t5=require("stream"),QPe=require("fs"),Al=require("url"),r5=require("http"),DP=require("http"),vPe=require("https"),SPe=u4(),kPe=m4(),i5=Z4(),xPe=rz(),PPe=Nz(),DPe=Dw(),Ie=eA(),RPe=Kz(),n5=CP(),FPe=IP(),s5=Gz(),NPe=Yz(),o5=qz(),LPe=Wz(),TPe=SP(),a5=_z(),OPe=kP(),ll=Xz(),MPe=Zz(),KPe=$z(),RP,Ri=Symbol("request"),Tw=Symbol("response"),$g=Symbol("responseSize"),ef=Symbol("downloadedSize"),tf=Symbol("bodySize"),rf=Symbol("uploadedSize"),Ow=Symbol("serverResponsesPiped"),A5=Symbol("unproxyEvents"),l5=Symbol("isFromCache"),FP=Symbol("cancelTimeouts"),c5=Symbol("startedReading"),nf=Symbol("stopReading"),Mw=Symbol("triggerRead"),cl=Symbol("body"),Ld=Symbol("jobs"),u5=Symbol("originalResponse"),g5=Symbol("retryTimeout");qt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var UPe=Ie.default.string(process.versions.brotli);qt.withoutBody=new Set(["GET","HEAD"]);qt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function HPe(t){for(let e in t){let r=t[e];if(!Ie.default.string(r)&&!Ie.default.number(r)&&!Ie.default.boolean(r)&&!Ie.default.null_(r)&&!Ie.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function GPe(t){return Ie.default.object(t)&&!("statusCode"in t)}var NP=new LPe.default,jPe=async t=>new Promise((e,r)=>{let i=n=>{r(n)};t.pending||e(),t.once("error",i),t.once("ready",()=>{t.off("error",i),e()})}),YPe=new Set([300,301,302,303,304,307,308]),qPe=["context","body","json","form"];qt.setNonEnumerableProperties=(t,e)=>{let r={};for(let i of t)if(!!i)for(let n of qPe)n in i&&(r[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,r)};var fi=class extends Error{constructor(e,r,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,i instanceof LP?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Tw]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ie.default.string(r.stack)&&Ie.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` -`).reverse(),a=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` -`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` -`)}${a.reverse().join(` -`)}`}}};qt.RequestError=fi;var TP=class extends fi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};qt.MaxRedirectsError=TP;var OP=class extends fi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};qt.HTTPError=OP;var MP=class extends fi{constructor(e,r){super(e.message,e,r);this.name="CacheError"}};qt.CacheError=MP;var KP=class extends fi{constructor(e,r){super(e.message,e,r);this.name="UploadError"}};qt.UploadError=KP;var UP=class extends fi{constructor(e,r,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=r}};qt.TimeoutError=UP;var Kw=class extends fi{constructor(e,r){super(e.message,e,r);this.name="ReadError"}};qt.ReadError=Kw;var HP=class extends fi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};qt.UnsupportedProtocolError=HP;var JPe=["socket","connect","continue","information","upgrade","timeout"],LP=class extends t5.Duplex{constructor(e,r={},i){super({autoDestroy:!1,highWaterMark:0});this[ef]=0,this[rf]=0,this.requestInitialized=!1,this[Ow]=new Set,this.redirects=[],this[nf]=!1,this[Mw]=!1,this[Ld]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof DP.IncomingMessage&&(this.options.headers=N(N({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=r;if((o||a||l)&&this._lockWrite(),qt.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,i)}catch(c){Ie.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof QPe.ReadStream&&await jPe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Ri])===null||c===void 0||c.destroy();return}for(let g of this[Ld])g();this[Ld].length=0,this.requestInitialized=!0}catch(u){if(u instanceof fi){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,r,i){var n,s,o,a,l;let c=r;if(Ie.default.object(e)&&!Ie.default.urlInstance(e))r=N(N(N({},i),e),r);else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r=N(N({},i),r),e!==void 0&&(r.url=e),Ie.default.urlInstance(r.url)&&(r.url=new Al.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.method),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.headers),Ie.assert.any([Ie.default.string,Ie.default.urlInstance,Ie.default.undefined],r.prefixUrl),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.cookieJar),Ie.assert.any([Ie.default.object,Ie.default.string,Ie.default.undefined],r.searchParams),Ie.assert.any([Ie.default.object,Ie.default.string,Ie.default.undefined],r.cache),Ie.assert.any([Ie.default.object,Ie.default.number,Ie.default.undefined],r.timeout),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.context),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.hooks),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.decompress),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.ignoreInvalidCookies),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.followRedirect),Ie.assert.any([Ie.default.number,Ie.default.undefined],r.maxRedirects),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.throwHttpErrors),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.http2),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.allowGetBody),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.localAddress),Ie.assert.any([a5.isDnsLookupIpVersion,Ie.default.undefined],r.dnsLookupIpVersion),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.https),Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.rejectUnauthorized),r.https&&(Ie.assert.any([Ie.default.boolean,Ie.default.undefined],r.https.rejectUnauthorized),Ie.assert.any([Ie.default.function_,Ie.default.undefined],r.https.checkServerIdentity),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.certificateAuthority),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.key),Ie.assert.any([Ie.default.string,Ie.default.object,Ie.default.array,Ie.default.undefined],r.https.certificate),Ie.assert.any([Ie.default.string,Ie.default.undefined],r.https.passphrase),Ie.assert.any([Ie.default.string,Ie.default.buffer,Ie.default.array,Ie.default.undefined],r.https.pfx)),Ie.assert.any([Ie.default.object,Ie.default.undefined],r.cacheOptions),Ie.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(i==null?void 0:i.headers)?r.headers=N({},r.headers):r.headers=DPe(N(N({},i==null?void 0:i.headers),r.headers)),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ie.default.string(r.searchParams)||r.searchParams instanceof Al.URLSearchParams)h=new Al.URLSearchParams(r.searchParams);else{HPe(r.searchParams),h=new Al.URLSearchParams;for(let p in r.searchParams){let m=r.searchParams[p];m===null?h.append(p,""):m!==void 0&&h.append(p,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,m)=>{h.has(m)||h.append(m,p)}),r.searchParams=h}if(r.username=(s=r.username)!==null&&s!==void 0?s:"",r.password=(o=r.password)!==null&&o!==void 0?o:"",Ie.default.undefined(r.prefixUrl)?r.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),Ie.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=o5.default(r.prefixUrl+r.url,r)}else(Ie.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=o5.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:h}=r;Object.defineProperty(r,"prefixUrl",{set:m=>{let y=r.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${m}: ${y.href}`);r.url=new Al.URL(m+y.href.slice(h.length)),h=m},get:()=>h});let{protocol:p}=r.url;if(p==="unix:"&&(p="http:",r.url=new Al.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),p!=="http:"&&p!=="https:")throw new HP(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:u}=r;if(u){let{setCookie:h,getCookieString:p}=u;Ie.assert.function_(h),Ie.assert.function_(p),h.length===4&&p.length===0&&(h=e5.promisify(h.bind(r.cookieJar)),p=e5.promisify(p.bind(r.cookieJar)),r.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=r;if(g&&(NP.has(g)||NP.set(g,new i5((h,p)=>{let m=h[Ri](h,p);return Ie.default.promise(m)&&(m.once=(y,b)=>{if(y==="error")m.catch(b);else if(y==="abort")(async()=>{try{(await m).once("abort",b)}catch(S){}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),r.cacheOptions=N({},r.cacheOptions),r.dnsCache===!0)RP||(RP=new kPe.default),r.dnsCache=RP;else if(!Ie.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ie.default(r.dnsCache)}`);Ie.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout=N(N({},i.timeout),r.timeout):r.timeout=N({},r.timeout),r.context||(r.context={});let f=r.hooks===(i==null?void 0:i.hooks);r.hooks=N({},r.hooks);for(let h of qt.knownHookEvents)if(h in r.hooks)if(Ie.default.array(r.hooks[h]))r.hooks[h]=[...r.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ie.default(r.hooks[h])}`);else r.hooks[h]=[];if(i&&!f)for(let h of qt.knownHookEvents)i.hooks[h].length>0&&(r.hooks[h]=[...i.hooks[h],...r.hooks[h]]);if("family"in r&&ll.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(r.https=N(N({},i.https),r.https)),"rejectUnauthorized"in r&&ll.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&ll.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&ll.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&ll.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&ll.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&ll.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&ll.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let h in r.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return r.maxRedirects=(l=r.maxRedirects)!==null&&l!==void 0?l:0,qt.setNonEnumerableProperties([i,c],r),MPe.default(r,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,i=!Ie.default.undefined(e.form),n=!Ie.default.undefined(e.json),s=!Ie.default.undefined(e.body),o=i||n||s,a=qt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof t5.Readable)&&!Ie.default.string(e.body)&&!Ie.default.buffer(e.body)&&!n5.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ie.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ie.default.string(r["content-type"]);s?(n5.default(e.body)&&l&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[cl]=e.body):i?(l&&(r["content-type"]="application/x-www-form-urlencoded"),this[cl]=new Al.URLSearchParams(e.form).toString()):(l&&(r["content-type"]="application/json"),this[cl]=e.stringifyJson(e.json));let c=await RPe.default(this[cl],e.headers);Ie.default.undefined(r["content-length"])&&Ie.default.undefined(r["transfer-encoding"])&&!a&&!Ie.default.undefined(c)&&(r["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[tf]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:i}=r;this[u5]=e,r.decompress&&(e=xPe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:r5.STATUS_CODES[n],s.url=r.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[l5]=s.isFromCache,this[$g]=Number(e.headers["content-length"])||void 0,this[Tw]=e,e.once("end",()=>{this[$g]=this[ef],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new Kw(a,this))}),e.once("aborted",()=>{this._beforeError(new Kw({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ie.default.object(r.cookieJar)&&o){let a=o.map(async l=>r.cookieJar.setCookie(l,i.toString()));r.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(r.followRedirect&&e.headers.location&&YPe.has(n)){if(e.resume(),this[Ri]&&(this[FP](),delete this[Ri],this[A5]()),(n===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[cl]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new TP(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new Al.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(c.username=r.username,c.password=r.password),this.redirects.push(u),r.url=c;for(let g of r.hooks.beforeRedirect)await g(r,s);this.emit("redirect",s,r),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(r.isStream&&r.throwHttpErrors&&!OPe.isResponseOk(s)){this._beforeError(new OP(s));return}e.on("readable",()=>{this[Mw]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Ow])if(!a.headersSent){for(let l in e.headers){let c=r.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:i,url:n}=r;SPe.default(e),this[FP]=s5.default(e,i,n);let s=r.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof s5.TimeoutError?new UP(l,this.timings,this):new fi(l.message,l,this),this._beforeError(l)}),this[A5]=FPe.default(e,this,JPe),this[Ri]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[cl],a=this.redirects.length===0?this:e;Ie.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new KP(l,this))})):(this._unlockWrite(),Ie.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((i,n)=>{Object.assign(r,NPe.default(e)),delete r.url;let s,o=NP.get(r.cache)(r,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});r.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,r,i,n,s;let{options:o}=this,{headers:a}=o;for(let b in a)if(Ie.default.undefined(a[b]))delete a[b];else if(Ie.default.null_(a[b]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${b}\` header`);if(o.decompress&&Ie.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=UPe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let b=await o.cookieJar.getCookieString(o.url.toString());Ie.default.nonEmptyString(b)&&(o.headers.cookie=b)}for(let b of o.hooks.beforeRequest){let S=await b(o);if(!Ie.default.undefined(S)){o.request=()=>S;break}}o.body&&this[cl]!==o.body&&(this[cl]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let b=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(b==null?void 0:b.groups){let{socketPath:S,path:k}=b.groups;Object.assign(o,{socketPath:S,path:k,host:""})}}let f=g.protocol==="https:",h;o.http2?h=PPe.auto:h=f?vPe.request:r5.request;let p=(e=o.request)!==null&&e!==void 0?e:h,m=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Ri]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(r=o.cacheOptions)===null||r===void 0?void 0:r.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=a5.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(b){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let b=await m(g,y);Ie.default.undefined(b)&&(b=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),GPe(b)?this._onRequest(b):this.writable?(this.once("finish",()=>{this._onResponse(b)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(b)}catch(b){throw b instanceof i5.CacheError?new MP(b,this):new fi(b.message,b,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new fi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[nf])return;let{options:r}=this,i=this.retryCount+1;this[nf]=!0,e instanceof fi||(e=new fi(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await TPe.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await r.retry.calculateDelay({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:KPe.default({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new fi(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new fi(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[g5]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Mw]=!0;let e=this[Tw];if(e&&!this[nf]){e.readableLength&&(this[Mw]=!1);let r;for(;(r=e.read())!==null;){this[ef]+=r.length,this[c5]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(r)}}}_write(e,r,i){let n=()=>{this._writeRequest(e,r,i)};this.requestInitialized?n():this[Ld].push(n)}_writeRequest(e,r,i){this[Ri].destroyed||(this._progressCallbacks.push(()=>{this[rf]+=Buffer.byteLength(e,r);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Ri].write(e,r,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ri in this)){e();return}if(this[Ri].destroyed){e();return}this[Ri].end(i=>{i||(this[tf]=this[rf],this.emit("uploadProgress",this.uploadProgress),this[Ri].emit("upload-complete")),e(i)})};this.requestInitialized?r():this[Ld].push(r)}_destroy(e,r){var i;this[nf]=!0,clearTimeout(this[g5]),Ri in this&&(this[FP](),((i=this[Tw])===null||i===void 0?void 0:i.complete)||this[Ri].destroy()),e!==null&&!Ie.default.undefined(e)&&!(e instanceof fi)&&(e=new fi(e.message,e,this)),r(e)}get _isAboutToError(){return this[nf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,i;return((r=(e=this[Ri])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!((i=this[u5])===null||i===void 0?void 0:i.complete)}get socket(){var e,r;return(r=(e=this[Ri])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[$g]?e=this[ef]/this[$g]:this[$g]===this[ef]?e=1:e=0,{percent:e,transferred:this[ef],total:this[$g]}}get uploadProgress(){let e;return this[tf]?e=this[rf]/this[tf]:this[tf]===this[rf]?e=1:e=0,{percent:e,transferred:this[rf],total:this[tf]}}get timings(){var e;return(e=this[Ri])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[l5]}pipe(e,r){if(this[c5])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof DP.ServerResponse&&this[Ow].add(e),super.pipe(e,r)}unpipe(e){return e instanceof DP.ServerResponse&&this[Ow].delete(e),super.unpipe(e),this}};qt.default=LP});var Od=w(po=>{"use strict";var WPe=po&&po.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),zPe=po&&po.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&WPe(e,t,r)};Object.defineProperty(po,"__esModule",{value:!0});po.CancelError=po.ParseError=void 0;var f5=Td(),h5=class extends f5.RequestError{constructor(e,r){let{options:i}=r.request;super(`${e.message} in "${i.url.toString()}"`,e,r.request);this.name="ParseError"}};po.ParseError=h5;var p5=class extends f5.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};po.CancelError=p5;zPe(Td(),po)});var C5=w(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var d5=Od(),_Pe=(t,e,r,i)=>{let{rawBody:n}=t;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":r(n.toString());if(e==="buffer")return n;throw new d5.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(s){throw new d5.ParseError(s,t)}};GP.default=_Pe});var jP=w(ul=>{"use strict";var VPe=ul&&ul.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),XPe=ul&&ul.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&VPe(e,t,r)};Object.defineProperty(ul,"__esModule",{value:!0});var ZPe=require("events"),$Pe=eA(),eDe=l4(),Uw=Od(),m5=C5(),E5=Td(),tDe=IP(),rDe=SP(),I5=kP(),iDe=["request","response","redirect","uploadProgress","downloadProgress"];function y5(t){let e,r,i=new ZPe.EventEmitter,n=new eDe((o,a,l)=>{let c=u=>{let g=new E5.default(void 0,t);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Uw.CancelError(g))),e=g,g.once("response",async p=>{var m;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await rDe.default(g),p.rawBody=y}catch(T){return}if(g._isAboutToError)return;let b=((m=p.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(b),{options:k}=g;if(S&&!k.decompress)p.body=y;else try{p.body=m5.default(p,k.responseType,k.parseJson,k.encoding)}catch(T){if(p.body=y.toString(),I5.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,Y]of k.hooks.afterResponse.entries())p=await Y(p,async j=>{let Z=E5.default.normalizeArguments(void 0,ie(N({},j),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),k);Z.hooks.afterResponse=Z.hooks.afterResponse.slice(0,T);for(let re of Z.hooks.beforeRetry)await re(Z);let J=y5(Z);return l(()=>{J.catch(()=>{}),J.cancel()}),J})}catch(T){g._beforeError(new Uw.RequestError(T.message,T,g));return}if(!I5.isResponseOk(p)){g._beforeError(new Uw.HTTPError(p));return}r=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:m}=g;if(p instanceof Uw.HTTPError&&!m.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,m)=>{var y,b;if(h===((y=m.request)===null||y===void 0?void 0:y.options.body)&&$Pe.default.nodeStream((b=m.request)===null||b===void 0?void 0:b.options.body)){f(m);return}c(p)}),tDe.default(g,i,iDe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=r.request;return m5.default(r,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ul.default=y5;XPe(Od(),ul)});var w5=w(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var nDe=Od();function sDe(t,...e){let r=(async()=>{if(t instanceof nDe.RequestError)try{for(let n of e)if(n)for(let s of n)t=await s(t)}catch(n){t=n}throw t})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}YP.default=sDe});var Q5=w(qP=>{"use strict";Object.defineProperty(qP,"__esModule",{value:!0});var B5=eA();function b5(t){for(let e of Object.values(t))(B5.default.plainObject(e)||B5.default.array(e))&&b5(e);return Object.freeze(t)}qP.default=b5});var S5=w(v5=>{"use strict";Object.defineProperty(v5,"__esModule",{value:!0})});var JP=w(Ls=>{"use strict";var oDe=Ls&&Ls.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),aDe=Ls&&Ls.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&oDe(e,t,r)};Object.defineProperty(Ls,"__esModule",{value:!0});Ls.defaultHandler=void 0;var k5=eA(),Ts=jP(),ADe=w5(),Hw=Td(),lDe=Q5(),cDe={RequestError:Ts.RequestError,CacheError:Ts.CacheError,ReadError:Ts.ReadError,HTTPError:Ts.HTTPError,MaxRedirectsError:Ts.MaxRedirectsError,TimeoutError:Ts.TimeoutError,ParseError:Ts.ParseError,CancelError:Ts.CancelError,UnsupportedProtocolError:Ts.UnsupportedProtocolError,UploadError:Ts.UploadError},uDe=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Gw}=Hw.default,x5=(...t)=>{let e;for(let r of t)e=Gw(void 0,r,e);return e},gDe=t=>t.isStream?new Hw.default(void 0,t):Ts.default(t),fDe=t=>"defaults"in t&&"options"in t.defaults,hDe=["get","post","put","patch","head","delete"];Ls.defaultHandler=(t,e)=>e(t);var P5=(t,e)=>{if(t)for(let r of t)r(e)},D5=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>t.handlers[l++](u,l===t.handlers.length?gDe:c);if(k5.default.plainObject(i)){let u=N(N({},i),n);Hw.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{P5(t.options.hooks.init,n),P5((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Gw(i,n,s!=null?s:t.options);if(g[Hw.kIsNormalizedAlready]=!0,u)throw new Ts.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return ADe.default(u,t.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[t.options],s=[...t._rawHandlers],o;for(let a of i)fDe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Ls.defaultHandler),s.length===0&&s.push(Ls.defaultHandler),D5({options:x5(...n),handlers:s,mutableDefaults:Boolean(o)})};let r=async function*(i,n){let s=Gw(i,n,t.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!k5.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of r(i,n))s.push(o);return s},e.paginate.each=r,e.stream=(i,n)=>e(i,ie(N({},n),{isStream:!0}));for(let i of hDe)e[i]=(n,s)=>e(n,ie(N({},s),{method:i})),e.stream[i]=(n,s)=>e(n,ie(N({},s),{method:i,isStream:!0}));return Object.assign(e,cDe),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:lDe.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=x5,e};Ls.default=D5;aDe(S5(),Ls)});var Yw=w((rA,jw)=>{"use strict";var pDe=rA&&rA.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),R5=rA&&rA.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&pDe(e,t,r)};Object.defineProperty(rA,"__esModule",{value:!0});var dDe=require("url"),F5=JP(),CDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let i of e){let n=i.split(";");if(n[1].includes("next")){r=n[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new dDe.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[F5.defaultHandler],mutableDefaults:!1},WP=F5.default(CDe);rA.default=WP;jw.exports=WP;jw.exports.default=WP;jw.exports.__esModule=!0;R5(JP(),rA);R5(jP(),rA)});var O5=w(sf=>{"use strict";var jot=require("net"),mDe=require("tls"),zP=require("http"),N5=require("https"),EDe=require("events"),Yot=require("assert"),IDe=require("util");sf.httpOverHttp=yDe;sf.httpsOverHttp=wDe;sf.httpOverHttps=BDe;sf.httpsOverHttps=bDe;function yDe(t){var e=new iA(t);return e.request=zP.request,e}function wDe(t){var e=new iA(t);return e.request=zP.request,e.createSocket=L5,e.defaultPort=443,e}function BDe(t){var e=new iA(t);return e.request=N5.request,e}function bDe(t){var e=new iA(t);return e.request=N5.request,e.createSocket=L5,e.defaultPort=443,e}function iA(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||zP.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=T5(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};iA.prototype.createSocket=function(e,r){var i=this,n={};i.sockets.push(n);var s=_P({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),gl("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){gl("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){gl("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return gl("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,r(f)}function u(g){o.removeAllListeners(),gl(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};iA.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function L5(t,e){var r=this;iA.prototype.createSocket.call(r,t,function(i){var n=t.request.getHeader("host"),s=_P({},r.options,{socket:i,servername:n?n.replace(/:.*$/,""):t.host}),o=mDe.connect(0,s);r.sockets[r.sockets.indexOf(i)]=o,e(o)})}function T5(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function _P(t){for(var e=1,r=arguments.length;e{M5.exports=O5()});var _5=w((Ww,eD)=>{var z5=Object.assign({},require("fs")),tD=function(){var t=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(t=t||__filename),function(e){e=e||{};var r=typeof e!="undefined"?e:{},i,n;r.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in r)r.hasOwnProperty(o)&&(s[o]=r[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return r.locateFile?r.locateFile(d,f):f+d}var p,m,y,b;g&&(u?f=require("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var D=Qa(E);return D?I?D:D.toString():(y||(y=z5),b||(b=require("path")),E=b.normalize(E),y.readFileSync(E,I?null:"utf8"))},m=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),X(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},r.inspect=function(){return"[Emscripten Module object]"});var S=r.print||console.log.bind(console),k=r.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(r[o]=s[o]);s=null,r.arguments&&(a=r.arguments),r.thisProgram&&(l=r.thisProgram),r.quit&&(c=r.quit);var T=16;function Y(d,E){return E||(E=T),Math.ceil(d/E)*E}var j=0,Z=function(d){j=d},J;r.wasmBinary&&(J=r.wasmBinary);var re=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Sr("no native wasm support detected");function ee(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return de[d>>0];case"i8":return de[d>>0];case"i16":return Qe[d>>1];case"i32":return fe[d>>2];case"i64":return fe[d>>2];case"float":return Ht[d>>2];case"double":return Mt[d>>3];default:Sr("invalid type for getValue: "+E)}return null}var A,oe=!1,le;function X(d,E){d||Sr("Assertion failed: "+E)}function O(d){var E=r["_"+d];return X(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function L(d,E,I,D,M){var _={string:function(nt){var It=0;if(nt!=null&&nt!==0){var ke=(nt.length<<2)+1;It=B(ke),be(nt,It,ke)}return It},array:function(nt){var It=B(nt.length);return Ue(nt,It),It}};function ne(nt){return E==="string"?te(nt):E==="boolean"?Boolean(nt):nt}var Be=O(d),Ee=[],_e=0;if(D)for(var ot=0;ot=D);)++M;if(M-E>16&&d.subarray&&Ce)return Ce.decode(d.subarray(E,M));for(var _="";E>10,56320|_e&1023)}}return _}function te(d,E){return d?Oe(V,d,E):""}function se(d,E,I,D){if(!(D>0))return 0;for(var M=I,_=I+D-1,ne=0;ne=55296&&Be<=57343){var Ee=d.charCodeAt(++ne);Be=65536+((Be&1023)<<10)|Ee&1023}if(Be<=127){if(I>=_)break;E[I++]=Be}else if(Be<=2047){if(I+1>=_)break;E[I++]=192|Be>>6,E[I++]=128|Be&63}else if(Be<=65535){if(I+2>=_)break;E[I++]=224|Be>>12,E[I++]=128|Be>>6&63,E[I++]=128|Be&63}else{if(I+3>=_)break;E[I++]=240|Be>>18,E[I++]=128|Be>>12&63,E[I++]=128|Be>>6&63,E[I++]=128|Be&63}}return E[I]=0,I-M}function be(d,E,I){return se(d,V,E,I)}function he(d){for(var E=0,I=0;I=55296&&D<=57343&&(D=65536+((D&1023)<<10)|d.charCodeAt(++I)&1023),D<=127?++E:D<=2047?E+=2:D<=65535?E+=3:E+=4}return E}function Fe(d){var E=he(d)+1,I=Et(E);return I&&se(d,de,I,E),I}function Ue(d,E){de.set(d,E)}function xe(d,E){return d%E>0&&(d+=E-d%E),d}var Se,de,V,Qe,ce,fe,gt,Ht,Mt;function mi(d){Se=d,r.HEAP8=de=new Int8Array(d),r.HEAP16=Qe=new Int16Array(d),r.HEAP32=fe=new Int32Array(d),r.HEAPU8=V=new Uint8Array(d),r.HEAPU16=ce=new Uint16Array(d),r.HEAPU32=gt=new Uint32Array(d),r.HEAPF32=Ht=new Float32Array(d),r.HEAPF64=Mt=new Float64Array(d)}var Gt=r.INITIAL_MEMORY||16777216,Qr,Ti=[],Vs=[],Un=[],Hn=!1;function vr(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)ya(r.preRun.shift());ko(Ti)}function Gn(){Hn=!0,!r.noFSInit&&!v.init.initialized&&v.init(),hs.init(),ko(Vs)}function gs(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Ru(r.postRun.shift());ko(Un)}function ya(d){Ti.unshift(d)}function kA(d){Vs.unshift(d)}function Ru(d){Un.unshift(d)}var fs=0,xA=null,wa=null;function Fu(d){return d}function PA(d){fs++,r.monitorRunDependencies&&r.monitorRunDependencies(fs)}function DA(d){if(fs--,r.monitorRunDependencies&&r.monitorRunDependencies(fs),fs==0&&(xA!==null&&(clearInterval(xA),xA=null),wa)){var E=wa;wa=null,E()}}r.preloadedImages={},r.preloadedAudios={};function Sr(d){r.onAbort&&r.onAbort(d),d+="",k(d),oe=!0,le=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var jl="data:application/octet-stream;base64,";function Nu(d){return d.startsWith(jl)}var So="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";Nu(So)||(So=h(So));function Lu(d){try{if(d==So&&J)return new Uint8Array(J);var E=Qa(d);if(E)return E;if(m)return m(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){Sr(I)}}function Sh(d,E){var I,D,M;try{M=Lu(d),D=new WebAssembly.Module(M),I=new WebAssembly.Instance(D,E)}catch(ne){var _=ne.toString();throw k("failed to compile wasm module: "+_),(_.includes("imported Memory")||_.includes("memory import"))&&k("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ne}return[I,D]}function kh(){var d={a:va};function E(M,_){var ne=M.exports;r.asm=ne,A=r.asm.u,mi(A.buffer),Qr=r.asm.pa,kA(r.asm.v),DA("wasm-instantiate")}if(PA("wasm-instantiate"),r.instantiateWasm)try{var I=r.instantiateWasm(d,E);return I}catch(M){return k("Module.instantiateWasm callback failed with error: "+M),!1}var D=Sh(So,d);return E(D[0]),r.asm}var ae,Oi;function ko(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(r);continue}var I=E.func;typeof I=="number"?E.arg===void 0?Qr.get(I)():Qr.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function jn(d,E){var I=new Date(fe[d>>2]*1e3);fe[E>>2]=I.getUTCSeconds(),fe[E+4>>2]=I.getUTCMinutes(),fe[E+8>>2]=I.getUTCHours(),fe[E+12>>2]=I.getUTCDate(),fe[E+16>>2]=I.getUTCMonth(),fe[E+20>>2]=I.getUTCFullYear()-1900,fe[E+24>>2]=I.getUTCDay(),fe[E+36>>2]=0,fe[E+32>>2]=0;var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[E+28>>2]=M,jn.GMTString||(jn.GMTString=Fe("GMT")),fe[E+40>>2]=jn.GMTString,E}function Tu(d,E){return jn(d,E)}var vt={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,D=d.length-1;D>=0;D--){var M=d[D];M==="."?d.splice(D,1):M===".."?(d.splice(D,1),I++):I&&(d.splice(D,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=vt.normalizeArray(d.split("/").filter(function(D){return!!D}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=vt.splitPath(d),I=E[0],D=E[1];return!I&&!D?".":(D&&(D=D.substr(0,D.length-1)),I+D)},basename:function(d){if(d==="/")return"/";d=vt.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return vt.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return vt.normalize(d.join("/"))},join2:function(d,E){return vt.normalize(d+"/"+E)}};function Yl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=require("crypto");return function(){return E.randomBytes(1)[0]}}catch(I){}return function(){Sr("randomDevice")}}var Yn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var D=I>=0?arguments[I]:v.cwd();if(typeof D!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!D)return"";d=D+"/"+d,E=D.charAt(0)==="/"}return d=vt.normalizeArray(d.split("/").filter(function(M){return!!M}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=Yn.resolve(d).substr(1),E=Yn.resolve(E).substr(1);function I(_e){for(var ot=0;ot<_e.length&&_e[ot]==="";ot++);for(var wt=_e.length-1;wt>=0&&_e[wt]==="";wt--);return ot>wt?[]:_e.slice(ot,wt-ot+1)}for(var D=I(d.split("/")),M=I(E.split("/")),_=Math.min(D.length,M.length),ne=_,Be=0;Be<_;Be++)if(D[Be]!==M[Be]){ne=Be;break}for(var Ee=[],Be=ne;Be0?E=D.slice(0,M).toString("utf-8"):E=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` -`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;d.input=FA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(S(Oe(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(S(Oe(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(k(Oe(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(k(Oe(d.output,0)),d.output=[])}}};function ps(d){for(var E=Y(d,65536),I=Et(E);d=E)){var D=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var M=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(M.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=v.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,v.isDir(d.mode)?E.size=4096:v.isFile(d.mode)?E.size=d.usedBytes:v.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&pt.resizeFileStorage(d,E.size)},lookup:function(d,E){throw v.genericErrors[44]},mknod:function(d,E,I,D){return pt.createNode(d,E,I,D)},rename:function(d,E,I){if(v.isDir(d.mode)){var D;try{D=v.lookupNode(E,I)}catch(_){}if(D)for(var M in D.contents)throw new v.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=v.lookupNode(d,E);for(var D in I.contents)throw new v.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var D=pt.createNode(d,E,511|40960,0);return D.link=I,D},readlink:function(d){if(!v.isLink(d.mode))throw new v.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,D,M){var _=d.node.contents;if(M>=d.node.usedBytes)return 0;var ne=Math.min(d.node.usedBytes-M,D);if(ne>8&&_.subarray)E.set(_.subarray(M,M+ne),I);else for(var Be=0;Be0||D+I>2)}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),vt.join.apply(null,E)},flagsForNode:function(d){d&=~2097152,d&=~2048,d&=~32768,d&=~524288;var E=0;for(var I in lt.flagsForNodeMap)d&I&&(E|=lt.flagsForNodeMap[I],d^=I);if(d)throw new v.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=lt.realPath(d),I;try{I=Me.lstatSync(E)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}return lt.isWindows&&!I.blksize&&(I.blksize=4096),lt.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=lt.realPath(d);try{if(E.mode!==void 0&&(Me.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var D=new Date(E.timestamp);Me.utimesSync(I,D,D)}E.size!==void 0&&Me.truncateSync(I,E.size)}catch(M){throw M.code?new v.ErrnoError(lt.convertNodeCode(M)):M}},lookup:function(d,E){var I=vt.join2(lt.realPath(d),E),D=lt.getMode(I);return lt.createNode(d,E,D)},mknod:function(d,E,I,D){var M=lt.createNode(d,E,I,D),_=lt.realPath(M);try{v.isDir(M.mode)?Me.mkdirSync(_,M.mode):Me.writeFileSync(_,"",{mode:M.mode})}catch(ne){throw ne.code?new v.ErrnoError(lt.convertNodeCode(ne)):ne}return M},rename:function(d,E,I){var D=lt.realPath(d),M=vt.join2(lt.realPath(E),I);try{Me.renameSync(D,M)}catch(_){throw _.code?new v.ErrnoError(lt.convertNodeCode(_)):_}d.name=I},unlink:function(d,E){var I=vt.join2(lt.realPath(d),E);try{Me.unlinkSync(I)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}},rmdir:function(d,E){var I=vt.join2(lt.realPath(d),E);try{Me.rmdirSync(I)}catch(D){throw D.code?new v.ErrnoError(lt.convertNodeCode(D)):D}},readdir:function(d){var E=lt.realPath(d);try{return Me.readdirSync(E)}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}},symlink:function(d,E,I){var D=vt.join2(lt.realPath(d),E);try{Me.symlinkSync(I,D)}catch(M){throw M.code?new v.ErrnoError(lt.convertNodeCode(M)):M}},readlink:function(d){var E=lt.realPath(d);try{return E=Me.readlinkSync(E),E=Ku.relative(Ku.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=lt.realPath(d.node);try{v.isFile(d.node.mode)&&(d.nfd=Me.openSync(E,lt.flagsForNode(d.flags)))}catch(I){throw I.code?new v.ErrnoError(lt.convertNodeCode(I)):I}},close:function(d){try{v.isFile(d.node.mode)&&d.nfd&&Me.closeSync(d.nfd)}catch(E){throw E.code?new v.ErrnoError(lt.convertNodeCode(E)):E}},read:function(d,E,I,D,M){if(D===0)return 0;try{return Me.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}},write:function(d,E,I,D,M){try{return Me.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}},llseek:function(d,E,I){var D=E;if(I===1)D+=d.position;else if(I===2&&v.isFile(d.node.mode))try{var M=Me.fstatSync(d.nfd);D+=M.size}catch(_){throw new v.ErrnoError(lt.convertNodeCode(_))}if(D<0)throw new v.ErrnoError(28);return D},mmap:function(d,E,I,D,M,_){if(E!==0)throw new v.ErrnoError(28);if(!v.isFile(d.node.mode))throw new v.ErrnoError(43);var ne=ps(I);return lt.stream_ops.read(d,de,ne,I,D),{ptr:ne,allocated:!0}},msync:function(d,E,I,D,M){if(!v.isFile(d.node.mode))throw new v.ErrnoError(43);if(M&2)return 0;var _=lt.stream_ops.write(d,E,0,D,I,!1);return 0}}},mn={lookupPath:function(d){return{path:d,node:{mode:lt.getMode(d)}}},createStandardStreams:function(){v.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)v.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){v.isDir(d)?Me.mkdirSync(d,E):Me.writeFileSync(d,"",{mode:E})},mkdir:function(){Me.mkdirSync.apply(void 0,arguments)},symlink:function(){Me.symlinkSync.apply(void 0,arguments)},rename:function(){Me.renameSync.apply(void 0,arguments)},rmdir:function(){Me.rmdirSync.apply(void 0,arguments)},readdir:function(){Me.readdirSync.apply(void 0,arguments)},unlink:function(){Me.unlinkSync.apply(void 0,arguments)},readlink:function(){return Me.readlinkSync.apply(void 0,arguments)},stat:function(){return Me.statSync.apply(void 0,arguments)},lstat:function(){return Me.lstatSync.apply(void 0,arguments)},chmod:function(){Me.chmodSync.apply(void 0,arguments)},fchmod:function(){Me.fchmodSync.apply(void 0,arguments)},chown:function(){Me.chownSync.apply(void 0,arguments)},fchown:function(){Me.fchownSync.apply(void 0,arguments)},truncate:function(){Me.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new v.ErrnoError(28);Me.ftruncateSync.apply(void 0,arguments)},utime:function(){Me.utimesSync.apply(void 0,arguments)},open:function(d,E,I,D){typeof E=="string"&&(E=Zs.modeStringToFlags(E));var M=Me.openSync(d,lt.flagsForNode(E),I),_=D!=null?D:v.nextfd(M),ne={fd:_,nfd:M,position:0,path:d,flags:E,seekable:!0};return v.streams[_]=ne,ne},close:function(d){d.stream_ops||Me.closeSync(d.nfd),v.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return Zs.llseek(d,E,I);var D=E;if(I===1)D+=d.position;else if(I===2)D+=Me.fstatSync(d.nfd).size;else if(I!==0)throw new v.ErrnoError(xo.EINVAL);if(D<0)throw new v.ErrnoError(xo.EINVAL);return d.position=D,D},read:function(d,E,I,D,M){if(d.stream_ops)return Zs.read(d,E,I,D,M);var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ne=Me.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ne),ne},write:function(d,E,I,D,M){if(d.stream_ops)return Zs.write(d,E,I,D,M);d.flags&+"1024"&&v.llseek(d,0,+"2");var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ne=Me.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ne),ne},allocate:function(){throw new v.ErrnoError(xo.EOPNOTSUPP)},mmap:function(d,E,I,D,M,_){if(d.stream_ops)return Zs.mmap(d,E,I,D,M,_);if(E!==0)throw new v.ErrnoError(28);var ne=ps(I);return v.read(d,de,ne,I,D),{ptr:ne,allocated:!0}},msync:function(d,E,I,D,M){return d.stream_ops?Zs.msync(d,E,I,D,M):(M&2||v.write(d,E,0,D,I),0)},munmap:function(){return 0},ioctl:function(){throw new v.ErrnoError(xo.ENOTTY)}},v={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Yn.resolve(v.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var D in I)E[D]===void 0&&(E[D]=I[D]);if(E.recurse_count>8)throw new v.ErrnoError(32);for(var M=vt.normalizeArray(d.split("/").filter(function(ut){return!!ut}),!1),_=v.root,ne="/",Be=0;Be40)throw new v.ErrnoError(32)}}return{path:ne,node:_}},getPath:function(d){for(var E;;){if(v.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,D=0;D>>0)%v.nameTable.length},hashAddNode:function(d){var E=v.hashName(d.parent.id,d.name);d.name_next=v.nameTable[E],v.nameTable[E]=d},hashRemoveNode:function(d){var E=v.hashName(d.parent.id,d.name);if(v.nameTable[E]===d)v.nameTable[E]=d.name_next;else for(var I=v.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=v.mayLookup(d);if(I)throw new v.ErrnoError(I,d);for(var D=v.hashName(d.id,E),M=v.nameTable[D];M;M=M.name_next){var _=M.name;if(M.parent.id===d.id&&_===E)return M}return v.lookup(d,E)},createNode:function(d,E,I,D){var M=new v.FSNode(d,E,I,D);return v.hashAddNode(M),M},destroyNode:function(d){v.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)==32768},isDir:function(d){return(d&61440)==16384},isLink:function(d){return(d&61440)==40960},isChrdev:function(d){return(d&61440)==8192},isBlkdev:function(d){return(d&61440)==24576},isFIFO:function(d){return(d&61440)==4096},isSocket:function(d){return(d&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=v.flagModes[d];if(typeof E=="undefined")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return v.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=v.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=v.lookupNode(d,E);return 20}catch(D){}return v.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var D;try{D=v.lookupNode(d,E)}catch(_){return _.errno}var M=v.nodePermissions(d,"wx");if(M)return M;if(I){if(!v.isDir(D.mode))return 54;if(v.isRoot(D)||v.getPath(D)===v.cwd())return 10}else if(v.isDir(D.mode))return 31;return 0},mayOpen:function(d,E){return d?v.isLink(d.mode)?32:v.isDir(d.mode)&&(v.flagsToPermissionString(E)!=="r"||E&512)?31:v.nodePermissions(d,v.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||v.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!v.streams[I])return I;throw new v.ErrnoError(33)},getStream:function(d){return v.streams[d]},createStream:function(d,E,I){v.FSStream||(v.FSStream=function(){},v.FSStream.prototype={object:{get:function(){return this.node},set:function(ne){this.node=ne}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var D=new v.FSStream;for(var M in d)D[M]=d[M];d=D;var _=v.nextfd(E,I);return d.fd=_,v.streams[_]=d,d},closeStream:function(d){v.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=v.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new v.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){v.devices[d]={stream_ops:E}},getDevice:function(d){return v.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var D=I.pop();E.push(D),I.push.apply(I,D.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),v.syncFSRequests++,v.syncFSRequests>1&&k("warning: "+v.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=v.getMounts(v.root.mount),D=0;function M(ne){return v.syncFSRequests--,E(ne)}function _(ne){if(ne)return _.errored?void 0:(_.errored=!0,M(ne));++D>=I.length&&M(null)}I.forEach(function(ne){if(!ne.type.syncfs)return _(null);ne.type.syncfs(ne,d,_)})},mount:function(d,E,I){var D=I==="/",M=!I,_;if(D&&v.root)throw new v.ErrnoError(10);if(!D&&!M){var ne=v.lookupPath(I,{follow_mount:!1});if(I=ne.path,_=ne.node,v.isMountpoint(_))throw new v.ErrnoError(10);if(!v.isDir(_.mode))throw new v.ErrnoError(54)}var Be={type:d,opts:E,mountpoint:I,mounts:[]},Ee=d.mount(Be);return Ee.mount=Be,Be.root=Ee,D?v.root=Ee:_&&(_.mounted=Be,_.mount&&_.mount.mounts.push(Be)),Ee},unmount:function(d){var E=v.lookupPath(d,{follow_mount:!1});if(!v.isMountpoint(E.node))throw new v.ErrnoError(28);var I=E.node,D=I.mounted,M=v.getMounts(D);Object.keys(v.nameTable).forEach(function(ne){for(var Be=v.nameTable[ne];Be;){var Ee=Be.name_next;M.includes(Be.mount)&&v.destroyNode(Be),Be=Ee}}),I.mounted=null;var _=I.mount.mounts.indexOf(D);I.mount.mounts.splice(_,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var D=v.lookupPath(d,{parent:!0}),M=D.node,_=vt.basename(d);if(!_||_==="."||_==="..")throw new v.ErrnoError(28);var ne=v.mayCreate(M,_);if(ne)throw new v.ErrnoError(ne);if(!M.node_ops.mknod)throw new v.ErrnoError(63);return M.node_ops.mknod(M,_,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,v.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=511|512,E|=16384,v.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),D="",M=0;Mthis.length-1||ut<0)){var nt=ut%this.chunkSize,It=ut/this.chunkSize|0;return this.getter(It)[nt]}},_.prototype.setDataGetter=function(ut){this.getter=ut},_.prototype.cacheLength=function(){var ut=new XMLHttpRequest;if(ut.open("HEAD",I,!1),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+I+". Status: "+ut.status);var nt=Number(ut.getResponseHeader("Content-length")),It,ke=(It=ut.getResponseHeader("Accept-Ranges"))&&It==="bytes",Wn=(It=ut.getResponseHeader("Content-Encoding"))&&It==="gzip",Mi=1024*1024;ke||(Mi=nt);var MA=function(ds,Sa){if(ds>Sa)throw new Error("invalid range ("+ds+", "+Sa+") or no bytes requested!");if(Sa>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var qr=new XMLHttpRequest;if(qr.open("GET",I,!1),nt!==Mi&&qr.setRequestHeader("Range","bytes="+ds+"-"+Sa),typeof Uint8Array!="undefined"&&(qr.responseType="arraybuffer"),qr.overrideMimeType&&qr.overrideMimeType("text/plain; charset=x-user-defined"),qr.send(null),!(qr.status>=200&&qr.status<300||qr.status===304))throw new Error("Couldn't load "+I+". Status: "+qr.status);return qr.response!==void 0?new Uint8Array(qr.response||[]):FA(qr.responseText||"",!0)},Yr=this;Yr.setDataGetter(function(ds){var Sa=ds*Mi,qr=(ds+1)*Mi-1;if(qr=Math.min(qr,nt-1),typeof Yr.chunks[ds]=="undefined"&&(Yr.chunks[ds]=MA(Sa,qr)),typeof Yr.chunks[ds]=="undefined")throw new Error("doXHR failed!");return Yr.chunks[ds]}),(Wn||!nt)&&(Mi=nt=1,nt=this.getter(0).length,Mi=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=Mi,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ne=new _;Object.defineProperties(ne,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Be={isDevice:!1,contents:ne}}else var Be={isDevice:!1,url:I};var Ee=v.createFile(d,E,Be,D,M);Be.contents?Ee.contents=Be.contents:Be.url&&(Ee.contents=null,Ee.url=Be.url),Object.defineProperties(Ee,{usedBytes:{get:function(){return this.contents.length}}});var _e={},ot=Object.keys(Ee.stream_ops);return ot.forEach(function(wt){var ut=Ee.stream_ops[wt];_e[wt]=function(){return v.forceLoadFile(Ee),ut.apply(null,arguments)}}),_e.read=function(ut,nt,It,ke,Wn){v.forceLoadFile(Ee);var Mi=ut.node.contents;if(Wn>=Mi.length)return 0;var MA=Math.min(Mi.length-Wn,ke);if(Mi.slice)for(var Yr=0;Yr>2]=D.dev,fe[I+4>>2]=0,fe[I+8>>2]=D.ino,fe[I+12>>2]=D.mode,fe[I+16>>2]=D.nlink,fe[I+20>>2]=D.uid,fe[I+24>>2]=D.gid,fe[I+28>>2]=D.rdev,fe[I+32>>2]=0,Oi=[D.size>>>0,(ae=D.size,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[I+40>>2]=Oi[0],fe[I+44>>2]=Oi[1],fe[I+48>>2]=4096,fe[I+52>>2]=D.blocks,fe[I+56>>2]=D.atime.getTime()/1e3|0,fe[I+60>>2]=0,fe[I+64>>2]=D.mtime.getTime()/1e3|0,fe[I+68>>2]=0,fe[I+72>>2]=D.ctime.getTime()/1e3|0,fe[I+76>>2]=0,Oi=[D.ino>>>0,(ae=D.ino,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[I+80>>2]=Oi[0],fe[I+84>>2]=Oi[1],0},doMsync:function(d,E,I,D,M){var _=V.slice(d,d+I);v.msync(E,_,M,I,D)},doMkdir:function(d,E){return d=vt.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),v.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return v.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var D=v.readlink(d),M=Math.min(I,he(D)),_=de[E+M];return be(D,E,I+1),de[E+M]=_,M},doAccess:function(d,E){if(E&~7)return-28;var I,D=v.lookupPath(d,{follow:!0});if(I=D.node,!I)return-44;var M="";return E&4&&(M+="r"),E&2&&(M+="w"),E&1&&(M+="x"),M&&v.nodePermissions(I,M)?-2:0},doDup:function(d,E,I){var D=v.getStream(I);return D&&v.close(D),v.open(d,E,0,I,I).fd},doReadv:function(d,E,I,D){for(var M=0,_=0;_>2],Be=fe[E+(_*8+4)>>2],Ee=v.read(d,de,ne,Be,D);if(Ee<0)return-1;if(M+=Ee,Ee>2],Be=fe[E+(_*8+4)>>2],Ee=v.write(d,de,ne,Be,D);if(Ee<0)return-1;M+=Ee}return M},varargs:void 0,get:function(){Tt.varargs+=4;var d=fe[Tt.varargs-4>>2];return d},getStr:function(d){var E=te(d);return E},getStreamFromFD:function(d){var E=v.getStream(d);if(!E)throw new v.ErrnoError(8);return E},get64:function(d,E){return d}};function Ou(d,E){try{return d=Tt.getStr(d),v.chmod(d,E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function ql(d){return fe[Rt()>>2]=d,d}function xh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 0:{var M=Tt.get();if(M<0)return-28;var _;return _=v.open(D.path,D.flags,0,M),_.fd}case 1:case 2:return 0;case 3:return D.flags;case 4:{var M=Tt.get();return D.flags|=M,0}case 12:{var M=Tt.get(),ne=0;return Qe[M+ne>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return ql(28),-1;default:return-28}}catch(Be){return(typeof v=="undefined"||!(Be instanceof v.ErrnoError))&&Sr(Be),-Be.errno}}function Ph(d,E){try{var I=Tt.getStreamFromFD(d);return Tt.doStat(v.stat,I.path,E)}catch(D){return(typeof v=="undefined"||!(D instanceof v.ErrnoError))&&Sr(D),-D.errno}}function Dh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 21509:case 21505:return D.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return D.tty?0:-59;case 21519:{if(!D.tty)return-59;var M=Tt.get();return fe[M>>2]=0,0}case 21520:return D.tty?-28:-59;case 21531:{var M=Tt.get();return v.ioctl(D,E,M)}case 21523:return D.tty?0:-59;case 21524:return D.tty?0:-59;default:Sr("bad ioctl syscall "+E)}}catch(_){return(typeof v=="undefined"||!(_ instanceof v.ErrnoError))&&Sr(_),-_.errno}}function Rh(d,E,I){Tt.varargs=I;try{var D=Tt.getStr(d),M=I?Tt.get():0,_=v.open(D,E,M);return _.fd}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),-ne.errno}}function Fh(d,E){try{return d=Tt.getStr(d),E=Tt.getStr(E),v.rename(d,E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function G(d){try{return d=Tt.getStr(d),v.rmdir(d),0}catch(E){return(typeof v=="undefined"||!(E instanceof v.ErrnoError))&&Sr(E),-E.errno}}function yt(d,E){try{return d=Tt.getStr(d),Tt.doStat(v.stat,d,E)}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),-I.errno}}function RA(d){try{return d=Tt.getStr(d),v.unlink(d),0}catch(E){return(typeof v=="undefined"||!(E instanceof v.ErrnoError))&&Sr(E),-E.errno}}function $i(d,E,I){V.copyWithin(d,E,E+I)}function Jl(d){try{return A.grow(d-Se.byteLength+65535>>>16),mi(A.buffer),1}catch(E){}}function $e(d){var E=V.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var D=1;D<=4;D*=2){var M=E*(1+.2/D);M=Math.min(M,d+100663296);var _=Math.min(I,xe(Math.max(d,M),65536)),ne=Jl(_);if(ne)return!0}return!1}function Ba(d){try{var E=Tt.getStreamFromFD(d);return v.close(E),0}catch(I){return(typeof v=="undefined"||!(I instanceof v.ErrnoError))&&Sr(I),I.errno}}function Mu(d,E){try{var I=Tt.getStreamFromFD(d),D=I.tty?2:v.isDir(I.mode)?3:v.isLink(I.mode)?7:4;return de[E>>0]=D,0}catch(M){return(typeof v=="undefined"||!(M instanceof v.ErrnoError))&&Sr(M),M.errno}}function kE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doReadv(M,E,I);return fe[D>>2]=_,0}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),ne.errno}}function Nh(d,E,I,D,M){try{var _=Tt.getStreamFromFD(d),ne=4294967296,Be=I*ne+(E>>>0),Ee=9007199254740992;return Be<=-Ee||Be>=Ee?-61:(v.llseek(_,Be,D),Oi=[_.position>>>0,(ae=_.position,+Math.abs(ae)>=1?ae>0?(Math.min(+Math.floor(ae/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ae-+(~~ae>>>0))/4294967296)>>>0:0)],fe[M>>2]=Oi[0],fe[M+4>>2]=Oi[1],_.getdents&&Be===0&&D===0&&(_.getdents=null),0)}catch(_e){return(typeof v=="undefined"||!(_e instanceof v.ErrnoError))&&Sr(_e),_e.errno}}function xE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doWritev(M,E,I);return fe[D>>2]=_,0}catch(ne){return(typeof v=="undefined"||!(ne instanceof v.ErrnoError))&&Sr(ne),ne.errno}}function gr(d){Z(d)}function qn(d){var E=Date.now()/1e3|0;return d&&(fe[d>>2]=E),E}function Wl(){if(Wl.called)return;Wl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),D=E.getTimezoneOffset(),M=I.getTimezoneOffset(),_=Math.max(D,M);fe[oQ()>>2]=_*60,fe[sQ()>>2]=Number(D!=M);function ne(wt){var ut=wt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ut?ut[1]:"GMT"}var Be=ne(E),Ee=ne(I),_e=Fe(Be),ot=Fe(Ee);M>2]=_e,fe[qu()+4>>2]=ot):(fe[qu()>>2]=ot,fe[qu()+4>>2]=_e)}function Lh(d){Wl();var E=Date.UTC(fe[d+20>>2]+1900,fe[d+16>>2],fe[d+12>>2],fe[d+8>>2],fe[d+4>>2],fe[d>>2],0),I=new Date(E);fe[d+24>>2]=I.getUTCDay();var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[d+28>>2]=M,I.getTime()/1e3|0}var Xs=function(d,E,I,D){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=v.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=D},ba=292|73,En=146;if(Object.defineProperties(Xs.prototype,{read:{get:function(){return(this.mode&ba)===ba},set:function(d){d?this.mode|=ba:this.mode&=~ba}},write:{get:function(){return(this.mode&En)===En},set:function(d){d?this.mode|=En:this.mode&=~En}},isFolder:{get:function(){return v.isDir(this.mode)}},isDevice:{get:function(){return v.isChrdev(this.mode)}}}),v.FSNode=Xs,v.staticInit(),g){var Me=z5,Ku=require("path");lt.staticInit()}if(g){var zl=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new v.ErrnoError(xo[E.code]):E}}},Zs=Object.assign({},v);for(var _l in mn)v[_l]=zl(mn[_l])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function FA(d,E,I){var D=I>0?I:he(d)+1,M=new Array(D),_=se(d,M,0,M.length);return E&&(M.length=_),M}var Uu=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",D,M,_,ne,Be,Ee,_e,ot=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ne=E.indexOf(d.charAt(ot++)),Be=E.indexOf(d.charAt(ot++)),Ee=E.indexOf(d.charAt(ot++)),_e=E.indexOf(d.charAt(ot++)),D=ne<<2|Be>>4,M=(Be&15)<<4|Ee>>2,_=(Ee&3)<<6|_e,I=I+String.fromCharCode(D),Ee!==64&&(I=I+String.fromCharCode(M)),_e!==64&&(I=I+String.fromCharCode(_));while(ot0||(vr(),fs>0))return;function E(){He||(He=!0,r.calledRun=!0,!oe&&(Gn(),i(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),gs()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),E()},1)):E()}if(r.run=OA,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return OA(),e}}();typeof Ww=="object"&&typeof eD=="object"?eD.exports=tD:typeof define=="function"&&define.amd?define([],function(){return tD}):typeof Ww=="object"&&(Ww.createModule=tD)});var I_=w((xat,E_)=>{function GDe(t,e){for(var r=-1,i=t==null?0:t.length,n=Array(i);++r{var jDe=Array.isArray;y_.exports=jDe});var S_=w((Dat,w_)=>{var B_=Hc(),YDe=I_(),qDe=Ms(),JDe=yd(),WDe=1/0,b_=B_?B_.prototype:void 0,Q_=b_?b_.toString:void 0;function v_(t){if(typeof t=="string")return t;if(qDe(t))return YDe(t,v_)+"";if(JDe(t))return Q_?Q_.call(t):"";var e=t+"";return e=="0"&&1/t==-WDe?"-0":e}w_.exports=v_});var of=w((Rat,k_)=>{var zDe=S_();function _De(t){return t==null?"":zDe(t)}k_.exports=_De});var AD=w((Fat,x_)=>{function VDe(t,e,r){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var s=Array(n);++i{var XDe=AD();function ZDe(t,e,r){var i=t.length;return r=r===void 0?i:r,!e&&r>=i?t:XDe(t,e,r)}P_.exports=ZDe});var lD=w((Lat,R_)=>{var $De="\\ud800-\\udfff",eRe="\\u0300-\\u036f",tRe="\\ufe20-\\ufe2f",rRe="\\u20d0-\\u20ff",iRe=eRe+tRe+rRe,nRe="\\ufe0e\\ufe0f",sRe="\\u200d",oRe=RegExp("["+sRe+$De+iRe+nRe+"]");function aRe(t){return oRe.test(t)}R_.exports=aRe});var N_=w((Tat,F_)=>{function ARe(t){return t.split("")}F_.exports=ARe});var G_=w((Oat,L_)=>{var T_="\\ud800-\\udfff",lRe="\\u0300-\\u036f",cRe="\\ufe20-\\ufe2f",uRe="\\u20d0-\\u20ff",gRe=lRe+cRe+uRe,fRe="\\ufe0e\\ufe0f",hRe="["+T_+"]",cD="["+gRe+"]",uD="\\ud83c[\\udffb-\\udfff]",pRe="(?:"+cD+"|"+uD+")",O_="[^"+T_+"]",M_="(?:\\ud83c[\\udde6-\\uddff]){2}",K_="[\\ud800-\\udbff][\\udc00-\\udfff]",dRe="\\u200d",U_=pRe+"?",H_="["+fRe+"]?",CRe="(?:"+dRe+"(?:"+[O_,M_,K_].join("|")+")"+H_+U_+")*",mRe=H_+U_+CRe,ERe="(?:"+[O_+cD+"?",cD,M_,K_,hRe].join("|")+")",IRe=RegExp(uD+"(?="+uD+")|"+ERe+mRe,"g");function yRe(t){return t.match(IRe)||[]}L_.exports=yRe});var Y_=w((Mat,j_)=>{var wRe=N_(),BRe=lD(),bRe=G_();function QRe(t){return BRe(t)?bRe(t):wRe(t)}j_.exports=QRe});var J_=w((Kat,q_)=>{var vRe=D_(),SRe=lD(),kRe=Y_(),xRe=of();function PRe(t){return function(e){e=xRe(e);var r=SRe(e)?kRe(e):void 0,i=r?r[0]:e.charAt(0),n=r?vRe(r,1).join(""):e.slice(1);return i[t]()+n}}q_.exports=PRe});var z_=w((Uat,W_)=>{var DRe=J_(),RRe=DRe("toUpperCase");W_.exports=RRe});var rB=w((Hat,__)=>{var FRe=of(),NRe=z_();function LRe(t){return NRe(FRe(t).toLowerCase())}__.exports=LRe});var V_=w((Gat,iB)=>{function TRe(){var t=0,e=1,r=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,m=15,y=16,b=17,S=0,k=1,T=2,Y=3,j=4;function Z(A,oe){return 55296<=A.charCodeAt(oe)&&A.charCodeAt(oe)<=56319&&56320<=A.charCodeAt(oe+1)&&A.charCodeAt(oe+1)<=57343}function J(A,oe){oe===void 0&&(oe=0);var le=A.charCodeAt(oe);if(55296<=le&&le<=56319&&oe=1){var X=A.charCodeAt(oe-1),O=le;return 55296<=X&&X<=56319?(X-55296)*1024+(O-56320)+65536:O}return le}function re(A,oe,le){var X=[A].concat(oe).concat([le]),O=X[X.length-2],L=le,pe=X.lastIndexOf(p);if(pe>1&&X.slice(1,pe).every(function(te){return te==i})&&[i,h,b].indexOf(A)==-1)return T;var Ce=X.lastIndexOf(n);if(Ce>0&&X.slice(1,Ce).every(function(te){return te==n})&&[f,n].indexOf(O)==-1)return X.filter(function(te){return te==n}).length%2==1?Y:j;if(O==t&&L==e)return S;if(O==r||O==t||O==e)return L==p&&oe.every(function(te){return te==i})?T:k;if(L==r||L==t||L==e)return k;if(O==o&&(L==o||L==a||L==c||L==u))return S;if((O==c||O==a)&&(L==a||L==l))return S;if((O==u||O==l)&&L==l)return S;if(L==i||L==m)return S;if(L==s)return S;if(O==f)return S;var Oe=X.indexOf(i)!=-1?X.lastIndexOf(i)-1:X.length-2;return[h,b].indexOf(X[Oe])!=-1&&X.slice(Oe+1,-1).every(function(te){return te==i})&&L==p||O==m&&[y,b].indexOf(L)!=-1?S:oe.indexOf(n)!=-1?T:O==n&&L==n?S:k}this.nextBreak=function(A,oe){if(oe===void 0&&(oe=0),oe<0)return 0;if(oe>=A.length-1)return A.length;for(var le=ee(J(A,oe)),X=[],O=oe+1;O{var ORe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,nB;function MRe(){if(nB)return nB;if(typeof Intl.Segmenter!="undefined"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return nB=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=V_(),e=new t;return nB=r=>e.splitGraphemes(r)}}X_.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=r-e,n="",s=0,o=0;for(;t.length>0;){let a=t.match(ORe)||[t,t,void 0],l=MRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),t=t.slice(a[0].length)}return n}});var af=w((mAt,g6)=>{"use strict";var f6=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),CAt=g6.exports=t=>t?Object.keys(t).map(e=>[f6.has(e)?f6.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var Af=w((EAt,h6)=>{"use strict";var XRe=require("events"),p6=require("stream"),Jd=bp(),d6=require("string_decoder").StringDecoder,oA=Symbol("EOF"),Wd=Symbol("maybeEmitEnd"),pl=Symbol("emittedEnd"),cB=Symbol("emittingEnd"),uB=Symbol("closed"),C6=Symbol("read"),pD=Symbol("flush"),m6=Symbol("flushChunk"),Nn=Symbol("encoding"),aA=Symbol("decoder"),gB=Symbol("flowing"),zd=Symbol("paused"),_d=Symbol("resume"),pn=Symbol("bufferLength"),E6=Symbol("bufferPush"),dD=Symbol("bufferShift"),_i=Symbol("objectMode"),Vi=Symbol("destroyed"),I6=global._MP_NO_ITERATOR_SYMBOLS_!=="1",ZRe=I6&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),$Re=I6&&Symbol.iterator||Symbol("iterator not implemented"),y6=t=>t==="end"||t==="finish"||t==="prefinish",eFe=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,tFe=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t);h6.exports=class w6 extends p6{constructor(e){super();this[gB]=!1,this[zd]=!1,this.pipes=new Jd,this.buffer=new Jd,this[_i]=e&&e.objectMode||!1,this[_i]?this[Nn]=null:this[Nn]=e&&e.encoding||null,this[Nn]==="buffer"&&(this[Nn]=null),this[aA]=this[Nn]?new d6(this[Nn]):null,this[oA]=!1,this[pl]=!1,this[cB]=!1,this[uB]=!1,this.writable=!0,this.readable=!0,this[pn]=0,this[Vi]=!1}get bufferLength(){return this[pn]}get encoding(){return this[Nn]}set encoding(e){if(this[_i])throw new Error("cannot set encoding in objectMode");if(this[Nn]&&e!==this[Nn]&&(this[aA]&&this[aA].lastNeed||this[pn]))throw new Error("cannot change encoding");this[Nn]!==e&&(this[aA]=e?new d6(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[aA].write(r)))),this[Nn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[_i]}set objectMode(e){this[_i]=this[_i]||!!e}write(e,r,i){if(this[oA])throw new Error("write after end");return this[Vi]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof r=="function"&&(i=r,r="utf8"),r||(r="utf8"),!this[_i]&&!Buffer.isBuffer(e)&&(tFe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):eFe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[_i]&&!(r===this[Nn]&&!this[aA].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Nn]&&(e=this[aA].write(e)),this.flowing?(this[pn]!==0&&this[pD](!0),this.emit("data",e)):this[E6](e),this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Vi])return null;try{return this[pn]===0||e===0||e>this[pn]?null:(this[_i]&&(e=null),this.buffer.length>1&&!this[_i]&&(this.encoding?this.buffer=new Jd([Array.from(this.buffer).join("")]):this.buffer=new Jd([Buffer.concat(Array.from(this.buffer),this[pn])])),this[C6](e||null,this.buffer.head.value))}finally{this[Wd]()}}[C6](e,r){return e===r.length||e===null?this[dD]():(this.buffer.head.value=r.slice(e),r=r.slice(0,e),this[pn]-=e),this.emit("data",r),!this.buffer.length&&!this[oA]&&this.emit("drain"),r}end(e,r,i){return typeof e=="function"&&(i=e,e=null),typeof r=="function"&&(i=r,r="utf8"),e&&this.write(e,r),i&&this.once("end",i),this[oA]=!0,this.writable=!1,(this.flowing||!this[zd])&&this[Wd](),this}[_d](){this[Vi]||(this[zd]=!1,this[gB]=!0,this.emit("resume"),this.buffer.length?this[pD]():this[oA]?this[Wd]():this.emit("drain"))}resume(){return this[_d]()}pause(){this[gB]=!1,this[zd]=!0}get destroyed(){return this[Vi]}get flowing(){return this[gB]}get paused(){return this[zd]}[E6](e){return this[_i]?this[pn]+=1:this[pn]+=e.length,this.buffer.push(e)}[dD](){return this.buffer.length&&(this[_i]?this[pn]-=1:this[pn]-=this.buffer.head.value.length),this.buffer.shift()}[pD](e){do;while(this[m6](this[dD]()));!e&&!this.buffer.length&&!this[oA]&&this.emit("drain")}[m6](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Vi])return;let i=this[pl];r=r||{},e===process.stdout||e===process.stderr?r.end=!1:r.end=r.end!==!1;let n={dest:e,opts:r,ondrain:s=>this[_d]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[_d](),i&&n.opts.end&&n.dest.end(),e}addListener(e,r){return this.on(e,r)}on(e,r){try{return super.on(e,r)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[_d]():y6(e)&&this[pl]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[pl]}[Wd](){!this[cB]&&!this[pl]&&!this[Vi]&&this.buffer.length===0&&this[oA]&&(this[cB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[uB]&&this.emit("close"),this[cB]=!1)}emit(e,r){if(e!=="error"&&e!=="close"&&e!==Vi&&this[Vi])return;if(e==="data"){if(!r)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(r)===!1&&this.pause())}else if(e==="end"){if(this[pl]===!0)return;this[pl]=!0,this.readable=!1,this[aA]&&(r=this[aA].end(),r&&(this.pipes.forEach(n=>n.dest.write(r)),super.emit("data",r))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[uB]=!0,!this[pl]&&!this[Vi]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=r,arguments.length>2)for(let n=2;n{e.push(i),this[_i]||(e.dataLength+=i.length)}),r.then(()=>e)}concat(){return this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this[Nn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Vi,()=>r(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>r(i))})}[ZRe](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[oA])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[oA]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Vi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[$Re](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Vi]?(e?this.emit("error",e):this.emit(Vi),this):(this[Vi]=!0,this.buffer=new Jd,this[pn]=0,typeof this.close=="function"&&!this[uB]&&this.close(),e?this.emit("error",e):this.emit(Vi),this)}static isStream(e){return!!e&&(e instanceof w6||e instanceof p6||e instanceof XRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var b6=w((IAt,B6)=>{var rFe=require("zlib").constants||{ZLIB_VERNUM:4736};B6.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},rFe))});var QD=w(os=>{"use strict";var CD=require("assert"),dl=require("buffer").Buffer,Q6=require("zlib"),zc=os.constants=b6(),iFe=Af(),v6=dl.concat,_c=Symbol("_superWrite"),Vd=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},nFe=Symbol("opts"),Xd=Symbol("flushFlag"),S6=Symbol("finishFlushFlag"),mD=Symbol("fullFlushFlag"),pr=Symbol("handle"),fB=Symbol("onError"),lf=Symbol("sawError"),ED=Symbol("level"),ID=Symbol("strategy"),yD=Symbol("ended"),yAt=Symbol("_defaultFullFlush"),wD=class extends iFe{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[lf]=!1,this[yD]=!1,this[nFe]=e,this[Xd]=e.flush,this[S6]=e.finishFlush;try{this[pr]=new Q6[r](e)}catch(i){throw new Vd(i)}this[fB]=i=>{this[lf]||(this[lf]=!0,this.close(),this.emit("error",i))},this[pr].on("error",i=>this[fB](new Vd(i))),this.once("end",()=>this.close)}close(){this[pr]&&(this[pr].close(),this[pr]=null,this.emit("close"))}reset(){if(!this[lf])return CD(this[pr],"zlib binding closed"),this[pr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[mD]),this.write(Object.assign(dl.alloc(0),{[Xd]:e})))}end(e,r,i){return e&&this.write(e,r),this.flush(this[S6]),this[yD]=!0,super.end(null,null,i)}get ended(){return this[yD]}write(e,r,i){if(typeof r=="function"&&(i=r,r="utf8"),typeof e=="string"&&(e=dl.from(e,r)),this[lf])return;CD(this[pr],"zlib binding closed");let n=this[pr]._handle,s=n.close;n.close=()=>{};let o=this[pr].close;this[pr].close=()=>{},dl.concat=c=>c;let a;try{let c=typeof e[Xd]=="number"?e[Xd]:this[Xd];a=this[pr]._processChunk(e,c),dl.concat=v6}catch(c){dl.concat=v6,this[fB](new Vd(c))}finally{this[pr]&&(this[pr]._handle=n,n.close=s,this[pr].close=o,this[pr].removeAllListeners("error"))}this[pr]&&this[pr].on("error",c=>this[fB](new Vd(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[_c](dl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[pr].params(e,r)}finally{this[pr].flush=i}this[pr]&&(this[ED]=e,this[ID]=r)}}}},k6=class extends Cl{constructor(e){super(e,"Deflate")}},x6=class extends Cl{constructor(e){super(e,"Inflate")}},BD=Symbol("_portable"),P6=class extends Cl{constructor(e){super(e,"Gzip");this[BD]=e&&!!e.portable}[_c](e){return this[BD]?(this[BD]=!1,e[9]=255,super[_c](e)):super[_c](e)}},D6=class extends Cl{constructor(e){super(e,"Gunzip")}},R6=class extends Cl{constructor(e){super(e,"DeflateRaw")}},F6=class extends Cl{constructor(e){super(e,"InflateRaw")}},N6=class extends Cl{constructor(e){super(e,"Unzip")}},bD=class extends wD{constructor(e,r){e=e||{},e.flush=e.flush||zc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||zc.BROTLI_OPERATION_FINISH,super(e,r),this[mD]=zc.BROTLI_OPERATION_FLUSH}},L6=class extends bD{constructor(e){super(e,"BrotliCompress")}},T6=class extends bD{constructor(e){super(e,"BrotliDecompress")}};os.Deflate=k6;os.Inflate=x6;os.Gzip=P6;os.Gunzip=D6;os.DeflateRaw=R6;os.InflateRaw=F6;os.Unzip=N6;typeof Q6.BrotliCompress=="function"?(os.BrotliCompress=L6,os.BrotliDecompress=T6):os.BrotliCompress=os.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Zd=w(hB=>{"use strict";hB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);hB.code=new Map(Array.from(hB.name).map(t=>[t[1],t[0]]))});var $d=w((vAt,O6)=>{"use strict";var bAt=Zd(),sFe=Af(),vD=Symbol("slurp");O6.exports=class extends sFe{constructor(e,r,i){super();switch(this.pause(),this.extended=r,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,r&&this[vD](r),i&&this[vD](i,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-r),this.blockRemain=Math.max(0,n-r),this.ignore?!0:i>=r?super.write(e):super.write(e.slice(0,i))}[vD](e,r){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(r&&i==="path")&&(this[i]=e[i])}}});var U6=w(SD=>{"use strict";var SAt=SD.encode=(t,e)=>{if(Number.isSafeInteger(t))t<0?aFe(t,e):oFe(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},oFe=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},aFe=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var i=e.length;i>1;i--){var n=t&255;t=Math.floor(t/256),r?e[i-1]=M6(n):n===0?e[i-1]=0:(r=!0,e[i-1]=K6(n))}},kAt=SD.parse=t=>{var e=t[t.length-1],r=t[0],i;if(r===128)i=lFe(t.slice(1,t.length));else if(r===255)i=AFe(t);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},AFe=t=>{for(var e=t.length,r=0,i=!1,n=e-1;n>-1;n--){var s=t[n],o;i?o=M6(s):s===0?o=s:(i=!0,o=K6(s)),o!==0&&(r-=o*Math.pow(256,e-n-1))}return r},lFe=t=>{for(var e=t.length,r=0,i=e-1;i>-1;i--){var n=t[i];n!==0&&(r+=n*Math.pow(256,e-i-1))}return r},M6=t=>(255^t)&255,K6=t=>(255^t)+1&255});var uf=w((PAt,H6)=>{"use strict";var kD=Zd(),cf=require("path").posix,G6=U6(),xD=Symbol("slurp"),as=Symbol("type"),j6=class{constructor(e,r,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[as]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,i,n):e&&this.set(e)}decode(e,r,i,n){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Vc(e,r,100),this.mode=ml(e,r+100,8),this.uid=ml(e,r+108,8),this.gid=ml(e,r+116,8),this.size=ml(e,r+124,12),this.mtime=PD(e,r+136,12),this.cksum=ml(e,r+148,12),this[xD](i),this[xD](n,!0),this[as]=Vc(e,r+156,1),this[as]===""&&(this[as]="0"),this[as]==="0"&&this.path.substr(-1)==="/"&&(this[as]="5"),this[as]==="5"&&(this.size=0),this.linkpath=Vc(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Vc(e,r+265,32),this.gname=Vc(e,r+297,32),this.devmaj=ml(e,r+329,8),this.devmin=ml(e,r+337,8),e[r+475]!==0){let o=Vc(e,r+345,155);this.path=o+"/"+this.path}else{let o=Vc(e,r+345,130);o&&(this.path=o+"/"+this.path),this.atime=PD(e,r+476,12),this.ctime=PD(e,r+488,12)}let s=8*32;for(let o=r;o=r+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=cFe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=Xc(e,r,100,s)||this.needPax,this.needPax=El(e,r+100,8,this.mode)||this.needPax,this.needPax=El(e,r+108,8,this.uid)||this.needPax,this.needPax=El(e,r+116,8,this.gid)||this.needPax,this.needPax=El(e,r+124,12,this.size)||this.needPax,this.needPax=DD(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[as].charCodeAt(0),this.needPax=Xc(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Xc(e,r+265,32,this.uname)||this.needPax,this.needPax=Xc(e,r+297,32,this.gname)||this.needPax,this.needPax=El(e,r+329,8,this.devmaj)||this.needPax,this.needPax=El(e,r+337,8,this.devmin)||this.needPax,this.needPax=Xc(e,r+345,i,o)||this.needPax,e[r+475]!==0?this.needPax=Xc(e,r+345,155,o)||this.needPax:(this.needPax=Xc(e,r+345,130,o)||this.needPax,this.needPax=DD(e,r+476,12,this.atime)||this.needPax,this.needPax=DD(e,r+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=r;l{let r=100,i=t,n="",s,o=cf.parse(t).root||".";if(Buffer.byteLength(i)r&&Buffer.byteLength(n)<=e?s=[i.substr(0,r-1),n,!0]:(i=cf.join(cf.basename(n),i),n=cf.dirname(n));while(n!==o&&!s);s||(s=[t.substr(0,r-1),"",!0])}return s},Vc=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),PD=(t,e,r)=>uFe(ml(t,e,r)),uFe=t=>t===null?null:new Date(t*1e3),ml=(t,e,r)=>t[e]&128?G6.parse(t.slice(e,e+r)):gFe(t,e,r),fFe=t=>isNaN(t)?null:t,gFe=(t,e,r)=>fFe(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),hFe={12:8589934591,8:2097151},El=(t,e,r,i)=>i===null?!1:i>hFe[r]||i<0?(G6.encode(i,t.slice(e,e+r)),!0):(pFe(t,e,r,i),!1),pFe=(t,e,r,i)=>t.write(dFe(i,r),e,r,"ascii"),dFe=(t,e)=>CFe(Math.floor(t).toString(8),e),CFe=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",DD=(t,e,r,i)=>i===null?!1:El(t,e,r,i.getTime()/1e3),mFe=new Array(156).join("\0"),Xc=(t,e,r,i)=>i===null?!1:(t.write(i+mFe,e,r,"utf8"),i.length!==Buffer.byteLength(i)||i.length>r);H6.exports=j6});var dB=w((DAt,Y6)=>{"use strict";var EFe=uf(),IFe=require("path"),pB=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),i=512*Math.ceil(1+r/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new EFe({path:("PaxHeader/"+IFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,r,"utf8");for(let s=r+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};pB.parse=(t,e,r)=>new pB(yFe(wFe(t),e),r);var yFe=(t,e)=>e?Object.keys(t).reduce((r,i)=>(r[i]=t[i],r),e):t,wFe=t=>t.replace(/\n$/,"").split(` -`).reduce(BFe,Object.create(null)),BFe=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return t;let s=i.join("=");return t[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,t};Y6.exports=pB});var CB=w((RAt,q6)=>{"use strict";q6.exports=t=>class extends t{warn(e,r,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=r instanceof Error&&r.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(r instanceof Error&&(i=Object.assign(r,i),r=r.message),this.emit("warn",i.tarCode,r,i)):r instanceof Error?this.emit("error",Object.assign(r,i)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),i))}}});var FD=w((FAt,J6)=>{"use strict";var mB=["|","<",">","?",":"],RD=mB.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),bFe=new Map(mB.map((t,e)=>[t,RD[e]])),QFe=new Map(RD.map((t,e)=>[t,mB[e]]));J6.exports={encode:t=>mB.reduce((e,r)=>e.split(r).join(bFe.get(r)),t),decode:t=>RD.reduce((e,r)=>e.split(r).join(QFe.get(r)),t)}});var z6=w((NAt,W6)=>{"use strict";W6.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&~18),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var UD=w((KAt,_6)=>{"use strict";var V6=Af(),X6=dB(),Z6=uf(),LAt=$d(),ra=require("fs"),gf=require("path"),TAt=Zd(),vFe=16*1024*1024,$6=Symbol("process"),eV=Symbol("file"),tV=Symbol("directory"),ND=Symbol("symlink"),rV=Symbol("hardlink"),eC=Symbol("header"),EB=Symbol("read"),LD=Symbol("lstat"),IB=Symbol("onlstat"),TD=Symbol("onread"),OD=Symbol("onreadlink"),MD=Symbol("openfile"),KD=Symbol("onopenfile"),Zc=Symbol("close"),yB=Symbol("mode"),iV=CB(),SFe=FD(),nV=z6(),wB=iV(class extends V6{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||vFe,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=r.cwd||process.cwd(),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths&&gf.win32.isAbsolute(e)){let n=gf.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=SFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=r.absolute||gf.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[IB](this.statCache.get(this.absolute)):this[LD]()}[LD](){ra.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[IB](r)})}[IB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=kFe(e),this.emit("stat",e),this[$6]()}[$6](){switch(this.type){case"File":return this[eV]();case"Directory":return this[tV]();case"SymbolicLink":return this[ND]();default:return this.end()}}[yB](e){return nV(e,this.type==="Directory",this.portable)}[eC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new Z6({path:this.path,linkpath:this.linkpath,mode:this[yB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new X6({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[tV](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[eC](),this.end()}[ND](){ra.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[OD](r)})}[OD](e){this.linkpath=e.replace(/\\/g,"/"),this[eC](),this.end()}[rV](e){this.type="Link",this.linkpath=gf.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[eC](),this.end()}[eV](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[rV](r)}this.linkCache.set(e,this.absolute)}if(this[eC](),this.stat.size===0)return this.end();this[MD]()}[MD](){ra.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[KD](r)})}[KD](e){let r=512*Math.ceil(this.stat.size/512),i=Math.min(r,this.maxReadSize),n=Buffer.allocUnsafe(i);this[EB](e,n,0,n.length,0,this.stat.size,r)}[EB](e,r,i,n,s,o,a){ra.read(e,r,i,n,s,(l,c)=>{if(l)return this[Zc](e,()=>this.emit("error",l));this[TD](e,r,i,n,s,o,a,c)})}[Zc](e,r){ra.close(e,r)}[TD](e,r,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[Zc](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[Zc](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(r=Buffer.allocUnsafe(n),i=0),n=r.length-i,this[EB](e,r,i,n,s,o,a)}}),sV=class extends wB{constructor(e,r){super(e,r)}[LD](){this[IB](ra.lstatSync(this.absolute))}[ND](){this[OD](ra.readlinkSync(this.absolute))}[MD](){this[KD](ra.openSync(this.absolute,"r"))}[EB](e,r,i,n,s,o,a){let l=!0;try{let c=ra.readSync(e,r,i,n,s);this[TD](e,r,i,n,s,o,a,c),l=!1}finally{if(l)try{this[Zc](e,()=>{})}catch(c){}}}[Zc](e,r){ra.closeSync(e),r()}},xFe=iV(class extends V6{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[yB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(gf.isAbsolute(this.path)&&!this.preservePaths){let n=gf.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Z6({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new X6({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[yB](e){return nV(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});wB.Sync=sV;wB.Tar=xFe;var kFe=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";_6.exports=wB});var PB=w((HAt,oV)=>{"use strict";var HD=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},PFe=Af(),DFe=QD(),RFe=$d(),GD=UD(),FFe=GD.Sync,NFe=GD.Tar,LFe=bp(),aV=Buffer.alloc(1024),BB=Symbol("onStat"),bB=Symbol("ended"),ia=Symbol("queue"),ff=Symbol("current"),$c=Symbol("process"),QB=Symbol("processing"),AV=Symbol("processJob"),na=Symbol("jobs"),jD=Symbol("jobDone"),vB=Symbol("addFSEntry"),lV=Symbol("addTarEntry"),YD=Symbol("stat"),qD=Symbol("readdir"),SB=Symbol("onreaddir"),kB=Symbol("pipe"),cV=Symbol("entry"),JD=Symbol("entryOpt"),WD=Symbol("writeEntryClass"),uV=Symbol("write"),zD=Symbol("ondrain"),xB=require("fs"),gV=require("path"),TFe=CB(),_D=TFe(class extends PFe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[WD]=GD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new DFe.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[zD]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[zD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[ia]=new LFe,this[na]=0,this.jobs=+e.jobs||4,this[QB]=!1,this[bB]=!1}[uV](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[bB]=!0,this[$c](),this}write(e){if(this[bB])throw new Error("write after end");return e instanceof RFe?this[lV](e):this[vB](e),this.flowing}[lV](e){let r=gV.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new HD(e.path,r,!1);i.entry=new NFe(e,this[JD](i)),i.entry.on("end",n=>this[jD](i)),this[na]+=1,this[ia].push(i)}this[$c]()}[vB](e){let r=gV.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[ia].push(new HD(e,r)),this[$c]()}[YD](e){e.pending=!0,this[na]+=1;let r=this.follow?"stat":"lstat";xB[r](e.absolute,(i,n)=>{e.pending=!1,this[na]-=1,i?this.emit("error",i):this[BB](e,n)})}[BB](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[$c]()}[qD](e){e.pending=!0,this[na]+=1,xB.readdir(e.absolute,(r,i)=>{if(e.pending=!1,this[na]-=1,r)return this.emit("error",r);this[SB](e,i)})}[SB](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[$c]()}[$c](){if(!this[QB]){this[QB]=!0;for(let e=this[ia].head;e!==null&&this[na]this.warn(r,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[cV](e){this[na]+=1;try{return new this[WD](e.path,this[JD](e)).on("end",()=>this[jD](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[zD](){this[ff]&&this[ff].entry&&this[ff].entry.resume()}[kB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[vB](o+n)});let r=e.entry,i=this.zip;i?r.on("data",n=>{i.write(n)||r.pause()}):r.on("data",n=>{super.write(n)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),fV=class extends _D{constructor(e){super(e);this[WD]=FFe}pause(){}resume(){}[YD](e){let r=this.follow?"statSync":"lstatSync";this[BB](e,xB[r](e.absolute))}[qD](e,r){this[SB](e,xB.readdirSync(e.absolute))}[kB](e){let r=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[vB](o+n)}),i?r.on("data",n=>{i.write(n)}):r.on("data",n=>{super[uV](n)})}};_D.Sync=fV;oV.exports=_D});var Ef=w(tC=>{"use strict";var OFe=Af(),MFe=require("events").EventEmitter,Ks=require("fs"),DB=process.binding("fs"),GAt=DB.writeBuffers,KFe=DB.FSReqWrap||DB.FSReqCallback,hf=Symbol("_autoClose"),sa=Symbol("_close"),rC=Symbol("_ended"),or=Symbol("_fd"),hV=Symbol("_finished"),eu=Symbol("_flags"),VD=Symbol("_flush"),XD=Symbol("_handleChunk"),ZD=Symbol("_makeBuf"),$D=Symbol("_mode"),RB=Symbol("_needDrain"),pf=Symbol("_onerror"),df=Symbol("_onopen"),eR=Symbol("_onread"),tu=Symbol("_onwrite"),Il=Symbol("_open"),yl=Symbol("_path"),ru=Symbol("_pos"),oa=Symbol("_queue"),Cf=Symbol("_read"),pV=Symbol("_readSize"),wl=Symbol("_reading"),FB=Symbol("_remain"),dV=Symbol("_size"),NB=Symbol("_write"),mf=Symbol("_writing"),LB=Symbol("_defaultFlag"),tR=class extends OFe{constructor(e,r){if(r=r||{},super(r),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[or]=typeof r.fd=="number"?r.fd:null,this[yl]=e,this[pV]=r.readSize||16*1024*1024,this[wl]=!1,this[dV]=typeof r.size=="number"?r.size:Infinity,this[FB]=this[dV],this[hf]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[or]=="number"?this[Cf]():this[Il]()}get fd(){return this[or]}get path(){return this[yl]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Il](){Ks.open(this[yl],"r",(e,r)=>this[df](e,r))}[df](e,r){e?this[pf](e):(this[or]=r,this.emit("open",r),this[Cf]())}[ZD](){return Buffer.allocUnsafe(Math.min(this[pV],this[FB]))}[Cf](){if(!this[wl]){this[wl]=!0;let e=this[ZD]();if(e.length===0)return process.nextTick(()=>this[eR](null,0,e));Ks.read(this[or],e,0,e.length,null,(r,i,n)=>this[eR](r,i,n))}}[eR](e,r,i){this[wl]=!1,e?this[pf](e):this[XD](r,i)&&this[Cf]()}[sa](){this[hf]&&typeof this[or]=="number"&&(Ks.close(this[or],e=>this.emit("close")),this[or]=null)}[pf](e){this[wl]=!0,this[sa](),this.emit("error",e)}[XD](e,r){let i=!1;return this[FB]-=e,e>0&&(i=super.write(ethis[df](e,r))}[df](e,r){this[LB]&&this[eu]==="r+"&&e&&e.code==="ENOENT"?(this[eu]="w",this[Il]()):e?this[pf](e):(this[or]=r,this.emit("open",r),this[VD]())}end(e,r){e&&this.write(e,r),this[rC]=!0,!this[mf]&&!this[oa].length&&typeof this[or]=="number"&&this[tu](null,0)}write(e,r){return typeof e=="string"&&(e=new Buffer(e,r)),this[rC]?(this.emit("error",new Error("write() after end()")),!1):this[or]===null||this[mf]||this[oa].length?(this[oa].push(e),this[RB]=!0,!1):(this[mf]=!0,this[NB](e),!0)}[NB](e){Ks.write(this[or],e,0,e.length,this[ru],(r,i)=>this[tu](r,i))}[tu](e,r){e?this[pf](e):(this[ru]!==null&&(this[ru]+=r),this[oa].length?this[VD]():(this[mf]=!1,this[rC]&&!this[hV]?(this[hV]=!0,this[sa](),this.emit("finish")):this[RB]&&(this[RB]=!1,this.emit("drain"))))}[VD](){if(this[oa].length===0)this[rC]&&this[tu](null,0);else if(this[oa].length===1)this[NB](this[oa].pop());else{let e=this[oa];this[oa]=[],UFe(this[or],e,this[ru],(r,i)=>this[tu](r,i))}}[sa](){this[hf]&&typeof this[or]=="number"&&(Ks.close(this[or],e=>this.emit("close")),this[or]=null)}},mV=class extends rR{[Il](){let e;try{e=Ks.openSync(this[yl],this[eu],this[$D])}catch(r){if(this[LB]&&this[eu]==="r+"&&r&&r.code==="ENOENT")return this[eu]="w",this[Il]();throw r}this[df](null,e)}[sa](){if(this[hf]&&typeof this[or]=="number"){try{Ks.closeSync(this[or])}catch(e){}this[or]=null,this.emit("close")}}[NB](e){try{this[tu](null,Ks.writeSync(this[or],e,0,e.length,this[ru]))}catch(r){this[tu](r,0)}}},UFe=(t,e,r,i)=>{let n=(o,a)=>i(o,a,e),s=new KFe;s.oncomplete=n,DB.writeBuffers(t,e,r,s)};tC.ReadStream=tR;tC.ReadStreamSync=CV;tC.WriteStream=rR;tC.WriteStreamSync=mV});var sC=w((JAt,EV)=>{"use strict";var HFe=CB(),YAt=require("path"),GFe=uf(),jFe=require("events"),YFe=bp(),qFe=1024*1024,JFe=$d(),IV=dB(),WFe=QD(),iR=Buffer.from([31,139]),Us=Symbol("state"),iu=Symbol("writeEntry"),AA=Symbol("readEntry"),nR=Symbol("nextEntry"),yV=Symbol("processEntry"),Hs=Symbol("extendedHeader"),iC=Symbol("globalExtendedHeader"),Bl=Symbol("meta"),wV=Symbol("emitMeta"),yr=Symbol("buffer"),lA=Symbol("queue"),nu=Symbol("ended"),BV=Symbol("emittedEnd"),su=Symbol("emit"),Ln=Symbol("unzip"),TB=Symbol("consumeChunk"),OB=Symbol("consumeChunkSub"),sR=Symbol("consumeBody"),bV=Symbol("consumeMeta"),QV=Symbol("consumeHeader"),MB=Symbol("consuming"),oR=Symbol("bufferConcat"),aR=Symbol("maybeEnd"),nC=Symbol("writing"),bl=Symbol("aborted"),KB=Symbol("onDone"),ou=Symbol("sawValidEntry"),UB=Symbol("sawNullBlock"),HB=Symbol("sawEOF"),zFe=t=>!0;EV.exports=HFe(class extends jFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[ou]=null,this.on(KB,r=>{(this[Us]==="begin"||this[ou]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(KB,e.ondone):this.on(KB,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||qFe,this.filter=typeof e.filter=="function"?e.filter:zFe,this.writable=!0,this.readable=!1,this[lA]=new YFe,this[yr]=null,this[AA]=null,this[iu]=null,this[Us]="begin",this[Bl]="",this[Hs]=null,this[iC]=null,this[nu]=!1,this[Ln]=null,this[bl]=!1,this[UB]=!1,this[HB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[QV](e,r){this[ou]===null&&(this[ou]=!1);let i;try{i=new GFe(e,r,this[Hs],this[iC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[UB]?(this[HB]=!0,this[Us]==="begin"&&(this[Us]="header"),this[su]("eof")):(this[UB]=!0,this[su]("nullBlock"));else if(this[UB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[iu]=new JFe(i,this[Hs],this[iC]);if(!this[ou])if(s.remain){let o=()=>{s.invalid||(this[ou]=!0)};s.on("end",o)}else this[ou]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[su]("ignoredEntry",s),this[Us]="ignore",s.resume()):s.size>0&&(this[Bl]="",s.on("data",o=>this[Bl]+=o),this[Us]="meta"):(this[Hs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[su]("ignoredEntry",s),this[Us]=s.remain?"ignore":"header",s.resume()):(s.remain?this[Us]="body":(this[Us]="header",s.end()),this[AA]?this[lA].push(s):(this[lA].push(s),this[nR]())))}}}[yV](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[AA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[nR]()),r=!1)):(this[AA]=null,r=!1),r}[nR](){do;while(this[yV](this[lA].shift()));if(!this[lA].length){let e=this[AA];!e||e.flowing||e.size===e.remain?this[nC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[sR](e,r){let i=this[iu],n=i.blockRemain,s=n>=e.length&&r===0?e:e.slice(r,r+n);return i.write(s),i.blockRemain||(this[Us]="header",this[iu]=null,i.end()),s.length}[bV](e,r){let i=this[iu],n=this[sR](e,r);return this[iu]||this[wV](i),n}[su](e,r,i){!this[lA].length&&!this[AA]?this.emit(e,r,i):this[lA].push([e,r,i])}[wV](e){switch(this[su]("meta",this[Bl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Hs]=IV.parse(this[Bl],this[Hs],!1);break;case"GlobalExtendedHeader":this[iC]=IV.parse(this[Bl],this[iC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Hs]=this[Hs]||Object.create(null),this[Hs].path=this[Bl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Hs]=this[Hs]||Object.create(null),this[Hs].linkpath=this[Bl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[bl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[bl])return;if(this[Ln]===null&&e){if(this[yr]&&(e=Buffer.concat([this[yr],e]),this[yr]=null),e.lengththis[TB](s)),this[Ln].on("error",s=>this.abort(s)),this[Ln].on("end",s=>{this[nu]=!0,this[TB]()}),this[nC]=!0;let n=this[Ln][i?"end":"write"](e);return this[nC]=!1,n}}this[nC]=!0,this[Ln]?this[Ln].write(e):this[TB](e),this[nC]=!1;let r=this[lA].length?!1:this[AA]?this[AA].flowing:!0;return!r&&!this[lA].length&&this[AA].once("drain",i=>this.emit("drain")),r}[oR](e){e&&!this[bl]&&(this[yr]=this[yr]?Buffer.concat([this[yr],e]):e)}[aR](){if(this[nu]&&!this[BV]&&!this[bl]&&!this[MB]){this[BV]=!0;let e=this[iu];if(e&&e.blockRemain){let r=this[yr]?this[yr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[yr]&&e.write(this[yr]),e.end()}this[su](KB)}}[TB](e){if(this[MB])this[oR](e);else if(!e&&!this[yr])this[aR]();else{if(this[MB]=!0,this[yr]){this[oR](e);let r=this[yr];this[yr]=null,this[OB](r)}else this[OB](e);for(;this[yr]&&this[yr].length>=512&&!this[bl]&&!this[HB];){let r=this[yr];this[yr]=null,this[OB](r)}this[MB]=!1}(!this[yr]||this[nu])&&this[aR]()}[OB](e){let r=0,i=e.length;for(;r+512<=i&&!this[bl]&&!this[HB];)switch(this[Us]){case"begin":case"header":this[QV](e,r),r+=512;break;case"ignore":case"body":r+=this[sR](e,r);break;case"meta":r+=this[bV](e,r);break;default:throw new Error("invalid state: "+this[Us])}r{"use strict";var _Fe=af(),SV=sC(),If=require("fs"),VFe=Ef(),kV=require("path"),WAt=vV.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=_Fe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&ZFe(i,e),i.noResume||XFe(i),i.file&&i.sync?$Fe(i):i.file?eNe(i,r):xV(i)},XFe=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},ZFe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||kV.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(kV.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},$Fe=t=>{let e=xV(t),r=t.file,i=!0,n;try{let s=If.statSync(r),o=t.maxReadSize||16*1024*1024;if(s.size{let r=new SV(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("end",o),If.stat(n,(l,c)=>{if(l)a(l);else{let u=new VFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},xV=t=>new SV(t)});var LV=w((XAt,PV)=>{"use strict";var tNe=af(),jB=PB(),_At=require("fs"),DV=Ef(),RV=GB(),FV=require("path"),VAt=PV.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=tNe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?rNe(i,e):i.file?iNe(i,e,r):i.sync?nNe(i,e):sNe(i,e)},rNe=(t,e)=>{let r=new jB.Sync(t),i=new DV.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(i),NV(r,e)},iNe=(t,e,r)=>{let i=new jB(t),n=new DV.WriteStream(t.file,{mode:t.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return AR(i,e),r?s.then(r,r):s},NV=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?RV({file:FV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},AR=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return RV({file:FV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>AR(t,e));t.add(r)}t.end()},nNe=(t,e)=>{let r=new jB.Sync(t);return NV(r,e),r},sNe=(t,e)=>{let r=new jB(t);return AR(r,e),r}});var lR=w((elt,TV)=>{"use strict";var oNe=af(),OV=PB(),ZAt=sC(),Gs=require("fs"),MV=Ef(),KV=GB(),UV=require("path"),HV=uf(),$At=TV.exports=(t,e,r)=>{let i=oNe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?aNe(i,e):ANe(i,e,r)},aNe=(t,e)=>{let r=new OV.Sync(t),i=!0,n,s;try{try{n=Gs.openSync(t.file,"r+")}catch(l){if(l.code==="ENOENT")n=Gs.openSync(t.file,"w+");else throw l}let o=Gs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,t.mtimeCache&&t.mtimeCache.set(l.path,l.mtime)}i=!1,lNe(t,r,s,n,e)}finally{if(i)try{Gs.closeSync(n)}catch(o){}}},lNe=(t,e,r,i,n)=>{let s=new MV.WriteStreamSync(t.file,{fd:i,start:r});e.pipe(s),cNe(e,n)},ANe=(t,e,r)=>{e=Array.from(e);let i=new OV(t),n=(o,a,l)=>{let c=(p,m)=>{p?Gs.close(o,y=>l(p)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,m)=>{if(p)return c(p);if(g+=m,g<512&&m)return Gs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new HV(f);if(!y.cksumValid)return c(null,u);let b=512*Math.ceil(y.size/512);if(u+b+512>a||(u+=b+512,u>=a))return c(null,u);t.mtimeCache&&t.mtimeCache.set(y.path,y.mtime),g=0,Gs.read(o,f,0,512,u,h)};Gs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",Gs.open(t.file,l,c);if(u)return a(u);Gs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,m)=>{if(p)return a(p);let y=new MV.WriteStream(t.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),GV(i,e)})})};Gs.open(t.file,l,c)});return r?s.then(r,r):s},cNe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?KV({file:UV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},GV=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return KV({file:UV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>GV(t,e));t.add(r)}t.end()}});var YV=w((rlt,jV)=>{"use strict";var uNe=af(),gNe=lR(),tlt=jV.exports=(t,e,r)=>{let i=uNe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),fNe(i),gNe(i,e,r)},fNe=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,i)=>e(r,i)&&!(t.mtimeCache.get(r)>i.mtime):(r,i)=>!(t.mtimeCache.get(r)>i.mtime)}});var WV=w((ilt,qV)=>{var{promisify:JV}=require("util"),Ql=require("fs"),hNe=t=>{if(!t)t={mode:511,fs:Ql};else if(typeof t=="object")t=N({mode:511,fs:Ql},t);else if(typeof t=="number")t={mode:t,fs:Ql};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Ql};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Ql.mkdir,t.mkdirAsync=JV(t.mkdir),t.stat=t.stat||t.fs.stat||Ql.stat,t.statAsync=JV(t.stat),t.statSync=t.statSync||t.fs.statSync||Ql.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Ql.mkdirSync,t};qV.exports=hNe});var _V=w((nlt,zV)=>{var pNe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:dNe,parse:CNe}=require("path"),mNe=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=dNe(t),pNe==="win32"){let e=/[*|"<>?:]/,{root:r}=CNe(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};zV.exports=mNe});var e9=w((slt,VV)=>{var{dirname:XV}=require("path"),ZV=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(i=>i.isDirectory()?r:void 0,i=>i.code==="ENOENT"?ZV(t,XV(e),e):void 0),$V=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(i){return i.code==="ENOENT"?$V(t,XV(e),e):void 0}};VV.exports={findMade:ZV,findMadeSync:$V}});var gR=w((olt,t9)=>{var{dirname:r9}=require("path"),cR=(t,e,r)=>{e.recursive=!1;let i=r9(t);return i===t?e.mkdirAsync(t,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(t,e).then(()=>r||t,n=>{if(n.code==="ENOENT")return cR(i,e).then(s=>cR(t,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(t).then(s=>{if(s.isDirectory())return r;throw n},()=>{throw n})})},uR=(t,e,r)=>{let i=r9(t);if(e.recursive=!1,i===t)try{return e.mkdirSync(t,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(t,e),r||t}catch(n){if(n.code==="ENOENT")return uR(t,e,uR(i,e,r));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(t).isDirectory())throw n}catch(s){throw n}}};t9.exports={mkdirpManual:cR,mkdirpManualSync:uR}});var s9=w((alt,i9)=>{var{dirname:n9}=require("path"),{findMade:ENe,findMadeSync:INe}=e9(),{mkdirpManual:yNe,mkdirpManualSync:wNe}=gR(),BNe=(t,e)=>(e.recursive=!0,n9(t)===t?e.mkdirAsync(t,e):ENe(e,t).then(i=>e.mkdirAsync(t,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return yNe(t,e);throw n}))),bNe=(t,e)=>{if(e.recursive=!0,n9(t)===t)return e.mkdirSync(t,e);let i=INe(e,t);try{return e.mkdirSync(t,e),i}catch(n){if(n.code==="ENOENT")return wNe(t,e);throw n}};i9.exports={mkdirpNative:BNe,mkdirpNativeSync:bNe}});var l9=w((Alt,o9)=>{var a9=require("fs"),QNe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,fR=QNe.replace(/^v/,"").split("."),A9=+fR[0]>10||+fR[0]==10&&+fR[1]>=12,vNe=A9?t=>t.mkdir===a9.mkdir:()=>!1,SNe=A9?t=>t.mkdirSync===a9.mkdirSync:()=>!1;o9.exports={useNative:vNe,useNativeSync:SNe}});var p9=w((llt,c9)=>{var yf=WV(),wf=_V(),{mkdirpNative:u9,mkdirpNativeSync:g9}=s9(),{mkdirpManual:f9,mkdirpManualSync:h9}=gR(),{useNative:kNe,useNativeSync:xNe}=l9(),Bf=(t,e)=>(t=wf(t),e=yf(e),kNe(e)?u9(t,e):f9(t,e)),PNe=(t,e)=>(t=wf(t),e=yf(e),xNe(e)?g9(t,e):h9(t,e));Bf.sync=PNe;Bf.native=(t,e)=>u9(wf(t),yf(e));Bf.manual=(t,e)=>f9(wf(t),yf(e));Bf.nativeSync=(t,e)=>g9(wf(t),yf(e));Bf.manualSync=(t,e)=>h9(wf(t),yf(e));c9.exports=Bf});var w9=w((clt,d9)=>{"use strict";var js=require("fs"),au=require("path"),DNe=js.lchown?"lchown":"chown",RNe=js.lchownSync?"lchownSync":"chownSync",C9=js.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),m9=(t,e,r)=>{try{return js[RNe](t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},FNe=(t,e,r)=>{try{return js.chownSync(t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},NNe=C9?(t,e,r,i)=>n=>{!n||n.code!=="EISDIR"?i(n):js.chown(t,e,r,i)}:(t,e,r,i)=>i,hR=C9?(t,e,r)=>{try{return m9(t,e,r)}catch(i){if(i.code!=="EISDIR")throw i;FNe(t,e,r)}}:(t,e,r)=>m9(t,e,r),LNe=process.version,E9=(t,e,r)=>js.readdir(t,e,r),TNe=(t,e)=>js.readdirSync(t,e);/^v4\./.test(LNe)&&(E9=(t,e,r)=>js.readdir(t,r));var YB=(t,e,r,i)=>{js[DNe](t,e,r,NNe(t,e,r,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},I9=(t,e,r,i,n)=>{if(typeof e=="string")return js.lstat(au.resolve(t,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,I9(t,o,r,i,n)});if(e.isDirectory())pR(au.resolve(t,e.name),r,i,s=>{if(s)return n(s);let o=au.resolve(t,e.name);YB(o,r,i,n)});else{let s=au.resolve(t,e.name);YB(s,r,i,n)}},pR=(t,e,r,i)=>{E9(t,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return YB(t,e,r,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return YB(t,e,r,i)}};s.forEach(c=>I9(t,c,e,r,l))})},ONe=(t,e,r,i)=>{if(typeof e=="string")try{let n=js.lstatSync(au.resolve(t,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&y9(au.resolve(t,e.name),r,i),hR(au.resolve(t,e.name),r,i)},y9=(t,e,r)=>{let i;try{i=TNe(t,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return hR(t,e,r);throw n}return i&&i.length&&i.forEach(n=>ONe(t,n,e,r)),hR(t,e,r)};d9.exports=pR;pR.sync=y9});var v9=w((flt,dR)=>{"use strict";var B9=p9(),Ys=require("fs"),qB=require("path"),b9=w9(),CR=class extends Error{constructor(e,r){super("Cannot extract through symbolic link");this.path=r,this.symlink=e}get name(){return"SylinkError"}},oC=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'");this.path=e,this.code=r}get name(){return"CwdError"}},ult=dR.exports=(t,e,r)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(y,b)=>{y?r(y):(g.set(t,!0),b&&l?b9(b,o,a,S=>h(S)):s?Ys.chmod(t,n,r):r())};if(g&&g.get(t)===!0)return h();if(t===f)return Ys.stat(t,(y,b)=>{(y||!b.isDirectory())&&(y=new oC(t,y&&y.code||"ENOTDIR")),h(y)});if(c)return B9(t,{mode:n}).then(y=>h(null,y),h);let m=qB.relative(f,t).split(/\/|\\/);JB(f,m,n,g,u,f,null,h)},JB=(t,e,r,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=t+"/"+l;if(i.get(c))return JB(c,e,r,i,n,s,o,a);Ys.mkdir(c,r,Q9(c,e,r,i,n,s,o,a))},Q9=(t,e,r,i,n,s,o,a)=>l=>{if(l){if(l.path&&qB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new oC(s,l.code));Ys.lstat(t,(c,u)=>{if(c)a(c);else if(u.isDirectory())JB(t,e,r,i,n,s,o,a);else if(n)Ys.unlink(t,g=>{if(g)return a(g);Ys.mkdir(t,r,Q9(t,e,r,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new CR(t,t+"/"+e.join("/")));a(l)}})}else o=o||t,JB(t,e,r,i,n,s,o,a)},glt=dR.exports.sync=(t,e)=>{let r=e.umask,i=e.mode|448,n=(i&r)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=y=>{u.set(t,!0),y&&a&&b9.sync(y,s,o),n&&Ys.chmodSync(t,i)};if(u&&u.get(t)===!0)return f();if(t===g){let y=!1,b="ENOTDIR";try{y=Ys.statSync(t).isDirectory()}catch(S){b=S.code}finally{if(!y)throw new oC(t,b)}f();return}if(l)return f(B9.sync(t,i));let p=qB.relative(g,t).split(/\/|\\/),m=null;for(let y=p.shift(),b=g;y&&(b+="/"+y);y=p.shift())if(!u.get(b))try{Ys.mkdirSync(b,i),m=m||b,u.set(b,!0)}catch(S){if(S.path&&qB.dirname(S.path)===g&&(S.code==="ENOTDIR"||S.code==="ENOENT"))return new oC(g,S.code);let k=Ys.lstatSync(b);if(k.isDirectory()){u.set(b,!0);continue}else if(c){Ys.unlinkSync(b),Ys.mkdirSync(b,i),m=m||b,u.set(b,!0);continue}else if(k.isSymbolicLink())return new CR(b,b+"/"+p.join("/"))}return f(m)}});var x9=w((hlt,S9)=>{var k9=require("assert");S9.exports=()=>{let t=new Map,e=new Map,{join:r}=require("path"),i=u=>r(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(r(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>t.get(f)),dirs:[...g.dirs].map(f=>t.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let m=t.get(p);k9.equal(m[0],u),m.length===1?t.delete(p):(m.shift(),typeof m[0]=="function"?h.add(m[0]):m[0].forEach(y=>h.add(y)))}),f.forEach(p=>{let m=t.get(p);k9(m[0]instanceof Set),m[0].size===1&&m.length===1?t.delete(p):m[0].size===1?(m.shift(),h.add(m[0])):m[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=t.get(h);p?p.push(g):t.set(h,[g])}),f.forEach(h=>{let p=t.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):t.set(h,[new Set([g])])}),a(g)}}}});var R9=w((plt,P9)=>{var MNe=process.env.__FAKE_PLATFORM__||process.platform,KNe=MNe==="win32",UNe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:HNe,O_TRUNC:GNe,O_WRONLY:jNe,UV_FS_O_FILEMAP:D9=0}=UNe.constants,YNe=KNe&&!!D9,qNe=512*1024,JNe=D9|GNe|HNe|jNe;P9.exports=YNe?t=>t"w"});var vR=w((Elt,F9)=>{"use strict";var WNe=require("assert"),dlt=require("events").EventEmitter,zNe=sC(),$t=require("fs"),_Ne=Ef(),cA=require("path"),mR=v9(),Clt=mR.sync,N9=FD(),VNe=x9(),L9=Symbol("onEntry"),ER=Symbol("checkFs"),T9=Symbol("checkFs2"),IR=Symbol("isReusable"),uA=Symbol("makeFs"),yR=Symbol("file"),wR=Symbol("directory"),WB=Symbol("link"),O9=Symbol("symlink"),M9=Symbol("hardlink"),K9=Symbol("unsupported"),mlt=Symbol("unknown"),U9=Symbol("checkPath"),bf=Symbol("mkdir"),dn=Symbol("onError"),zB=Symbol("pending"),H9=Symbol("pend"),Qf=Symbol("unpend"),BR=Symbol("ended"),bR=Symbol("maybeClose"),QR=Symbol("skip"),aC=Symbol("doChown"),AC=Symbol("uid"),lC=Symbol("gid"),G9=require("crypto"),j9=R9(),_B=()=>{throw new Error("sync function called cb somehow?!?")},XNe=(t,e)=>{if(process.platform!=="win32")return $t.unlink(t,e);let r=t+".DELETE."+G9.randomBytes(16).toString("hex");$t.rename(t,r,i=>{if(i)return e(i);$t.unlink(r,e)})},ZNe=t=>{if(process.platform!=="win32")return $t.unlinkSync(t);let e=t+".DELETE."+G9.randomBytes(16).toString("hex");$t.renameSync(t,e),$t.unlinkSync(e)},Y9=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,VB=class extends zNe{constructor(e){if(e||(e={}),e.ondone=r=>{this[BR]=!0,this[bR]()},super(e),this.reservations=VNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[zB]=0,this[BR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=cA.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[L9](r))}warn(e,r,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,r,i)}[bR](){this[BR]&&this[zB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[U9](e){if(this.strip){let r=e.path.split(/\/|\\/);if(r.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let r=e.path;if(r.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;if(cA.win32.isAbsolute(r)){let i=cA.win32.parse(r);e.path=r.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:r})}}if(this.win32){let r=cA.win32.parse(e.path);e.path=r.root===""?N9.encode(e.path):r.root+N9.encode(e.path.substr(r.root.length))}return cA.isAbsolute(e.path)?e.absolute=e.path:e.absolute=cA.resolve(this.cwd,e.path),!0}[L9](e){if(!this[U9](e))return e.resume();switch(WNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ER](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[K9](e)}}[dn](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Qf](),r.resume())}[bf](e,r,i){mR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r},i)}[aC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[AC](e){return Y9(this.uid,e.uid,this.processUid)}[lC](e){return Y9(this.gid,e.gid,this.processGid)}[yR](e,r){let i=e.mode&4095||this.fmode,n=new _Ne.WriteStream(e.absolute,{flags:j9(e.size),mode:i,autoClose:!1});n.on("error",l=>this[dn](l,e));let s=1,o=l=>{if(l)return this[dn](l,e);--s==0&&$t.close(n.fd,c=>{r(),c?this[dn](c,e):this[Qf]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;$t.futimes(u,g,f,h=>h?$t.utimes(c,g,f,p=>o(p&&h)):o())}if(this[aC](e)){s++;let g=this[AC](e),f=this[lC](e);$t.fchown(u,g,f,h=>h?$t.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.pipe(n)}[wR](e,r){let i=e.mode&4095||this.dmode;this[bf](e.absolute,i,n=>{if(n)return r(),this[dn](n,e);let s=1,o=a=>{--s==0&&(r(),this[Qf](),e.resume())};e.mtime&&!this.noMtime&&(s++,$t.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[aC](e)&&(s++,$t.chown(e.absolute,this[AC](e),this[lC](e),o)),o()})}[K9](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[O9](e,r){this[WB](e,e.linkpath,"symlink",r)}[M9](e,r){this[WB](e,cA.resolve(this.cwd,e.linkpath),"link",r)}[H9](){this[zB]++}[Qf](){this[zB]--,this[bR]()}[QR](e){this[Qf](),e.resume()}[IR](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&process.platform!=="win32"}[ER](e){this[H9]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,i=>this[T9](e,i))}[T9](e,r){this[bf](cA.dirname(e.absolute),this.dmode,i=>{if(i)return r(),this[dn](i,e);$t.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[QR](e),r()):n||this[IR](e,s)?this[uA](null,e,r):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[uA](null,e,r):$t.chmod(e.absolute,e.mode,o=>this[uA](o,e,r)):$t.rmdir(e.absolute,o=>this[uA](o,e,r)):XNe(e.absolute,o=>this[uA](o,e,r))})})}[uA](e,r,i){if(e)return this[dn](e,r);switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[yR](r,i);case"Link":return this[M9](r,i);case"SymbolicLink":return this[O9](r,i);case"Directory":case"GNUDumpDir":return this[wR](r,i)}}[WB](e,r,i,n){$t[i](r,e.absolute,s=>{if(s)return this[dn](s,e);n(),this[Qf](),e.resume()})}},q9=class extends VB{constructor(e){super(e)}[ER](e){let r=this[bf](cA.dirname(e.absolute),this.dmode,_B);if(r)return this[dn](r,e);try{let i=$t.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[QR](e);if(this[IR](e,i))return this[uA](null,e,_B);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&$t.chmodSync(e.absolute,e.mode):$t.rmdirSync(e.absolute):ZNe(e.absolute),this[uA](null,e,_B)}catch(n){return this[dn](n,e)}}catch(i){return this[uA](null,e,_B)}}[yR](e,r){let i=e.mode&4095||this.fmode,n=l=>{let c;try{$t.closeSync(o)}catch(u){c=u}(l||c)&&this[dn](l||c,e)},s,o;try{o=$t.openSync(e.absolute,j9(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.on("data",l=>{try{$t.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{$t.futimesSync(o,u,g)}catch(f){try{$t.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[aC](e)){let u=this[AC](e),g=this[lC](e);try{$t.fchownSync(o,u,g)}catch(f){try{$t.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[wR](e,r){let i=e.mode&4095||this.dmode,n=this[bf](e.absolute,i);if(n)return this[dn](n,e);if(e.mtime&&!this.noMtime)try{$t.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[aC](e))try{$t.chownSync(e.absolute,this[AC](e),this[lC](e))}catch(s){}e.resume()}[bf](e,r){try{return mR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(i){return i}}[WB](e,r,i,n){try{$t[i+"Sync"](r,e.absolute),e.resume()}catch(s){return this[dn](s,e)}}};VB.Sync=q9;F9.exports=VB});var V9=w((ylt,J9)=>{"use strict";var $Ne=af(),XB=vR(),W9=require("fs"),z9=Ef(),_9=require("path"),Ilt=J9.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&eLe(i,e),i.file&&i.sync?tLe(i):i.file?rLe(i,r):i.sync?iLe(i):nLe(i)},eLe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||_9.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(_9.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},tLe=t=>{let e=new XB.Sync(t),r=t.file,i=!0,n,s=W9.statSync(r),o=t.maxReadSize||16*1024*1024;new z9.ReadStreamSync(r,{readSize:o,size:s.size}).pipe(e)},rLe=(t,e)=>{let r=new XB(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("close",o),W9.stat(n,(l,c)=>{if(l)a(l);else{let u=new z9.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},iLe=t=>new XB.Sync(t),nLe=t=>new XB(t)});var X9=w(hi=>{"use strict";hi.c=hi.create=LV();hi.r=hi.replace=lR();hi.t=hi.list=GB();hi.u=hi.update=YV();hi.x=hi.extract=V9();hi.Pack=PB();hi.Unpack=vR();hi.Parse=sC();hi.ReadEntry=$d();hi.WriteEntry=UD();hi.Header=uf();hi.Pax=dB();hi.types=Zd()});var r7=w((blt,t7)=>{var kR;t7.exports.getContent=()=>(typeof kR=="undefined"&&(kR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),kR)});var A7=w((xR,a7)=>{(function(t,e){typeof xR=="object"?a7.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(xR,function(){function t(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function r(n,s,o,a,l,c,u){var g="",f=0,h,p,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(b,S){S>0&&(g+=(b[1]?" ":"\u2502")+" "),!p&&b[0]===s&&(p=!0)}),g+=t(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(b){h=++f===y.length,r(b,s[b],h,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;r(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return r(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var fA=w(RR=>{"use strict";Object.defineProperty(RR,"__esModule",{value:!0});RR.default=h7;function h7(){}h7.prototype={diff:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,l=e.length,c=1,u=a+l,g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],r,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(r),count:r.length}]);function h(){for(var m=-1*c;m<=c;m+=2){var y=void 0,b=g[m-1],S=g[m+1],k=(S?S.newPos:0)-m;b&&(g[m-1]=void 0);var T=b&&b.newPos+1=a&&k+1>=l)return o(gLe(s,y.components,r,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();h()||m()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,r,i){var n=e[e.length-1];n&&n.added===r&&n.removed===i?e[e.length-1]={count:n.count+1,added:r,removed:i}:e.push({count:1,added:r,removed:i})},extractCommon:function(e,r,i,n){for(var s=r.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?m:h}),c.value=t.join(u)}else c.value=t.join(r.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&t.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function fLe(t){return{newPos:t.newPos,components:t.components.slice(0)}}});var d7=w(cC=>{"use strict";Object.defineProperty(cC,"__esModule",{value:!0});cC.diffChars=hLe;cC.characterDiff=void 0;var dLe=pLe(fA());function pLe(t){return t&&t.__esModule?t:{default:t}}var p7=new dLe.default;cC.characterDiff=p7;function hLe(t,e,r){return p7.diff(t,e,r)}});var NR=w(FR=>{"use strict";Object.defineProperty(FR,"__esModule",{value:!0});FR.generateOptions=CLe;function CLe(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}});var E7=w(vf=>{"use strict";Object.defineProperty(vf,"__esModule",{value:!0});vf.diffWords=mLe;vf.diffWordsWithSpace=ELe;vf.wordDiff=void 0;var yLe=ILe(fA()),wLe=NR();function ILe(t){return t&&t.__esModule?t:{default:t}}var C7=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,m7=/\S/,uC=new yLe.default;vf.wordDiff=uC;uC.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!m7.test(t)&&!m7.test(e)};uC.tokenize=function(t){for(var e=t.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r{"use strict";Object.defineProperty(Sf,"__esModule",{value:!0});Sf.diffLines=BLe;Sf.diffTrimmedLines=bLe;Sf.lineDiff=void 0;var vLe=QLe(fA()),SLe=NR();function QLe(t){return t&&t.__esModule?t:{default:t}}var ZB=new vLe.default;Sf.lineDiff=ZB;ZB.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var i=0;i{"use strict";Object.defineProperty(gC,"__esModule",{value:!0});gC.diffSentences=kLe;gC.sentenceDiff=void 0;var PLe=xLe(fA());function xLe(t){return t&&t.__esModule?t:{default:t}}var LR=new PLe.default;gC.sentenceDiff=LR;LR.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};function kLe(t,e,r){return LR.diff(t,e,r)}});var y7=w(fC=>{"use strict";Object.defineProperty(fC,"__esModule",{value:!0});fC.diffCss=DLe;fC.cssDiff=void 0;var FLe=RLe(fA());function RLe(t){return t&&t.__esModule?t:{default:t}}var TR=new FLe.default;fC.cssDiff=TR;TR.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function DLe(t,e,r){return TR.diff(t,e,r)}});var B7=w(kf=>{"use strict";Object.defineProperty(kf,"__esModule",{value:!0});kf.diffJson=NLe;kf.canonicalize=e0;kf.jsonDiff=void 0;var w7=LLe(fA()),TLe=$B();function LLe(t){return t&&t.__esModule?t:{default:t}}function t0(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t0=function(r){return typeof r}:t0=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},t0(t)}var OLe=Object.prototype.toString,Au=new w7.default;kf.jsonDiff=Au;Au.useLongestToken=!0;Au.tokenize=TLe.lineDiff.tokenize;Au.castInput=function(t){var e=this.options,r=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o=="undefined"?r:o}:i;return typeof t=="string"?t:JSON.stringify(e0(t,null,null,n),n," ")};Au.equals=function(t,e){return w7.default.prototype.equals.call(Au,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NLe(t,e,r){return Au.diff(t,e,r)}function e0(t,e,r,i,n){e=e||[],r=r||[],i&&(t=i(n,t));var s;for(s=0;s{"use strict";Object.defineProperty(hC,"__esModule",{value:!0});hC.diffArrays=MLe;hC.arrayDiff=void 0;var ULe=KLe(fA());function KLe(t){return t&&t.__esModule?t:{default:t}}var pC=new ULe.default;hC.arrayDiff=pC;pC.tokenize=function(t){return t.slice()};pC.join=pC.removeEmpty=function(t){return t};function MLe(t,e,r){return pC.diff(t,e,r)}});var r0=w(OR=>{"use strict";Object.defineProperty(OR,"__esModule",{value:!0});OR.parsePatch=HLe;function HLe(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.split(/\r\n|[\n\v\f\r\x85]/),i=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],n=[],s=0;function o(){var c={};for(n.push(c);s{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.default=GLe;function GLe(t,e,r){var i=!0,n=!1,s=!1,o=1;return function a(){if(i&&!s){if(n?o++:i=!1,t+o<=r)return o;s=!0}if(!n)return s||(i=!0),e<=t-o?-o++:(n=!0,a())}}});var k7=w(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});i0.applyPatch=v7;i0.applyPatches=jLe;var S7=r0(),qLe=YLe(Q7());function YLe(t){return t&&t.__esModule?t:{default:t}}function v7(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=(0,S7.parsePatch)(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var i=t.split(/\r\n|[\n\v\f\r\x85]/),n=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=e.hunks,o=r.compareLine||function(O,L,pe,Ce){return L===Ce},a=0,l=r.fuzzFactor||0,c=0,u=0,g,f;function h(O,L){for(var pe=0;pe0?Ce[0]:" ",te=Ce.length>0?Ce.substr(1):Ce;if(Oe===" "||Oe==="-"){if(!o(L+1,i[L],Oe,te)&&(a++,a>l))return!1;L++}}return!0}for(var p=0;p0?re[0]:" ",A=re.length>0?re.substr(1):re,oe=j.linedelimiters[J];if(ee===" ")Z++;else if(ee==="-")i.splice(Z,1),n.splice(Z,1);else if(ee==="+")i.splice(Z,0,A),n.splice(Z,0,oe),Z++;else if(ee==="\\"){var le=j.lines[J-1]?j.lines[J-1][0]:null;le==="+"?g=!0:le==="-"&&(f=!0)}}}if(g)for(;!i[i.length-1];)i.pop(),n.pop();else f&&(i.push(""),n.push(` -`));for(var X=0;X{"use strict";Object.defineProperty(dC,"__esModule",{value:!0});dC.structuredPatch=x7;dC.createTwoFilesPatch=P7;dC.createPatch=JLe;var WLe=$B();function KR(t){return VLe(t)||_Le(t)||zLe()}function zLe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _Le(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function VLe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e0?l(j.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(Y=f).push.apply(Y,KR(T.map(function(X){return(k.added?"+":"-")+X}))),k.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&S=a.length-2&&T.length<=o.context){var A=/\n$/.test(r),oe=/\n$/.test(i),le=T.length==0&&f.length>ee.oldLines;!A&&le&&f.splice(ee.oldLines,0,"\\ No newline at end of file"),(!A&&!le||!oe)&&f.push("\\ No newline at end of file")}c.push(ee),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});n0.arrayEqual=XLe;n0.arrayStartsWith=D7;function XLe(t,e){return t.length!==e.length?!1:D7(t,e)}function D7(t,e){if(e.length>t.length)return!1;for(var r=0;r{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.calcLineCount=F7;s0.merge=ZLe;var $Le=UR(),eTe=r0(),HR=R7();function xf(t){return iTe(t)||rTe(t)||tTe()}function tTe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function rTe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function iTe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e{"use strict";Object.defineProperty(YR,"__esModule",{value:!0});YR.convertChangesToDMP=aTe;function aTe(t){for(var e=[],r,i,n=0;n{"use strict";Object.defineProperty(qR,"__esModule",{value:!0});qR.convertChangesToXML=ATe;function ATe(t){for(var e=[],r=0;r"):i.removed&&e.push(""),e.push(lTe(i.value)),i.added?e.push(""):i.removed&&e.push("")}return e.join("")}function lTe(t){var e=t;return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/"/g,"""),e}});var V7=w(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Object.defineProperty(Ur,"Diff",{enumerable:!0,get:function(){return cTe.default}});Object.defineProperty(Ur,"diffChars",{enumerable:!0,get:function(){return uTe.diffChars}});Object.defineProperty(Ur,"diffWords",{enumerable:!0,get:function(){return J7.diffWords}});Object.defineProperty(Ur,"diffWordsWithSpace",{enumerable:!0,get:function(){return J7.diffWordsWithSpace}});Object.defineProperty(Ur,"diffLines",{enumerable:!0,get:function(){return W7.diffLines}});Object.defineProperty(Ur,"diffTrimmedLines",{enumerable:!0,get:function(){return W7.diffTrimmedLines}});Object.defineProperty(Ur,"diffSentences",{enumerable:!0,get:function(){return gTe.diffSentences}});Object.defineProperty(Ur,"diffCss",{enumerable:!0,get:function(){return fTe.diffCss}});Object.defineProperty(Ur,"diffJson",{enumerable:!0,get:function(){return z7.diffJson}});Object.defineProperty(Ur,"canonicalize",{enumerable:!0,get:function(){return z7.canonicalize}});Object.defineProperty(Ur,"diffArrays",{enumerable:!0,get:function(){return hTe.diffArrays}});Object.defineProperty(Ur,"applyPatch",{enumerable:!0,get:function(){return _7.applyPatch}});Object.defineProperty(Ur,"applyPatches",{enumerable:!0,get:function(){return _7.applyPatches}});Object.defineProperty(Ur,"parsePatch",{enumerable:!0,get:function(){return pTe.parsePatch}});Object.defineProperty(Ur,"merge",{enumerable:!0,get:function(){return dTe.merge}});Object.defineProperty(Ur,"structuredPatch",{enumerable:!0,get:function(){return JR.structuredPatch}});Object.defineProperty(Ur,"createTwoFilesPatch",{enumerable:!0,get:function(){return JR.createTwoFilesPatch}});Object.defineProperty(Ur,"createPatch",{enumerable:!0,get:function(){return JR.createPatch}});Object.defineProperty(Ur,"convertChangesToDMP",{enumerable:!0,get:function(){return CTe.convertChangesToDMP}});Object.defineProperty(Ur,"convertChangesToXML",{enumerable:!0,get:function(){return mTe.convertChangesToXML}});var cTe=ETe(fA()),uTe=d7(),J7=E7(),W7=$B(),gTe=I7(),fTe=y7(),z7=B7(),hTe=b7(),_7=k7(),pTe=r0(),dTe=j7(),JR=UR(),CTe=Y7(),mTe=q7();function ETe(t){return t&&t.__esModule?t:{default:t}}});var a0=w((dct,X7)=>{var ITe=Ms(),yTe=yd(),wTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,BTe=/^\w*$/;function bTe(t,e){if(ITe(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||yTe(t)?!0:BTe.test(t)||!wTe.test(t)||e!=null&&t in Object(e)}X7.exports=bTe});var A0=w((Cct,Z7)=>{var QTe=Gc(),vTe=Rn(),STe="[object AsyncFunction]",kTe="[object Function]",xTe="[object GeneratorFunction]",PTe="[object Proxy]";function DTe(t){if(!vTe(t))return!1;var e=QTe(t);return e==kTe||e==xTe||e==STe||e==PTe}Z7.exports=DTe});var eX=w((mct,$7)=>{var RTe=Fs(),FTe=RTe["__core-js_shared__"];$7.exports=FTe});var iX=w((Ect,tX)=>{var WR=eX(),rX=function(){var t=/[^.]+$/.exec(WR&&WR.keys&&WR.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function NTe(t){return!!rX&&rX in t}tX.exports=NTe});var zR=w((Ict,nX)=>{var LTe=Function.prototype,TTe=LTe.toString;function OTe(t){if(t!=null){try{return TTe.call(t)}catch(e){}try{return t+""}catch(e){}}return""}nX.exports=OTe});var oX=w((yct,sX)=>{var MTe=A0(),KTe=iX(),UTe=Rn(),HTe=zR(),GTe=/[\\^$.*+?()[\]{}|]/g,jTe=/^\[object .+?Constructor\]$/,YTe=Function.prototype,qTe=Object.prototype,JTe=YTe.toString,WTe=qTe.hasOwnProperty,zTe=RegExp("^"+JTe.call(WTe).replace(GTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _Te(t){if(!UTe(t)||KTe(t))return!1;var e=MTe(t)?zTe:jTe;return e.test(HTe(t))}sX.exports=_Te});var AX=w((wct,aX)=>{function VTe(t,e){return t==null?void 0:t[e]}aX.exports=VTe});var Sl=w((Bct,lX)=>{var XTe=oX(),ZTe=AX();function $Te(t,e){var r=ZTe(t,e);return XTe(r)?r:void 0}lX.exports=$Te});var CC=w((bct,cX)=>{var eOe=Sl(),tOe=eOe(Object,"create");cX.exports=tOe});var fX=w((Qct,uX)=>{var gX=CC();function rOe(){this.__data__=gX?gX(null):{},this.size=0}uX.exports=rOe});var pX=w((vct,hX)=>{function iOe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}hX.exports=iOe});var CX=w((Sct,dX)=>{var nOe=CC(),sOe="__lodash_hash_undefined__",oOe=Object.prototype,aOe=oOe.hasOwnProperty;function AOe(t){var e=this.__data__;if(nOe){var r=e[t];return r===sOe?void 0:r}return aOe.call(e,t)?e[t]:void 0}dX.exports=AOe});var EX=w((kct,mX)=>{var lOe=CC(),cOe=Object.prototype,uOe=cOe.hasOwnProperty;function gOe(t){var e=this.__data__;return lOe?e[t]!==void 0:uOe.call(e,t)}mX.exports=gOe});var yX=w((xct,IX)=>{var fOe=CC(),hOe="__lodash_hash_undefined__";function pOe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=fOe&&e===void 0?hOe:e,this}IX.exports=pOe});var BX=w((Pct,wX)=>{var dOe=fX(),COe=pX(),mOe=CX(),EOe=EX(),IOe=yX();function Pf(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{function yOe(){this.__data__=[],this.size=0}bX.exports=yOe});var Df=w((Rct,vX)=>{function wOe(t,e){return t===e||t!==t&&e!==e}vX.exports=wOe});var mC=w((Fct,SX)=>{var BOe=Df();function bOe(t,e){for(var r=t.length;r--;)if(BOe(t[r][0],e))return r;return-1}SX.exports=bOe});var xX=w((Nct,kX)=>{var QOe=mC(),vOe=Array.prototype,SOe=vOe.splice;function kOe(t){var e=this.__data__,r=QOe(e,t);if(r<0)return!1;var i=e.length-1;return r==i?e.pop():SOe.call(e,r,1),--this.size,!0}kX.exports=kOe});var DX=w((Lct,PX)=>{var xOe=mC();function POe(t){var e=this.__data__,r=xOe(e,t);return r<0?void 0:e[r][1]}PX.exports=POe});var FX=w((Tct,RX)=>{var DOe=mC();function ROe(t){return DOe(this.__data__,t)>-1}RX.exports=ROe});var LX=w((Oct,NX)=>{var FOe=mC();function NOe(t,e){var r=this.__data__,i=FOe(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}NX.exports=NOe});var EC=w((Mct,TX)=>{var LOe=QX(),TOe=xX(),OOe=DX(),MOe=FX(),KOe=LX();function Rf(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var UOe=Sl(),HOe=Fs(),GOe=UOe(HOe,"Map");OX.exports=GOe});var UX=w((Uct,MX)=>{var KX=BX(),jOe=EC(),YOe=l0();function qOe(){this.size=0,this.__data__={hash:new KX,map:new(YOe||jOe),string:new KX}}MX.exports=qOe});var GX=w((Hct,HX)=>{function JOe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}HX.exports=JOe});var IC=w((Gct,jX)=>{var WOe=GX();function zOe(t,e){var r=t.__data__;return WOe(e)?r[typeof e=="string"?"string":"hash"]:r.map}jX.exports=zOe});var qX=w((jct,YX)=>{var _Oe=IC();function VOe(t){var e=_Oe(this,t).delete(t);return this.size-=e?1:0,e}YX.exports=VOe});var WX=w((Yct,JX)=>{var XOe=IC();function ZOe(t){return XOe(this,t).get(t)}JX.exports=ZOe});var _X=w((qct,zX)=>{var $Oe=IC();function eMe(t){return $Oe(this,t).has(t)}zX.exports=eMe});var XX=w((Jct,VX)=>{var tMe=IC();function rMe(t,e){var r=tMe(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}VX.exports=rMe});var c0=w((Wct,ZX)=>{var iMe=UX(),nMe=qX(),sMe=WX(),oMe=_X(),aMe=XX();function Ff(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var eZ=c0(),AMe="Expected a function";function _R(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(AMe);var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=r.cache;if(s.has(n))return s.get(n);var o=t.apply(this,i);return r.cache=s.set(n,o)||s,o};return r.cache=new(_R.Cache||eZ),r}_R.Cache=eZ;$X.exports=_R});var iZ=w((_ct,rZ)=>{var lMe=tZ(),cMe=500;function uMe(t){var e=lMe(t,function(i){return r.size===cMe&&r.clear(),i}),r=e.cache;return e}rZ.exports=uMe});var sZ=w((Vct,nZ)=>{var gMe=iZ(),fMe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,hMe=/\\(\\)?/g,pMe=gMe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(fMe,function(r,i,n,s){e.push(n?s.replace(hMe,"$1"):i||r)}),e});nZ.exports=pMe});var Nf=w((Xct,oZ)=>{var dMe=Ms(),CMe=a0(),mMe=sZ(),EMe=of();function IMe(t,e){return dMe(t)?t:CMe(t,e)?[t]:mMe(EMe(t))}oZ.exports=IMe});var cu=w((Zct,aZ)=>{var yMe=yd(),wMe=1/0;function BMe(t){if(typeof t=="string"||yMe(t))return t;var e=t+"";return e=="0"&&1/t==-wMe?"-0":e}aZ.exports=BMe});var yC=w(($ct,AZ)=>{var bMe=Nf(),QMe=cu();function vMe(t,e){e=bMe(e,t);for(var r=0,i=e.length;t!=null&&r{var SMe=Sl(),kMe=function(){try{var t=SMe(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();lZ.exports=kMe});var Lf=w((tut,cZ)=>{var uZ=VR();function xMe(t,e,r){e=="__proto__"&&uZ?uZ(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}cZ.exports=xMe});var u0=w((rut,gZ)=>{var PMe=Lf(),DMe=Df(),RMe=Object.prototype,FMe=RMe.hasOwnProperty;function NMe(t,e,r){var i=t[e];(!(FMe.call(t,e)&&DMe(i,r))||r===void 0&&!(e in t))&&PMe(t,e,r)}gZ.exports=NMe});var wC=w((iut,fZ)=>{var LMe=9007199254740991,TMe=/^(?:0|[1-9]\d*)$/;function OMe(t,e){var r=typeof t;return e=e==null?LMe:e,!!e&&(r=="number"||r!="symbol"&&TMe.test(t))&&t>-1&&t%1==0&&t{var MMe=u0(),KMe=Nf(),UMe=wC(),pZ=Rn(),HMe=cu();function GMe(t,e,r,i){if(!pZ(t))return t;e=KMe(e,t);for(var n=-1,s=e.length,o=s-1,a=t;a!=null&&++n{var jMe=yC(),YMe=XR(),qMe=Nf();function JMe(t,e,r){for(var i=-1,n=e.length,s={};++i{function WMe(t,e){return t!=null&&e in Object(t)}mZ.exports=WMe});var yZ=w((aut,IZ)=>{var zMe=Gc(),_Me=Zo(),VMe="[object Arguments]";function XMe(t){return _Me(t)&&zMe(t)==VMe}IZ.exports=XMe});var BC=w((Aut,wZ)=>{var BZ=yZ(),ZMe=Zo(),bZ=Object.prototype,$Me=bZ.hasOwnProperty,eKe=bZ.propertyIsEnumerable,tKe=BZ(function(){return arguments}())?BZ:function(t){return ZMe(t)&&$Me.call(t,"callee")&&!eKe.call(t,"callee")};wZ.exports=tKe});var g0=w((lut,QZ)=>{var rKe=9007199254740991;function iKe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=rKe}QZ.exports=iKe});var ZR=w((cut,vZ)=>{var nKe=Nf(),sKe=BC(),oKe=Ms(),aKe=wC(),AKe=g0(),lKe=cu();function cKe(t,e,r){e=nKe(e,t);for(var i=-1,n=e.length,s=!1;++i{var uKe=EZ(),gKe=ZR();function fKe(t,e){return t!=null&&gKe(t,e,uKe)}SZ.exports=fKe});var xZ=w((gut,kZ)=>{var hKe=CZ(),pKe=$R();function dKe(t,e){return hKe(t,e,function(r,i){return pKe(t,i)})}kZ.exports=dKe});var f0=w((fut,PZ)=>{function CKe(t,e){for(var r=-1,i=e.length,n=t.length;++r{var RZ=Hc(),mKe=BC(),EKe=Ms(),FZ=RZ?RZ.isConcatSpreadable:void 0;function IKe(t){return EKe(t)||mKe(t)||!!(FZ&&t&&t[FZ])}DZ.exports=IKe});var OZ=w((put,LZ)=>{var yKe=f0(),wKe=NZ();function TZ(t,e,r,i,n){var s=-1,o=t.length;for(r||(r=wKe),n||(n=[]);++s0&&r(a)?e>1?TZ(a,e-1,r,i,n):yKe(n,a):i||(n[n.length]=a)}return n}LZ.exports=TZ});var KZ=w((dut,MZ)=>{var BKe=OZ();function bKe(t){var e=t==null?0:t.length;return e?BKe(t,1):[]}MZ.exports=bKe});var HZ=w((Cut,UZ)=>{function QKe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}UZ.exports=QKe});var eF=w((mut,GZ)=>{var vKe=HZ(),jZ=Math.max;function SKe(t,e,r){return e=jZ(e===void 0?t.length-1:e,0),function(){for(var i=arguments,n=-1,s=jZ(i.length-e,0),o=Array(s);++n{function kKe(t){return function(){return t}}YZ.exports=kKe});var h0=w((Iut,JZ)=>{function xKe(t){return t}JZ.exports=xKe});var _Z=w((yut,WZ)=>{var PKe=qZ(),zZ=VR(),DKe=h0(),RKe=zZ?function(t,e){return zZ(t,"toString",{configurable:!0,enumerable:!1,value:PKe(e),writable:!0})}:DKe;WZ.exports=RKe});var XZ=w((wut,VZ)=>{var FKe=800,NKe=16,LKe=Date.now;function TKe(t){var e=0,r=0;return function(){var i=LKe(),n=NKe-(i-r);if(r=i,n>0){if(++e>=FKe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}VZ.exports=TKe});var tF=w((But,ZZ)=>{var OKe=_Z(),MKe=XZ(),KKe=MKe(OKe);ZZ.exports=KKe});var e$=w((but,$Z)=>{var UKe=KZ(),HKe=eF(),GKe=tF();function jKe(t){return GKe(HKe(t,void 0,UKe),t+"")}$Z.exports=jKe});var r$=w((Qut,t$)=>{var YKe=xZ(),qKe=e$(),JKe=qKe(function(t,e){return t==null?{}:YKe(t,e)});t$.exports=JKe});var p$=w((yft,g$)=>{"use strict";var uF;try{uF=Map}catch(t){}var gF;try{gF=Set}catch(t){}function f$(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(h$);if(uF&&t instanceof uF)return new Map(Array.from(t.entries()));if(gF&&t instanceof gF)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var i=Object.create(t);r.push(i);for(var n in t){var s=e.findIndex(function(o){return o===t[n]});i[n]=s>-1?r[s]:f$(t[n],e,r)}return i}return t}function h$(t){return f$(t,[],[])}g$.exports=h$});var SC=w(fF=>{"use strict";Object.defineProperty(fF,"__esModule",{value:!0});fF.default=t1e;var r1e=Object.prototype.toString,i1e=Error.prototype.toString,n1e=RegExp.prototype.toString,s1e=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",o1e=/^Symbol\((.*)\)(.*)$/;function a1e(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function d$(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return a1e(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return s1e.call(t).replace(o1e,"Symbol($1)");let i=r1e.call(t).slice(8,-1);return i==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):i==="Error"||t instanceof Error?"["+i1e.call(t)+"]":i==="RegExp"?n1e.call(t):null}function t1e(t,e){let r=d$(t,e);return r!==null?r:JSON.stringify(t,function(i,n){let s=d$(this[i],e);return s!==null?s:n},2)}});var hA=w(Bi=>{"use strict";Object.defineProperty(Bi,"__esModule",{value:!0});Bi.default=Bi.array=Bi.object=Bi.boolean=Bi.date=Bi.number=Bi.string=Bi.mixed=void 0;var C$=A1e(SC());function A1e(t){return t&&t.__esModule?t:{default:t}}var m$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:i})=>{let n=i!=null&&i!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,C$.default)(r,!0)}\``+(n?` (cast from the value \`${(0,C$.default)(i,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Bi.mixed=m$;var E$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};Bi.string=E$;var I$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Bi.number=I$;var y$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Bi.date=y$;var w$={isValue:"${path} field must be ${value}"};Bi.boolean=w$;var B$={noUnknown:"${path} field has unspecified keys: ${unknown}"};Bi.object=B$;var b$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Bi.array=b$;var l1e=Object.assign(Object.create(null),{mixed:m$,string:E$,number:I$,date:y$,object:B$,array:b$,boolean:w$});Bi.default=l1e});var v$=w((bft,Q$)=>{var c1e=Object.prototype,u1e=c1e.hasOwnProperty;function g1e(t,e){return t!=null&&u1e.call(t,e)}Q$.exports=g1e});var kC=w((Qft,S$)=>{var f1e=v$(),h1e=ZR();function p1e(t,e){return t!=null&&h1e(t,e,f1e)}S$.exports=p1e});var Of=w(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});m0.default=void 0;var d1e=t=>t&&t.__isYupSchema__;m0.default=d1e});var P$=w(E0=>{"use strict";Object.defineProperty(E0,"__esModule",{value:!0});E0.default=void 0;var C1e=k$(kC()),m1e=k$(Of());function k$(t){return t&&t.__esModule?t:{default:t}}var x$=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,C1e.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=r,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,r){let i=this.refs.map(s=>s.getValue(r==null?void 0:r.value,r==null?void 0:r.parent,r==null?void 0:r.context)),n=this.fn.apply(e,i.concat(e,r));if(n===void 0||n===e)return e;if(!(0,m1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(r)}},E1e=x$;E0.default=E1e});var pF=w(hF=>{"use strict";Object.defineProperty(hF,"__esModule",{value:!0});hF.default=I1e;function I1e(t){return t==null?[]:[].concat(t)}});var uu=w(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.default=void 0;var y1e=D$(SC()),w1e=D$(pF());function D$(t){return t&&t.__esModule?t:{default:t}}function dF(){return dF=Object.assign||function(t){for(var e=1;e(0,y1e.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,i,n){super();this.name="ValidationError",this.value=r,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,w1e.default)(e).forEach(s=>{xC.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,xC)}};I0.default=xC});var y0=w(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.default=b1e;var mF=Q1e(uu());function Q1e(t){return t&&t.__esModule?t:{default:t}}var v1e=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function b1e(t,e){let{endEarly:r,tests:i,args:n,value:s,errors:o,sort:a,path:l}=t,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new mF.default(o,s,l)):c(null,s);for(let f=0;f{function S1e(t){return function(e,r,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[t?a:++n];if(r(s[l],l,s)===!1)break}return e}}R$.exports=S1e});var EF=w((Rft,N$)=>{var k1e=F$(),x1e=k1e();N$.exports=x1e});var T$=w((Fft,L$)=>{function P1e(t,e){for(var r=-1,i=Array(t);++r{function D1e(){return!1}O$.exports=D1e});var DC=w((PC,Mf)=>{var R1e=Fs(),F1e=M$(),K$=typeof PC=="object"&&PC&&!PC.nodeType&&PC,U$=K$&&typeof Mf=="object"&&Mf&&!Mf.nodeType&&Mf,N1e=U$&&U$.exports===K$,H$=N1e?R1e.Buffer:void 0,L1e=H$?H$.isBuffer:void 0,T1e=L1e||F1e;Mf.exports=T1e});var j$=w((Lft,G$)=>{var O1e=Gc(),M1e=g0(),K1e=Zo(),U1e="[object Arguments]",H1e="[object Array]",G1e="[object Boolean]",j1e="[object Date]",Y1e="[object Error]",q1e="[object Function]",J1e="[object Map]",W1e="[object Number]",z1e="[object Object]",_1e="[object RegExp]",V1e="[object Set]",X1e="[object String]",Z1e="[object WeakMap]",$1e="[object ArrayBuffer]",eUe="[object DataView]",tUe="[object Float32Array]",rUe="[object Float64Array]",iUe="[object Int8Array]",nUe="[object Int16Array]",sUe="[object Int32Array]",oUe="[object Uint8Array]",aUe="[object Uint8ClampedArray]",AUe="[object Uint16Array]",lUe="[object Uint32Array]",wr={};wr[tUe]=wr[rUe]=wr[iUe]=wr[nUe]=wr[sUe]=wr[oUe]=wr[aUe]=wr[AUe]=wr[lUe]=!0;wr[U1e]=wr[H1e]=wr[$1e]=wr[G1e]=wr[eUe]=wr[j1e]=wr[Y1e]=wr[q1e]=wr[J1e]=wr[W1e]=wr[z1e]=wr[_1e]=wr[V1e]=wr[X1e]=wr[Z1e]=!1;function cUe(t){return K1e(t)&&M1e(t.length)&&!!wr[O1e(t)]}G$.exports=cUe});var w0=w((Tft,Y$)=>{function uUe(t){return function(e){return t(e)}}Y$.exports=uUe});var B0=w((RC,Kf)=>{var gUe=hx(),q$=typeof RC=="object"&&RC&&!RC.nodeType&&RC,FC=q$&&typeof Kf=="object"&&Kf&&!Kf.nodeType&&Kf,fUe=FC&&FC.exports===q$,IF=fUe&&gUe.process,hUe=function(){try{var t=FC&&FC.require&&FC.require("util").types;return t||IF&&IF.binding&&IF.binding("util")}catch(e){}}();Kf.exports=hUe});var b0=w((Oft,J$)=>{var pUe=j$(),dUe=w0(),W$=B0(),z$=W$&&W$.isTypedArray,CUe=z$?dUe(z$):pUe;J$.exports=CUe});var yF=w((Mft,_$)=>{var mUe=T$(),EUe=BC(),IUe=Ms(),yUe=DC(),wUe=wC(),BUe=b0(),bUe=Object.prototype,QUe=bUe.hasOwnProperty;function vUe(t,e){var r=IUe(t),i=!r&&EUe(t),n=!r&&!i&&yUe(t),s=!r&&!i&&!n&&BUe(t),o=r||i||n||s,a=o?mUe(t.length,String):[],l=a.length;for(var c in t)(e||QUe.call(t,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||wUe(c,l)))&&a.push(c);return a}_$.exports=vUe});var Q0=w((Kft,V$)=>{var SUe=Object.prototype;function kUe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||SUe;return t===r}V$.exports=kUe});var wF=w((Uft,X$)=>{function xUe(t,e){return function(r){return t(e(r))}}X$.exports=xUe});var $$=w((Hft,Z$)=>{var PUe=wF(),DUe=PUe(Object.keys,Object);Z$.exports=DUe});var tee=w((Gft,eee)=>{var RUe=Q0(),FUe=$$(),NUe=Object.prototype,LUe=NUe.hasOwnProperty;function TUe(t){if(!RUe(t))return FUe(t);var e=[];for(var r in Object(t))LUe.call(t,r)&&r!="constructor"&&e.push(r);return e}eee.exports=TUe});var NC=w((jft,ree)=>{var OUe=A0(),MUe=g0();function KUe(t){return t!=null&&MUe(t.length)&&!OUe(t)}ree.exports=KUe});var Uf=w((Yft,iee)=>{var UUe=yF(),HUe=tee(),GUe=NC();function jUe(t){return GUe(t)?UUe(t):HUe(t)}iee.exports=jUe});var BF=w((qft,nee)=>{var YUe=EF(),qUe=Uf();function JUe(t,e){return t&&YUe(t,e,qUe)}nee.exports=JUe});var oee=w((Jft,see)=>{var WUe=EC();function zUe(){this.__data__=new WUe,this.size=0}see.exports=zUe});var Aee=w((Wft,aee)=>{function _Ue(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}aee.exports=_Ue});var cee=w((zft,lee)=>{function VUe(t){return this.__data__.get(t)}lee.exports=VUe});var gee=w((_ft,uee)=>{function XUe(t){return this.__data__.has(t)}uee.exports=XUe});var hee=w((Vft,fee)=>{var ZUe=EC(),$Ue=l0(),e2e=c0(),t2e=200;function r2e(t,e){var r=this.__data__;if(r instanceof ZUe){var i=r.__data__;if(!$Ue||i.length{var i2e=EC(),n2e=oee(),s2e=Aee(),o2e=cee(),a2e=gee(),A2e=hee();function Hf(t){var e=this.__data__=new i2e(t);this.size=e.size}Hf.prototype.clear=n2e;Hf.prototype.delete=s2e;Hf.prototype.get=o2e;Hf.prototype.has=a2e;Hf.prototype.set=A2e;pee.exports=Hf});var Cee=w((Zft,dee)=>{var l2e="__lodash_hash_undefined__";function c2e(t){return this.__data__.set(t,l2e),this}dee.exports=c2e});var Eee=w(($ft,mee)=>{function u2e(t){return this.__data__.has(t)}mee.exports=u2e});var yee=w((eht,Iee)=>{var g2e=c0(),f2e=Cee(),h2e=Eee();function v0(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new g2e;++e{function p2e(t,e){for(var r=-1,i=t==null?0:t.length;++r{function d2e(t,e){return t.has(e)}bee.exports=d2e});var bF=w((iht,vee)=>{var C2e=yee(),m2e=Bee(),E2e=Qee(),I2e=1,y2e=2;function w2e(t,e,r,i,n,s){var o=r&I2e,a=t.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(t),u=s.get(e);if(c&&u)return c==e&&u==t;var g=-1,f=!0,h=r&y2e?new C2e:void 0;for(s.set(t,e),s.set(e,t);++g{var B2e=Fs(),b2e=B2e.Uint8Array;See.exports=b2e});var xee=w((sht,kee)=>{function Q2e(t){var e=-1,r=Array(t.size);return t.forEach(function(i,n){r[++e]=[n,i]}),r}kee.exports=Q2e});var Dee=w((oht,Pee)=>{function v2e(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}Pee.exports=v2e});var Tee=w((aht,Ree)=>{var Fee=Hc(),Nee=QF(),S2e=Df(),k2e=bF(),x2e=xee(),P2e=Dee(),D2e=1,R2e=2,F2e="[object Boolean]",N2e="[object Date]",L2e="[object Error]",T2e="[object Map]",O2e="[object Number]",M2e="[object RegExp]",K2e="[object Set]",U2e="[object String]",H2e="[object Symbol]",G2e="[object ArrayBuffer]",j2e="[object DataView]",Lee=Fee?Fee.prototype:void 0,vF=Lee?Lee.valueOf:void 0;function Y2e(t,e,r,i,n,s,o){switch(r){case j2e:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case G2e:return!(t.byteLength!=e.byteLength||!s(new Nee(t),new Nee(e)));case F2e:case N2e:case O2e:return S2e(+t,+e);case L2e:return t.name==e.name&&t.message==e.message;case M2e:case U2e:return t==e+"";case T2e:var a=x2e;case K2e:var l=i&D2e;if(a||(a=P2e),t.size!=e.size&&!l)return!1;var c=o.get(t);if(c)return c==e;i|=R2e,o.set(t,e);var u=k2e(a(t),a(e),i,n,s,o);return o.delete(t),u;case H2e:if(vF)return vF.call(t)==vF.call(e)}return!1}Ree.exports=Y2e});var SF=w((Aht,Oee)=>{var q2e=f0(),J2e=Ms();function W2e(t,e,r){var i=e(t);return J2e(t)?i:q2e(i,r(t))}Oee.exports=W2e});var Kee=w((lht,Mee)=>{function z2e(t,e){for(var r=-1,i=t==null?0:t.length,n=0,s=[];++r{function _2e(){return[]}Uee.exports=_2e});var S0=w((uht,Hee)=>{var V2e=Kee(),X2e=kF(),Z2e=Object.prototype,$2e=Z2e.propertyIsEnumerable,Gee=Object.getOwnPropertySymbols,eHe=Gee?function(t){return t==null?[]:(t=Object(t),V2e(Gee(t),function(e){return $2e.call(t,e)}))}:X2e;Hee.exports=eHe});var xF=w((ght,jee)=>{var tHe=SF(),rHe=S0(),iHe=Uf();function nHe(t){return tHe(t,iHe,rHe)}jee.exports=nHe});var Jee=w((fht,Yee)=>{var qee=xF(),sHe=1,oHe=Object.prototype,aHe=oHe.hasOwnProperty;function AHe(t,e,r,i,n,s){var o=r&sHe,a=qee(t),l=a.length,c=qee(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:aHe.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var m=!0;s.set(t,e),s.set(e,t);for(var y=o;++g{var lHe=Sl(),cHe=Fs(),uHe=lHe(cHe,"DataView");Wee.exports=uHe});var Vee=w((pht,_ee)=>{var gHe=Sl(),fHe=Fs(),hHe=gHe(fHe,"Promise");_ee.exports=hHe});var Zee=w((dht,Xee)=>{var pHe=Sl(),dHe=Fs(),CHe=pHe(dHe,"Set");Xee.exports=CHe});var ete=w((Cht,$ee)=>{var mHe=Sl(),EHe=Fs(),IHe=mHe(EHe,"WeakMap");$ee.exports=IHe});var TC=w((mht,tte)=>{var PF=zee(),DF=l0(),RF=Vee(),FF=Zee(),NF=ete(),rte=Gc(),Gf=zR(),ite="[object Map]",yHe="[object Object]",nte="[object Promise]",ste="[object Set]",ote="[object WeakMap]",ate="[object DataView]",wHe=Gf(PF),BHe=Gf(DF),bHe=Gf(RF),QHe=Gf(FF),vHe=Gf(NF),gu=rte;(PF&&gu(new PF(new ArrayBuffer(1)))!=ate||DF&&gu(new DF)!=ite||RF&&gu(RF.resolve())!=nte||FF&&gu(new FF)!=ste||NF&&gu(new NF)!=ote)&&(gu=function(t){var e=rte(t),r=e==yHe?t.constructor:void 0,i=r?Gf(r):"";if(i)switch(i){case wHe:return ate;case BHe:return ite;case bHe:return nte;case QHe:return ste;case vHe:return ote}return e});tte.exports=gu});var pte=w((Eht,Ate)=>{var LF=LC(),SHe=bF(),kHe=Tee(),xHe=Jee(),lte=TC(),cte=Ms(),ute=DC(),PHe=b0(),DHe=1,gte="[object Arguments]",fte="[object Array]",k0="[object Object]",RHe=Object.prototype,hte=RHe.hasOwnProperty;function FHe(t,e,r,i,n,s){var o=cte(t),a=cte(e),l=o?fte:lte(t),c=a?fte:lte(e);l=l==gte?k0:l,c=c==gte?k0:c;var u=l==k0,g=c==k0,f=l==c;if(f&&ute(t)){if(!ute(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new LF),o||PHe(t)?SHe(t,e,r,i,n,s):kHe(t,e,l,r,i,n,s);if(!(r&DHe)){var h=u&&hte.call(t,"__wrapped__"),p=g&&hte.call(e,"__wrapped__");if(h||p){var m=h?t.value():t,y=p?e.value():e;return s||(s=new LF),n(m,y,r,i,s)}}return f?(s||(s=new LF),xHe(t,e,r,i,n,s)):!1}Ate.exports=FHe});var TF=w((Iht,dte)=>{var NHe=pte(),Cte=Zo();function mte(t,e,r,i,n){return t===e?!0:t==null||e==null||!Cte(t)&&!Cte(e)?t!==t&&e!==e:NHe(t,e,r,i,mte,n)}dte.exports=mte});var Ite=w((yht,Ete)=>{var LHe=LC(),THe=TF(),OHe=1,MHe=2;function KHe(t,e,r,i){var n=r.length,s=n,o=!i;if(t==null)return!s;for(t=Object(t);n--;){var a=r[n];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++n{var UHe=Rn();function HHe(t){return t===t&&!UHe(t)}yte.exports=HHe});var Bte=w((Bht,wte)=>{var GHe=OF(),jHe=Uf();function YHe(t){for(var e=jHe(t),r=e.length;r--;){var i=e[r],n=t[i];e[r]=[i,n,GHe(n)]}return e}wte.exports=YHe});var MF=w((bht,bte)=>{function qHe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}bte.exports=qHe});var vte=w((Qht,Qte)=>{var JHe=Ite(),WHe=Bte(),zHe=MF();function _He(t){var e=WHe(t);return e.length==1&&e[0][2]?zHe(e[0][0],e[0][1]):function(r){return r===t||JHe(r,t,e)}}Qte.exports=_He});var x0=w((vht,Ste)=>{var VHe=yC();function XHe(t,e,r){var i=t==null?void 0:VHe(t,e);return i===void 0?r:i}Ste.exports=XHe});var xte=w((Sht,kte)=>{var ZHe=TF(),$He=x0(),eGe=$R(),tGe=a0(),rGe=OF(),iGe=MF(),nGe=cu(),sGe=1,oGe=2;function aGe(t,e){return tGe(t)&&rGe(e)?iGe(nGe(t),e):function(r){var i=$He(r,t);return i===void 0&&i===e?eGe(r,t):ZHe(e,i,sGe|oGe)}}kte.exports=aGe});var Dte=w((kht,Pte)=>{function AGe(t){return function(e){return e==null?void 0:e[t]}}Pte.exports=AGe});var Fte=w((xht,Rte)=>{var lGe=yC();function cGe(t){return function(e){return lGe(e,t)}}Rte.exports=cGe});var Lte=w((Pht,Nte)=>{var uGe=Dte(),gGe=Fte(),fGe=a0(),hGe=cu();function pGe(t){return fGe(t)?uGe(hGe(t)):gGe(t)}Nte.exports=pGe});var KF=w((Dht,Tte)=>{var dGe=vte(),CGe=xte(),mGe=h0(),EGe=Ms(),IGe=Lte();function yGe(t){return typeof t=="function"?t:t==null?mGe:typeof t=="object"?EGe(t)?CGe(t[0],t[1]):dGe(t):IGe(t)}Tte.exports=yGe});var UF=w((Rht,Ote)=>{var wGe=Lf(),BGe=BF(),bGe=KF();function QGe(t,e){var r={};return e=bGe(e,3),BGe(t,function(i,n,s){wGe(r,n,e(i,n,s))}),r}Ote.exports=QGe});var OC=w((Fht,Mte)=>{"use strict";function fu(t){this._maxSize=t,this.clear()}fu.prototype.clear=function(){this._size=0,this._values=Object.create(null)};fu.prototype.get=function(t){return this._values[t]};fu.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var vGe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Kte=/^\d+$/,SGe=/^\d/,kGe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,xGe=/^\s*(['"]?)(.*?)(\1)\s*$/,HF=512,Ute=new fu(HF),Hte=new fu(HF),Gte=new fu(HF);Mte.exports={Cache:fu,split:jF,normalizePath:GF,setter:function(t){var e=GF(t);return Hte.get(t)||Hte.set(t,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.create=NGe;MC.default=void 0;var LGe=OC(),P0={context:"$",value:"."};function NGe(t,e){return new D0(t,e)}var D0=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===P0.context,this.isValue=this.key[0]===P0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?P0.context:this.isValue?P0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LGe.getter)(this.path,!0),this.map=r.map}getValue(e,r,i){let n=this.isContext?i:this.isValue?e:r;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,r){return this.getValue(e,r==null?void 0:r.parent,r==null?void 0:r.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};MC.default=D0;D0.prototype.__isYupRef=!0});var jte=w(qF=>{"use strict";Object.defineProperty(qF,"__esModule",{value:!0});qF.default=TGe;var OGe=JF(UF()),R0=JF(uu()),MGe=JF(hu());function JF(t){return t&&t.__esModule?t:{default:t}}function F0(){return F0=Object.assign||function(t){for(var e=1;e=0)&&(r[n]=t[n]);return r}function TGe(t){function e(r,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=r,u=KGe(r,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=t,{parent:m,context:y}=a;function b(j){return MGe.default.isRef(j)?j.getValue(n,m,y):j}function S(j={}){let Z=(0,OGe.default)(F0({value:n,originalValue:l,label:o,path:j.path||s},h,j.params),b),J=new R0.default(R0.default.formatError(j.message||p,Z),n,Z.path,j.type||g);return J.params=Z,J}let k=F0({path:s,parent:m,type:g,createError:S,resolve:b,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(k,n,k)).then(j=>{R0.default.isError(j)?i(j):j?i(null,j):i(S())})}catch(j){i(j)}return}let T;try{var Y;if(T=f.call(k,n,k),typeof((Y=T)==null?void 0:Y.then)=="function")throw new Error(`Validation test of type: "${k.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(j){i(j);return}R0.default.isError(T)?i(T):T?i(null,T):i(S())}return e.OPTIONS=t,e}});var WF=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.getIn=Yte;KC.default=void 0;var UGe=OC(),HGe=t=>t.substr(0,t.length-1).substr(1);function Yte(t,e,r,i=r){let n,s,o;return e?((0,UGe.forEach)(e,(a,l,c)=>{let u=l?HGe(a):a;if(t=t.resolve({context:i,parent:n,value:r}),t.innerType){let g=c?parseInt(u,10):0;if(r&&g>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=r,r=r&&r[g],t=t.innerType}if(!c){if(!t.fields||!t.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);n=r,r=r&&r[u],t=t.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:t,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:t}}var GGe=(t,e,r,i)=>Yte(t,e,r,i).schema,jGe=GGe;KC.default=jGe});var Jte=w(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});N0.default=void 0;var qte=YGe(hu());function YGe(t){return t&&t.__esModule?t:{default:t}}var L0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){qte.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){qte.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(r(i.value)===e)return!0;return!1}clone(){let e=new L0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),r.list.forEach(n=>i.delete(n)),r.refs.forEach(n=>i.delete(n)),i}};N0.default=L0});var dA=w(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});T0.default=void 0;var Wte=pA(p$()),jf=hA(),qGe=pA(P$()),zte=pA(y0()),O0=pA(jte()),_te=pA(SC()),JGe=pA(hu()),WGe=WF(),zGe=pA(pF()),Vte=pA(uu()),Xte=pA(Jte());function pA(t){return t&&t.__esModule?t:{default:t}}function qs(){return qs=Object.assign||function(t){for(var e=1;e{this.typeError(jf.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=qs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=qs({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Wte.default)(qs({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=r,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,i=e.clone(),n=qs({},r.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=r._typeError),i._whitelistError||(i._whitelistError=r._whitelistError),i._blacklistError||(i._blacklistError=r._blacklistError),i._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),i.tests=r.tests,i.exclusiveTests=r.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let i=r.conditions;r=r.clone(),r.conditions=[],r=i.reduce((n,s)=>s.resolve(n,e),r),r=r.resolve(e)}return r}cast(e,r={}){let i=this.resolve(qs({value:e},r)),n=i._cast(e,r);if(e!==void 0&&r.assert!==!1&&i.isType(n)!==!0){let s=(0,_te.default)(e),o=(0,_te.default)(n);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". - -attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,r){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,r={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,u=e;l||(u=this._cast(u,qs({assert:!1},r)));let g={value:u,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,zte.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,zte.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,r,i){let n=this.resolve(qs({},r,{value:e}));return typeof i=="function"?n._validate(e,r,i):new Promise((s,o)=>n._validate(e,r,(a,l)=>{a?o(a):s(l)}))}validateSync(e,r){let i=this.resolve(qs({},r,{value:e})),n;return i._validate(e,qs({},r,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,r){return this.validate(e,r).then(()=>!0,i=>{if(Vte.default.isError(i))return!1;throw i})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(i){if(Vte.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Wte.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=jf.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=jf.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=jf.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,O0.default)(r),s=r.exclusive||r.name&&i.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(i.exclusiveTests[r.name]=!!r.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let i=this.clone(),n=(0,zGe.default)(e).map(s=>new JGe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new qGe.default(n,r)),i}typeError(e){var r=this.clone();return r._typeError=(0,O0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=jf.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,O0.default)({message:r,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,r=jf.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,O0.default)({message:r,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:i}=e.spec;return{meta:i,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};T0.default=Aa;Aa.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Aa.prototype[`${t}At`]=function(e,r,i={}){let{parent:n,parentPath:s,schema:o}=(0,WGe.getIn)(this,e,r,i.context);return o[t](n&&n[s],qs({},i,{parent:n,path:e}))};for(let t of["equals","is"])Aa.prototype[t]=Aa.prototype.oneOf;for(let t of["not","nope"])Aa.prototype[t]=Aa.prototype.notOneOf;Aa.prototype.optional=Aa.prototype.notRequired});var $te=w(UC=>{"use strict";Object.defineProperty(UC,"__esModule",{value:!0});UC.create=Zte;UC.default=void 0;var VGe=_Ge(dA());function _Ge(t){return t&&t.__esModule?t:{default:t}}var zF=VGe.default,XGe=zF;UC.default=XGe;function Zte(){return new zF}Zte.prototype=zF.prototype});var Yf=w(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});M0.default=void 0;var ZGe=t=>t==null;M0.default=ZGe});var nre=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.create=ere;HC.default=void 0;var $Ge=tre(dA()),rre=hA(),ire=tre(Yf());function tre(t){return t&&t.__esModule?t:{default:t}}function ere(){return new K0}var K0=class extends $Ge.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=rre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ire.default)(r)||r===!0}})}isFalse(e=rre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ire.default)(r)||r===!1}})}};HC.default=K0;ere.prototype=K0.prototype});var are=w(GC=>{"use strict";Object.defineProperty(GC,"__esModule",{value:!0});GC.create=sre;GC.default=void 0;var la=hA(),CA=ore(Yf()),eje=ore(dA());function ore(t){return t&&t.__esModule?t:{default:t}}var tje=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,rje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,ije=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,nje=t=>(0,CA.default)(t)||t===t.trim(),sje={}.toString();function sre(){return new U0}var U0=class extends eje.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===sje?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=la.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,CA.default)(i)||i.length===this.resolve(e)}})}min(e,r=la.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,CA.default)(i)||i.length>=this.resolve(e)}})}max(e,r=la.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(i){return(0,CA.default)(i)||i.length<=this.resolve(e)}})}matches(e,r){let i=!1,n,s;return r&&(typeof r=="object"?{excludeEmptyString:i=!1,message:n,name:s}=r:n=r),this.test({name:s||"matches",message:n||la.string.matches,params:{regex:e},test:o=>(0,CA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=la.string.email){return this.matches(tje,{name:"email",message:e,excludeEmptyString:!0})}url(e=la.string.url){return this.matches(rje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=la.string.uuid){return this.matches(ije,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=la.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:nje})}lowercase(e=la.string.lowercase){return this.transform(r=>(0,CA.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,CA.default)(r)||r===r.toLowerCase()})}uppercase(e=la.string.uppercase){return this.transform(r=>(0,CA.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,CA.default)(r)||r===r.toUpperCase()})}};GC.default=U0;sre.prototype=U0.prototype});var cre=w(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.create=Are;jC.default=void 0;var pu=hA(),du=lre(Yf()),oje=lre(dA());function lre(t){return t&&t.__esModule?t:{default:t}}var aje=t=>t!=+t;function Are(){return new H0}var H0=class extends oje.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!aje(e)}min(e,r=pu.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,du.default)(i)||i>=this.resolve(e)}})}max(e,r=pu.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,du.default)(i)||i<=this.resolve(e)}})}lessThan(e,r=pu.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(i){return(0,du.default)(i)||ithis.resolve(e)}})}positive(e=pu.number.positive){return this.moreThan(0,e)}negative(e=pu.number.negative){return this.lessThan(0,e)}integer(e=pu.number.integer){return this.test({name:"integer",message:e,test:r=>(0,du.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,du.default)(e)?e:e|0)}round(e){var r,i=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,du.default)(n)?n:Math[e](n))}};jC.default=H0;Are.prototype=H0.prototype});var ure=w(_F=>{"use strict";Object.defineProperty(_F,"__esModule",{value:!0});_F.default=Aje;var lje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aje(t){var e=[1,4,5,6,7,10,11],r=0,i,n;if(n=lje.exec(t)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(r=n[10]*60+n[11],n[9]==="+"&&(r=0-r)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+r,n[6],n[7]))}else i=Date.parse?Date.parse(t):NaN;return i}});var hre=w(YC=>{"use strict";Object.defineProperty(YC,"__esModule",{value:!0});YC.create=VF;YC.default=void 0;var cje=G0(ure()),gre=hA(),fre=G0(Yf()),uje=G0(hu()),gje=G0(dA());function G0(t){return t&&t.__esModule?t:{default:t}}var XF=new Date(""),fje=t=>Object.prototype.toString.call(t)==="[object Date]";function VF(){return new qC}var qC=class extends gje.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,cje.default)(e),isNaN(e)?XF:new Date(e))})})}_typeCheck(e){return fje(e)&&!isNaN(e.getTime())}prepareParam(e,r){let i;if(uje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,r=gre.date.min){let i=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,fre.default)(n)||n>=this.resolve(i)}})}max(e,r=gre.date.max){var i=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,fre.default)(n)||n<=this.resolve(i)}})}};YC.default=qC;qC.INVALID_DATE=XF;VF.prototype=qC.prototype;VF.INVALID_DATE=XF});var dre=w((Jht,pre)=>{function hje(t,e,r,i){var n=-1,s=t==null?0:t.length;for(i&&s&&(r=t[++n]);++n{function pje(t){return function(e){return t==null?void 0:t[e]}}Cre.exports=pje});var Ire=w((zht,Ere)=>{var dje=mre(),Cje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},mje=dje(Cje);Ere.exports=mje});var wre=w((_ht,yre)=>{var Eje=Ire(),Ije=of(),yje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wje="\\u0300-\\u036f",Bje="\\ufe20-\\ufe2f",bje="\\u20d0-\\u20ff",Qje=wje+Bje+bje,vje="["+Qje+"]",Sje=RegExp(vje,"g");function kje(t){return t=Ije(t),t&&t.replace(yje,Eje).replace(Sje,"")}yre.exports=kje});var bre=w((Vht,Bre)=>{var xje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Pje(t){return t.match(xje)||[]}Bre.exports=Pje});var vre=w((Xht,Qre)=>{var Dje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Rje(t){return Dje.test(t)}Qre.exports=Rje});var qre=w((Zht,Sre)=>{var kre="\\ud800-\\udfff",Fje="\\u0300-\\u036f",Nje="\\ufe20-\\ufe2f",Lje="\\u20d0-\\u20ff",Tje=Fje+Nje+Lje,xre="\\u2700-\\u27bf",Pre="a-z\\xdf-\\xf6\\xf8-\\xff",Oje="\\xac\\xb1\\xd7\\xf7",Mje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Kje="\\u2000-\\u206f",Uje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Dre="A-Z\\xc0-\\xd6\\xd8-\\xde",Hje="\\ufe0e\\ufe0f",Rre=Oje+Mje+Kje+Uje,Fre="['\u2019]",Nre="["+Rre+"]",Gje="["+Tje+"]",Lre="\\d+",jje="["+xre+"]",Tre="["+Pre+"]",Ore="[^"+kre+Rre+Lre+xre+Pre+Dre+"]",Yje="\\ud83c[\\udffb-\\udfff]",qje="(?:"+Gje+"|"+Yje+")",Jje="[^"+kre+"]",Mre="(?:\\ud83c[\\udde6-\\uddff]){2}",Kre="[\\ud800-\\udbff][\\udc00-\\udfff]",qf="["+Dre+"]",Wje="\\u200d",Ure="(?:"+Tre+"|"+Ore+")",zje="(?:"+qf+"|"+Ore+")",Hre="(?:"+Fre+"(?:d|ll|m|re|s|t|ve))?",Gre="(?:"+Fre+"(?:D|LL|M|RE|S|T|VE))?",jre=qje+"?",Yre="["+Hje+"]?",_je="(?:"+Wje+"(?:"+[Jje,Mre,Kre].join("|")+")"+Yre+jre+")*",Vje="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Xje="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Zje=Yre+jre+_je,$je="(?:"+[jje,Mre,Kre].join("|")+")"+Zje,eYe=RegExp([qf+"?"+Tre+"+"+Hre+"(?="+[Nre,qf,"$"].join("|")+")",zje+"+"+Gre+"(?="+[Nre,qf+Ure,"$"].join("|")+")",qf+"?"+Ure+"+"+Hre,qf+"+"+Gre,Xje,Vje,Lre,$je].join("|"),"g");function tYe(t){return t.match(eYe)||[]}Sre.exports=tYe});var Wre=w(($ht,Jre)=>{var rYe=bre(),iYe=vre(),nYe=of(),sYe=qre();function oYe(t,e,r){return t=nYe(t),e=r?void 0:e,e===void 0?iYe(t)?sYe(t):rYe(t):t.match(e)||[]}Jre.exports=oYe});var ZF=w((ept,zre)=>{var aYe=dre(),AYe=wre(),lYe=Wre(),cYe="['\u2019]",uYe=RegExp(cYe,"g");function gYe(t){return function(e){return aYe(lYe(AYe(e).replace(uYe,"")),t,"")}}zre.exports=gYe});var Vre=w((tpt,_re)=>{var fYe=ZF(),hYe=fYe(function(t,e,r){return t+(r?"_":"")+e.toLowerCase()});_re.exports=hYe});var Zre=w((rpt,Xre)=>{var pYe=rB(),dYe=ZF(),CYe=dYe(function(t,e,r){return e=e.toLowerCase(),t+(r?pYe(e):e)});Xre.exports=CYe});var eie=w((ipt,$re)=>{var mYe=Lf(),EYe=BF(),IYe=KF();function yYe(t,e){var r={};return e=IYe(e,3),EYe(t,function(i,n,s){mYe(r,e(i,n,s),i)}),r}$re.exports=yYe});var rie=w((npt,$F)=>{$F.exports=function(t){return tie(wYe(t),t)};$F.exports.array=tie;function tie(t,e){var r=t.length,i=new Array(r),n={},s=r,o=BYe(e),a=bYe(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(t[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(m){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--r]=c}}}function wYe(t){for(var e=new Set,r=0,i=t.length;r{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=QYe;var vYe=j0(kC()),SYe=j0(rie()),kYe=OC(),xYe=j0(hu()),PYe=j0(Of());function j0(t){return t&&t.__esModule?t:{default:t}}function QYe(t,e=[]){let r=[],i=[];function n(s,o){var a=(0,kYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,vYe.default)(t,s)){let o=t[s];~i.indexOf(s)||i.push(s),xYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,PYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return SYe.default.array(i,r).reverse()}});var sie=w(tN=>{"use strict";Object.defineProperty(tN,"__esModule",{value:!0});tN.default=DYe;function nie(t,e){let r=Infinity;return t.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return r=n,!0}),r}function DYe(t){return(e,r)=>nie(t,e)-nie(t,r)}});var gie=w(JC=>{"use strict";Object.defineProperty(JC,"__esModule",{value:!0});JC.create=oie;JC.default=void 0;var aie=ca(kC()),Aie=ca(Vre()),RYe=ca(Zre()),FYe=ca(eie()),NYe=ca(UF()),LYe=OC(),lie=hA(),TYe=ca(iie()),cie=ca(sie()),OYe=ca(y0()),MYe=ca(uu()),rN=ca(dA());function ca(t){return t&&t.__esModule?t:{default:t}}function Jf(){return Jf=Object.assign||function(t){for(var e=1;eObject.prototype.toString.call(t)==="[object Object]";function KYe(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(i=>r.indexOf(i)===-1)}var UYe=(0,cie.default)([]),Y0=class extends rN.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=UYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return uie(e)||typeof e=="function"}_cast(e,r={}){var i;let n=super._cast(e,r);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=r.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Jf({},r,{parent:l,__validating:r.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,aie.default)(n,g);if(f){let p,m=n[g];c.path=(r.path?`${r.path}.`:"")+g,f=f.resolve({value:m,context:r.context,parent:l});let y="spec"in f?f.spec:void 0,b=y==null?void 0:y.strict;if(y==null?void 0:y.strip){u=u||g in n;continue}p=!r.__validating||!b?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,r={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(u,g)=>{if(u){if(!MYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!uie(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,m)=>{let y=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,b=this.fields[h];if(b&&"validate"in b){b.validate(g[h],Jf({},r,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),m);return}m(null)});(0,OYe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:r.path},i)})}clone(e){let r=super.clone(e);return r.fields=Jf({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),i=r.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof rN.default&&s instanceof rN.default&&(i[n]=s.concat(o))}return r.withMutation(()=>r.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let i=this.fields[r];e[r]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,cie.default)(Object.keys(n)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,TYe.default)(n,i._excludedEdges),i}pick(e){let r={};for(let i of e)this.fields[i]&&(r[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(r)))}omit(e){let r=this.clone(),i=r.fields;r.fields={};for(let n of e)delete i[n];return r.withMutation(()=>r.shape(i))}from(e,r,i){let n=(0,LYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,aie.default)(s,e)&&(o=Jf({},s),i||delete o[e],o[r]=n(s)),o})}noUnknown(e=!0,r=lie.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:r,test(n){if(n==null)return!0;let s=KYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,r=lie.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,FYe.default)(r,(i,n)=>e(n)))}camelCase(){return this.transformKeys(RYe.default)}snakeCase(){return this.transformKeys(Aie.default)}constantCase(){return this.transformKeys(e=>(0,Aie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,NYe.default)(this.fields,r=>r.describe()),e}};JC.default=Y0;function oie(t){return new Y0(t)}oie.prototype=Y0.prototype});var hie=w(WC=>{"use strict";Object.defineProperty(WC,"__esModule",{value:!0});WC.create=fie;WC.default=void 0;var iN=Wf(Yf()),HYe=Wf(Of()),GYe=Wf(SC()),nN=hA(),jYe=Wf(y0()),YYe=Wf(uu()),qYe=Wf(dA());function Wf(t){return t&&t.__esModule?t:{default:t}}function q0(){return q0=Object.assign||function(t){for(var e=1;e{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch(i){r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let i=super._cast(e,r);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,q0({},r,{path:`${r.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,r={},i){var n,s;let o=[],a=r.sync,l=r.path,c=this.innerType,u=(n=r.abortEarly)!=null?n:this.spec.abortEarly,g=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,p)=>{if(h){if(!YYe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let m=new Array(p.length);for(let y=0;yc.validate(b,k,Y)}(0,jYe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:m},i)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,HYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,GYe.default)(e));return r.innerType=e,r}length(e,r=nN.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,iN.default)(i)||i.length===this.resolve(e)}})}min(e,r){return r=r||nN.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,iN.default)(i)||i.length>=this.resolve(e)}})}max(e,r){return r=r||nN.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,iN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(r):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};WC.default=J0;fie.prototype=J0.prototype});var pie=w(zC=>{"use strict";Object.defineProperty(zC,"__esModule",{value:!0});zC.create=JYe;zC.default=void 0;var zYe=WYe(Of());function WYe(t){return t&&t.__esModule?t:{default:t}}function JYe(t){return new sN(t)}var sN=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,i={})=>{let n=this.builder(r,i);if(!(0,zYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,i){return this._resolve(e,r).validate(e,r,i)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,i){return this._resolve(r,i).validateAt(e,r,i)}validateSyncAt(e,r,i){return this._resolve(r,i).validateSyncAt(e,r,i)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},_Ye=sN;zC.default=_Ye});var die=w(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=VYe;var ZYe=XYe(hA());function XYe(t){return t&&t.__esModule?t:{default:t}}function VYe(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{ZYe.default[e][r]=t[e][r]})})}});var AN=w(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.addMethod=$Ye;Object.defineProperty(Br,"MixedSchema",{enumerable:!0,get:function(){return Cie.default}});Object.defineProperty(Br,"mixed",{enumerable:!0,get:function(){return Cie.create}});Object.defineProperty(Br,"BooleanSchema",{enumerable:!0,get:function(){return aN.default}});Object.defineProperty(Br,"bool",{enumerable:!0,get:function(){return aN.create}});Object.defineProperty(Br,"boolean",{enumerable:!0,get:function(){return aN.create}});Object.defineProperty(Br,"StringSchema",{enumerable:!0,get:function(){return mie.default}});Object.defineProperty(Br,"string",{enumerable:!0,get:function(){return mie.create}});Object.defineProperty(Br,"NumberSchema",{enumerable:!0,get:function(){return Eie.default}});Object.defineProperty(Br,"number",{enumerable:!0,get:function(){return Eie.create}});Object.defineProperty(Br,"DateSchema",{enumerable:!0,get:function(){return Iie.default}});Object.defineProperty(Br,"date",{enumerable:!0,get:function(){return Iie.create}});Object.defineProperty(Br,"ObjectSchema",{enumerable:!0,get:function(){return yie.default}});Object.defineProperty(Br,"object",{enumerable:!0,get:function(){return yie.create}});Object.defineProperty(Br,"ArraySchema",{enumerable:!0,get:function(){return wie.default}});Object.defineProperty(Br,"array",{enumerable:!0,get:function(){return wie.create}});Object.defineProperty(Br,"ref",{enumerable:!0,get:function(){return eqe.create}});Object.defineProperty(Br,"lazy",{enumerable:!0,get:function(){return tqe.create}});Object.defineProperty(Br,"ValidationError",{enumerable:!0,get:function(){return rqe.default}});Object.defineProperty(Br,"reach",{enumerable:!0,get:function(){return iqe.default}});Object.defineProperty(Br,"isSchema",{enumerable:!0,get:function(){return Bie.default}});Object.defineProperty(Br,"setLocale",{enumerable:!0,get:function(){return nqe.default}});Object.defineProperty(Br,"BaseSchema",{enumerable:!0,get:function(){return sqe.default}});var Cie=Cu($te()),aN=Cu(nre()),mie=Cu(are()),Eie=Cu(cre()),Iie=Cu(hre()),yie=Cu(gie()),wie=Cu(hie()),eqe=hu(),tqe=pie(),rqe=_C(uu()),iqe=_C(WF()),Bie=_C(Of()),nqe=_C(die()),sqe=_C(dA());function _C(t){return t&&t.__esModule?t:{default:t}}function bie(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return bie=function(){return t},t}function Cu(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=bie();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function $Ye(t,e,r){if(!t||!(0,Bie.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var xie=w((bpt,XC)=>{"use strict";var Aqe=process.env.TERM_PROGRAM==="Hyper",lqe=process.platform==="win32",vie=process.platform==="linux",lN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Sie=Object.assign({},lN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),kie=Object.assign({},lN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:vie?"\u25B8":"\u276F",pointerSmall:vie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});XC.exports=lqe&&!Aqe?Sie:kie;Reflect.defineProperty(XC.exports,"common",{enumerable:!1,value:lN});Reflect.defineProperty(XC.exports,"windows",{enumerable:!1,value:Sie});Reflect.defineProperty(XC.exports,"other",{enumerable:!1,value:kie})});var mo=w((Qpt,cN)=>{"use strict";var cqe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),uqe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Pie=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},r=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(t.enabled===!1)return s;if(t.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=r(t.styles[o[c]],a,l);return a},n=(s,o,a)=>{t.styles[s]=e({name:s,codes:o}),(t.keys[a]||(t.keys[a]=[])).push(s),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(c){t.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,t),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=uqe,t.hasColor=t.hasAnsi=s=>(t.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&t.ansiRegex.test(s)),t.alias=(s,o)=>{let a=typeof o=="string"?t[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),t.styles[s]=a,a.stack=[s]),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(l){t.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,t),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},t.theme=s=>{if(!cqe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))t.alias(o,s[o]);return t},t.alias("unstyle",s=>typeof s=="string"&&s!==""?(t.ansiRegex.lastIndex=0,s.replace(t.ansiRegex,"")):""),t.alias("noop",s=>s),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=xie(),t.define=n,t};cN.exports=Pie();cN.exports.create=Pie});var Xi=w(Lt=>{"use strict";var gqe=Object.prototype.toString,Js=mo(),Die=!1,uN=[],Rie={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Lt.longest=(t,e)=>t.reduce((r,i)=>Math.max(r,e?i[e].length:i.length),0);Lt.hasColor=t=>!!t&&Js.hasColor(t);var z0=Lt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Lt.nativeType=t=>gqe.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");Lt.isAsyncFn=t=>Lt.nativeType(t)==="asyncfunction";Lt.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";Lt.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;Lt.scrollDown=(t=[])=>[...t.slice(1),t[0]];Lt.scrollUp=(t=[])=>[t.pop(),...t];Lt.reorder=(t=[])=>{let e=t.slice();return e.sort((r,i)=>r.index>i.index?1:r.index{let i=t.length,n=r===i?0:r<0?i-1:r,s=t[e];t[e]=t[n],t[n]=s};Lt.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};Lt.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};Lt.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:i=` -`+r,width:n=80}=e;n-=((i+r).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=t.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),r+c.join(i)};Lt.unmute=t=>{let e=t.stack.find(i=>Js.keys.color.includes(i));return e?Js[e]:t.stack.find(i=>i.slice(2)==="bg")?Js[e.slice(2)]:i=>i};Lt.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";Lt.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Js.keys.color.includes(i));if(e){let i=Js["bg"+Lt.pascal(e)];return i?i.black:t}let r=t.stack.find(i=>i.slice(0,2)==="bg");return r?Js[r.slice(2).toLowerCase()]||t:Js.none};Lt.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Js.keys.color.includes(i)),r=t.stack.find(i=>i.slice(0,2)==="bg");if(e&&!r)return Js[Rie[e]||e];if(r){let i=r.slice(2).toLowerCase(),n=Rie[i];return n&&Js["bg"+Lt.pascal(n)]||t}return Js.none};Lt.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=r<10?"0"+r:r;return n+":"+s+" "+i};Lt.set=(t={},e="",r)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:r;return!Lt.isObject(a)&&s{let i=t[e]==null?e.split(".").reduce((n,s)=>n&&n[s],t):t[e];return i==null?r:i};Lt.mixin=(t,e)=>{if(!z0(t))return e;if(!z0(e))return t;for(let r of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,r);if(i.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&z0(i.value)){let n=Object.getOwnPropertyDescriptor(t,r);z0(n.value)?t[r]=Lt.merge({},t[r],e[r]):Reflect.defineProperty(t,r,i)}else Reflect.defineProperty(t,r,i);else Reflect.defineProperty(t,r,i)}return t};Lt.merge=(...t)=>{let e={};for(let r of t)Lt.mixin(e,r);return e};Lt.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let i of Object.keys(r)){let n=r[i];typeof n=="function"?Lt.define(t,i,n.bind(e)):Lt.define(t,i,n)}};Lt.onExit=t=>{let e=(r,i)=>{Die||(Die=!0,uN.forEach(n=>n()),r===!0&&process.exit(128+i))};uN.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),uN.push(t)};Lt.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};Lt.defineExport=(t,e,r)=>{let i;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():r()}})}});var Fie=w(_f=>{"use strict";_f.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};_f.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};_f.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};_f.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};_f.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var Tie=w((kpt,Nie)=>{"use strict";var Lie=require("readline"),fqe=Fie(),hqe=/^(?:\x1b)([a-zA-Z0-9])$/,pqe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,dqe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Cqe(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function mqe(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var _0=(t="",e={})=>{let r,i=N({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t},e);if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t=""+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=i.sequence||""),i.sequence=i.sequence||t||i.name,t==="\r")i.raw=void 0,i.name="return";else if(t===` -`)i.name="enter";else if(t===" ")i.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x7F"||t==="\b")i.name="backspace",i.meta=t.charAt(0)==="";else if(t===""||t==="")i.name="escape",i.meta=t.length===2;else if(t===" "||t===" ")i.name="space",i.meta=t.length===2;else if(t<="")i.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")i.name="number";else if(t.length===1&&t>="a"&&t<="z")i.name=t;else if(t.length===1&&t>="A"&&t<="Z")i.name=t.toLowerCase(),i.shift=!0;else if(r=hqe.exec(t))i.meta=!0,i.shift=/^[A-Z]$/.test(r[1]);else if(r=pqe.exec(t)){let n=[...t];n[0]===""&&n[1]===""&&(i.option=!0);let s=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),o=(r[3]||r[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=dqe[s],i.shift=Cqe(s)||i.shift,i.ctrl=mqe(s)||i.ctrl}return i};_0.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let i=Lie.createInterface({terminal:!0,input:r});Lie.emitKeypressEvents(r,i);let n=(a,l)=>e(a,_0(a,l),i),s=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",n),i.resume(),()=>{r.isTTY&&r.setRawMode(s),r.removeListener("keypress",n),i.pause(),i.close()}};_0.action=(t,e,r)=>{let i=N(N({},fqe),r);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Nie.exports=_0});var Mie=w((xpt,Oie)=>{"use strict";Oie.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let i=e[r];typeof i=="number"&&(i={interval:i}),Eqe(t,r,i)}};function Eqe(t,e,r={}){let i=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=r.interval||120;i.frames=r.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,t.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),t.once("close",()=>i.stop()),i.stop}});var Hie=w((Ppt,Kie)=>{"use strict";var{define:Iqe,width:yqe}=Xi(),Uie=class{constructor(e){let r=e.options;Iqe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=yqe(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=N({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Kie.exports=Uie});var jie=w((Dpt,Gie)=>{"use strict";var gN=Xi(),Fi=mo(),fN={default:Fi.noop,noop:Fi.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||gN.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||gN.complement(this.primary)},primary:Fi.cyan,success:Fi.green,danger:Fi.magenta,strong:Fi.bold,warning:Fi.yellow,muted:Fi.dim,disabled:Fi.gray,dark:Fi.dim.gray,underline:Fi.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};fN.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Fi.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Fi.visible=t.styles.visible);let e=gN.merge({},fN,t.styles);delete e.merge;for(let r of Object.keys(Fi))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Fi[r]});for(let r of Object.keys(Fi.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Fi[r]});return e};Gie.exports=fN});var qie=w((Rpt,Yie)=>{"use strict";var hN=process.platform==="win32",mA=mo(),wqe=Xi(),pN=ie(N({},mA.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:mA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:mA.symbols.question,submitted:mA.symbols.check,cancelled:mA.symbols.cross},separator:{pending:mA.symbols.pointerSmall,submitted:mA.symbols.middot,cancelled:mA.symbols.middot},radio:{off:hN?"( )":"\u25EF",on:hN?"(*)":"\u25C9",disabled:hN?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});pN.merge=t=>{let e=wqe.merge({},mA.symbols,pN,t.symbols);return delete e.merge,e};Yie.exports=pN});var Wie=w((Fpt,Jie)=>{"use strict";var Bqe=jie(),bqe=qie(),Qqe=Xi();Jie.exports=t=>{t.options=Qqe.merge({},t.options.theme,t.options),t.symbols=bqe.merge(t.options),t.styles=Bqe.merge(t.options)}});var Zie=w((zie,_ie)=>{"use strict";var Vie=process.env.TERM_PROGRAM==="Apple_Terminal",vqe=mo(),dN=Xi(),Eo=_ie.exports=zie,Nr="[",Xie="\x07",CN=!1,kl=Eo.code={bell:Xie,beep:Xie,beginning:`${Nr}G`,down:`${Nr}J`,esc:Nr,getPosition:`${Nr}6n`,hide:`${Nr}?25l`,line:`${Nr}2K`,lineEnd:`${Nr}K`,lineStart:`${Nr}1K`,restorePosition:Nr+(Vie?"8":"u"),savePosition:Nr+(Vie?"7":"s"),screen:`${Nr}2J`,show:`${Nr}?25h`,up:`${Nr}1J`},mu=Eo.cursor={get hidden(){return CN},hide(){return CN=!0,kl.hide},show(){return CN=!1,kl.show},forward:(t=1)=>`${Nr}${t}C`,backward:(t=1)=>`${Nr}${t}D`,nextLine:(t=1)=>`${Nr}E`.repeat(t),prevLine:(t=1)=>`${Nr}F`.repeat(t),up:(t=1)=>t?`${Nr}${t}A`:"",down:(t=1)=>t?`${Nr}${t}B`:"",right:(t=1)=>t?`${Nr}${t}C`:"",left:(t=1)=>t?`${Nr}${t}D`:"",to(t,e){return e?`${Nr}${e+1};${t+1}H`:`${Nr}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?mu.left(-t):t>0?mu.right(t):"",r+=e<0?mu.up(-e):e>0?mu.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:i,input:n,prompt:s,size:o,value:a}=t;if(i=dN.isPrimitive(i)?String(i):"",n=dN.isPrimitive(n)?String(n):"",a=dN.isPrimitive(a)?String(a):"",o){let l=Eo.cursor.up(o)+Eo.cursor.to(s.length),c=n.length-r;return c>0&&(l+=Eo.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+r;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),Eo.cursor.move(l)}}},mN=Eo.erase={screen:kl.screen,up:kl.up,down:kl.down,line:kl.line,lineEnd:kl.lineEnd,lineStart:kl.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return mN.line+mu.to(0);let r=s=>[...vqe.unstyle(s)].length,i=t.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(r(s)-1,0)/e);return(mN.line+mu.prevLine()).repeat(n-1)+mN.line+mu.to(0)}});var Vf=w((Npt,$ie)=>{"use strict";var Sqe=require("events"),ene=mo(),EN=Tie(),kqe=Mie(),xqe=Hie(),Pqe=Wie(),Tn=Xi(),Eu=Zie(),V0=class extends Sqe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,Pqe(this),kqe(this),this.state=new xqe(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Rqe(this.options.margin),this.setMaxListeners(0),Dqe(this)}async keypress(e,r={}){this.keypressed=!0;let i=EN.action(e,EN(e,r),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Eu.code.beep)}cursorHide(){this.stdout.write(Eu.cursor.hide()),Tn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Eu.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Eu.cursor.down(e)+Eu.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:r,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Eu.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:r,prompt:i}=this.state;i=ene.unstyle(i);let n=ene.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` -`),c=l[0],u=l[l.length-1],f=(i+(r?" "+r:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let n=r.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=r&&r[e]!=null?r[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,r,i);return!g&&r&&r[e]?this.resolve(c,s,r,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,i=this.state;return i.timer=r,Tn.isObject(e)&&(e=e[i.status]||e.pending),Tn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Tn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,i=this.state;i.timer=r;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Tn.isObject(s)&&(s=s[i.status]||s.pending),Tn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,r){let i=await this.element("pointer",e,r);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===r,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Tn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,r){let i=await this.element("indicator",e,r);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Tn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Tn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Tn.resolve(this,e,...r)}get base(){return V0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Tn.height(this.stdout,25)}get width(){return this.options.columns||Tn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,i=[r,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function Dqe(t){let e=n=>t[n]===void 0||typeof t[n]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(t.options)){if(r.includes(n)||/^on[A-Z]/.test(n))continue;let s=t.options[n];typeof s=="function"&&e(n)?i.includes(n)||(t[n]=s.bind(t)):typeof t[n]!="function"&&(t[n]=s)}}function Rqe(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=n=>n%2==0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=r(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}$ie.exports=V0});var ine=w((Lpt,tne)=>{"use strict";var Fqe=Xi(),rne={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return rne.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};tne.exports=(t,e={})=>{let r=Fqe.merge({},rne,e.roles);return r[t]||r.default}});var ZC=w((Tpt,nne)=>{"use strict";var Nqe=mo(),Lqe=Vf(),Tqe=ine(),X0=Xi(),{reorder:IN,scrollUp:Oqe,scrollDown:Mqe,isObject:sne,swap:Kqe}=X0,one=class extends Lqe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");sne(r)&&(r=Object.keys(r)),Array.isArray(r)?(i!=null&&(this.index=this.findIndex(i)),r.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(r=i),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,r,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=Tqe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,X0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,Nqe.unstyle(e.message).length));let o=N({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,i){let n=await this.toChoice(e,r,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,r,i){let n=N({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,r,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(n=>this.toggle(n,r));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return ane(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=IN(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=r(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=IN(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=IN(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>r&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===r-1?this.alert():e>r&&i===r-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=Oqe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=Mqe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Kqe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&r.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,r),i),{})}filter(e,r){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return r?o.map(a=>a[r]):o}find(e,r){if(sne(e))return r?e[r]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return r?s[r]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:r,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&r!==!1&&i!==!0&&(s=X0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(i=>i.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let i=this.find(r);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return ane(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:i}=this,n=e.limit||this._limit||r.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function ane(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(X0.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let i=r.choices.filter(n=>!t.isDisabled(n));r.enabled=i.every(n=>n.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}nne.exports=one});var xl=w((Opt,Ane)=>{"use strict";var Uqe=ZC(),yN=Xi(),lne=class extends Uqe{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let i=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!yN.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await this.indicator(e,r)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,r);o&&!yN.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,r),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(yN.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let i=this.margin[0]+r.join(` -`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(r),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Ane.exports=lne});var gne=w((Mpt,cne)=>{"use strict";var Hqe=xl(),Gqe=(t,e)=>{let r=t.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(r),o=e(i.slice(s,s+r.length));return s>=0?i.slice(0,s)+o+i.slice(s+r.length):i}},une=class extends Hqe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:i}=this.state;return this.input=i.slice(0,r)+e+i.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let i=e.toLowerCase();return r.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=Gqe(this.input,e),i=this.choices;this.choices=i.map(n=>ie(N({},n),{message:r(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};cne.exports=une});var BN=w((Kpt,fne)=>{"use strict";var wN=Xi();fne.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||t.styles.placeholder,l=wN.inverse(t.styles.primary),c=m=>l(t.styles.black(m)),u=r,g=" ",f=c(g);if(t.blink&&t.blink.off===!0&&(c=m=>m,f=""),s&&n===0&&i===""&&r==="")return c(g);if(s&&n===0&&(r===i||r===""))return c(i[0])+a(i.slice(1));i=wN.isPrimitive(i)?`${i}`:"",r=wN.isPrimitive(r)?`${r}`:"";let h=i&&i.startsWith(r)&&i!==r,p=h?c(i[r.length]):f;if(n!==r.length&&s===!0&&(u=r.slice(0,n)+c(r[n])+r.slice(n+1),p=""),s===!1&&(p=""),h){let m=t.styles.unstyle(u+p);return u+p+a(i.slice(m.length))}return u+p}});var Z0=w((Upt,hne)=>{"use strict";var jqe=mo(),Yqe=xl(),qqe=BN(),pne=class extends Yqe{constructor(e){super(ie(N({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:i,input:n}=r;return r.value=r.input=n.slice(0,i)+e+n.slice(i),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:i}=e;return e.value=e.input=i.slice(0,r-1)+i.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:i}=e;if(i[r]===void 0)return this.alert();let n=`${i}`.slice(0,r)+`${i}`.slice(r+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:i}=e;return r&&r.startsWith(i)&&i!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let i=await this.resolve(e.separator,this.state,e,r)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,m=this.index===r,y=e.validate||(()=>!0),b=await this.choiceSeparator(e,r),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let k=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,k,this.state)!==!0&&(T="danger");let j=n[T](await this.indicator(e,r))+(e.pad||""),Z=this.indent(e),J=()=>[Z,j,S+b,c,p].filter(Boolean).join(" ");if(i.submitted)return S=jqe.unstyle(S),c=g(c),p="",J();if(e.format)c=await e.format.call(this,c,e,r);else{let re=this.styles.muted;c=qqe(this,{input:c,initial:o,pos:s,showCursor:m,color:re})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,k,e,r)),m&&(S=f(S)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),J()}async submit(){return this.value=this.values,super.base.submit.call(this)}};hne.exports=pne});var bN=w((Hpt,dne)=>{"use strict";var Jqe=Z0(),Wqe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Cne=(t=Wqe)=>{class e extends Jqe{constructor(i){super(i)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Cne(i)}}return e};dne.exports=Cne()});var Ine=w((Gpt,mne)=>{"use strict";var zqe=bN();function _qe(t,e){return t.username===this.options.username&&t.password===this.options.password}var Ene=(t=_qe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class r extends zqe.create(t){constructor(n){super(ie(N({},n),{choices:e}))}static create(n){return Ene(n)}}return r};mne.exports=Ene()});var $0=w((jpt,yne)=>{"use strict";var Vqe=Vf(),{isPrimitive:Xqe,hasColor:Zqe}=Xi(),wne=class extends Vqe{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:i}=this;return i.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return Xqe(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return Zqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(r),this.write([l,a,f].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};yne.exports=wne});var Qne=w((Ypt,Bne)=>{"use strict";var $qe=$0(),bne=class extends $qe{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Bne.exports=bne});var kne=w((qpt,vne)=>{"use strict";var eJe=xl(),tJe=Z0(),Xf=tJe.prototype,Sne=class extends eJe{constructor(e){super(ie(N({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Xf.dispatch.call(this,e,r)}append(e,r){return Xf.append.call(this,e,r)}delete(e,r){return Xf.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Xf.next.call(this):super.next()}prev(){return this.focused.editable?Xf.prev.call(this):super.prev()}async indicator(e,r){let i=e.indicator||"",n=e.editable?i:super.indicator(e,r);return await this.resolve(n,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?Xf.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let i=r.parent?this.value[r.parent.name]:this.value;if(r.editable?i=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(i=r.enabled===!0),e=await r.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};vne.exports=Sne});var Iu=w((Jpt,xne)=>{"use strict";var rJe=Vf(),iJe=BN(),{isPrimitive:nJe}=Xi(),Pne=class extends rJe{constructor(e){super(e);this.initial=nJe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let i=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!i||i.name!=="return")?this.append(` -`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:i}=this.state;this.input=`${i}`.slice(0,r)+e+`${i}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),i=this.input.slice(e),n=r.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):iJe(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),i=await this.separator(),n=await this.message(),s=[r,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};xne.exports=Pne});var Rne=w((Wpt,Dne)=>{"use strict";var sJe=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),eb=t=>sJe(t).filter(Boolean);Dne.exports=(t,e={},r="")=>{let{past:i=[],present:n=""}=e,s,o;switch(t){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:eb([r,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:eb([...s,r]),present:o};case"save":return{past:eb([...i,r]),present:""};case"remove":return o=eb(i.filter(a=>a!==r)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${t}"`)}}});var QN=w((zpt,Fne)=>{"use strict";var oJe=Iu(),Nne=Rne(),Lne=class extends oJe{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let i=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Nne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Nne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Fne.exports=Lne});var Mne=w((_pt,Tne)=>{"use strict";var aJe=Iu(),One=class extends aJe{format(){return""}};Tne.exports=One});var Hne=w((Vpt,Kne)=>{"use strict";var AJe=Iu(),Une=class extends AJe{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Kne.exports=Une});var Yne=w((Xpt,Gne)=>{"use strict";var lJe=xl(),jne=class extends lJe{constructor(e){super(ie(N({},e),{multiple:!0}))}};Gne.exports=jne});var vN=w((Zpt,qne)=>{"use strict";var cJe=Iu(),Jne=class extends cJe{constructor(e={}){super(N({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,i=this.toNumber(this.input);return i>this.max+r?this.alert():(this.input=`${i+r}`,this.render())}down(e){let r=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};qne.exports=Jne});var zne=w(($pt,Wne)=>{Wne.exports=vN()});var Xne=w((edt,_ne)=>{"use strict";var uJe=Iu(),Vne=class extends uJe{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};_ne.exports=Vne});var tse=w((tdt,Zne)=>{"use strict";var gJe=mo(),fJe=ZC(),$ne=Xi(),ese=class extends fJe{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let r=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-r.join("").length,n=Math.round(i/(r.length-1)),o=r.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,r,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,i);let n=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let i=e.scale.map(s=>this.scaleIndicator(e,s,r)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await e.hint;s&&!$ne.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,r),u=await this.renderScale(e,r),g=this.margin[1]+this.margin[3];this.scaleLength=gJe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=$ne.wordWrap(c,{width:this.widths[0],newline:a}).split(` -`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),r=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...r.map(n=>n.join(" "))].join(` -`)}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(r),this.write([a,o,c,g,f].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Zne.exports=ese});var sse=w((rdt,rse)=>{"use strict";var ise=mo(),hJe=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",nse=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=hJe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},pJe=async(t={},e={},r=i=>i)=>{let i=new Set,n=t.fields||[],s=t.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===b.key);b.field=n.find(T=>T.name===b.key),k||(k=new nse(b),a.push(k)),k.lines.push(b.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};rse.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),i=N(N({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await pJe(e,i),a=SN("result",t,e),l=SN("format",t,e),c=SN("validate",t,e,!0),u=t.isValue.bind(t);return async(g={},f=!1)=>{let h=0;g.required=r,g.items=s,g.keys=o,g.output="";let p=async(S,k,T,Y)=>{let j=await c(S,k,T,Y);return j===!1?"Invalid field "+T.name:j};for(let S of n){let k=S.value,T=S.key;if(S.type!=="template"){k&&(g.output+=k);continue}if(S.type==="template"){let Y=s.find(ee=>ee.name===T);e.required===!0&&g.required.add(Y.name);let j=[Y.input,g.values[Y.value],Y.value,k].find(u),J=(Y.field||{}).message||S.inner;if(f){let ee=await p(g.values[T],g,Y,h);if(ee&&typeof ee=="string"||ee===!1){g.invalid.set(T,ee);continue}g.invalid.delete(T);let A=await a(g.values[T],g,Y,h);g.output+=ise.unstyle(A);continue}Y.placeholder=!1;let re=k;k=await l(k,g,Y,h),j!==k?(g.values[T]=j,k=t.styles.typing(j),g.missing.delete(J)):(g.values[T]=void 0,j=`<${J}>`,k=t.styles.primary(j),Y.placeholder=!0,g.required.has(T)&&g.missing.add(J)),g.missing.has(J)&&g.validating&&(k=t.styles.warning(j)),g.invalid.has(T)&&g.validating&&(k=t.styles.danger(j)),h===g.index&&(re!==k?k=t.styles.underline(k):k=t.styles.heading(ise.unstyle(k))),h++}k&&(g.output+=k)}let m=g.output.split(` -`).map(S=>" "+S),y=s.length,b=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(k=>{m[k][0]===" "&&(m[k]=g.styles.danger(g.symbols.bullet)+m[k].slice(1))}),t.isValue(g.values[S.name])&&b++;return g.completed=(b/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function SN(t,e,r,i){return(n,s,o,a)=>typeof o.field[t]=="function"?o.field[t].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Ase=w((idt,ose)=>{"use strict";var dJe=mo(),CJe=sse(),mJe=Vf(),ase=class extends mJe{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await CJe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:i,size:n}=this.state,s=[this.options.newline,` -`].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=r[e]||"",m=await this.format(p),y=await this.footer();m&&(c+=" "+m),f&&!m&&this.state.completed===0&&(c+=" "+f),this.clear(n);let b=[u,c,h,y,g.trim()];this.write(b.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:r,keys:i,index:n}=this.state,s=r.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let o=dJe.unstyle(i).split(` -`).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};ose.exports=ase});var use=w((ndt,lse)=>{"use strict";var EJe="(Use + to sort)",IJe=xl(),cse=class extends IJe{constructor(e){super(ie(N({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,EJe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let i=await super.renderChoice(e,r),n=this.symbols.identicalTo+" ",s=this.index===r&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${r+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};lse.exports=cse});var hse=w((sdt,gse)=>{"use strict";var yJe=ZC(),fse=class extends yJe{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(i=>this.styles.muted(i)),this.state.header=r.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let i of r)i.scale=wJe(5,this.options),i.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],i=r.selected;return e.scale.forEach(n=>n.selected=!1),r.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=k=>(k?this.styles.success("\u25C9"):"\u25EF")+o,u=r+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,r),h=this.indent(e),p=h+e.scale.map((k,T)=>c(T===e.scaleIdx)).join(a),m=k=>k===e.scaleIdx?g(k):k,y=h+e.scale.map((k,T)=>m(T)).join(l),b=()=>[u,f].filter(Boolean).join(" "),S=()=>[b(),p,y," "].filter(Boolean).join(` -`);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` -`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function wJe(t,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>N({},i));let r=[];for(let i=1;i{pse.exports=QN()});var Ese=w((adt,Cse)=>{"use strict";var BJe=$0(),mse=class extends BJe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([r,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Cse.exports=mse});var wse=w((Adt,Ise)=>{"use strict";var bJe=xl(),yse=class extends bJe{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let i=await super.toChoices(e,r);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Ise.exports=yse});var bse=w(kN=>{"use strict";var Bse=Xi(),Ci=(t,e)=>{Bse.defineExport(kN,t,e),Bse.defineExport(kN,t.toLowerCase(),e)};Ci("AutoComplete",()=>gne());Ci("BasicAuth",()=>Ine());Ci("Confirm",()=>Qne());Ci("Editable",()=>kne());Ci("Form",()=>Z0());Ci("Input",()=>QN());Ci("Invisible",()=>Mne());Ci("List",()=>Hne());Ci("MultiSelect",()=>Yne());Ci("Numeral",()=>zne());Ci("Password",()=>Xne());Ci("Scale",()=>tse());Ci("Select",()=>xl());Ci("Snippet",()=>Ase());Ci("Sort",()=>use());Ci("Survey",()=>hse());Ci("Text",()=>dse());Ci("Toggle",()=>Ese());Ci("Quiz",()=>wse())});var vse=w((cdt,Qse)=>{Qse.exports={ArrayPrompt:ZC(),AuthPrompt:bN(),BooleanPrompt:$0(),NumberPrompt:vN(),StringPrompt:Iu()}});var em=w((udt,Sse)=>{"use strict";var kse=require("assert"),xN=require("events"),Pl=Xi(),ua=class extends xN{constructor(e,r){super();this.options=Pl.merge({},e),this.answers=N({},r)}register(e,r){if(Pl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}kse.equal(typeof r,"function","expected a function");let i=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[i]=r:this.prompts[i]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Pl.merge({},this.options,r))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Pl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Pl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];kse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](r),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),r.autofill&&l!=null?(a.value=a.input=l,r.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Vf()}static get prompts(){return bse()}static get types(){return vse()}static get prompt(){let e=(r,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(r)};return Pl.mixinEmitter(e,new xN),e}};Pl.mixinEmitter(ua,new xN);var PN=ua.prompts;for(let t of Object.keys(PN)){let e=t.toLowerCase(),r=i=>new PN[t](i).run();ua.prompt[e]=r,ua[e]=r,ua[t]||Reflect.defineProperty(ua,t,{get:()=>PN[t]})}var $C=t=>{Pl.defineExport(ua,t,()=>ua.types[t])};$C("ArrayPrompt");$C("AuthPrompt");$C("BooleanPrompt");$C("NumberPrompt");$C("StringPrompt");Sse.exports=ua});var Hse=w((eCt,Use)=>{function xJe(t,e){for(var r=-1,i=t==null?0:t.length;++r{var PJe=u0(),DJe=Lf();function RJe(t,e,r,i){var n=!r;r||(r={});for(var s=-1,o=e.length;++s{var FJe=$f(),NJe=Uf();function LJe(t,e){return t&&FJe(e,NJe(e),t)}jse.exports=LJe});var Jse=w((iCt,qse)=>{function TJe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}qse.exports=TJe});var zse=w((nCt,Wse)=>{var OJe=Rn(),MJe=Q0(),KJe=Jse(),UJe=Object.prototype,HJe=UJe.hasOwnProperty;function GJe(t){if(!OJe(t))return KJe(t);var e=MJe(t),r=[];for(var i in t)i=="constructor"&&(e||!HJe.call(t,i))||r.push(i);return r}Wse.exports=GJe});var eh=w((sCt,_se)=>{var jJe=yF(),YJe=zse(),qJe=NC();function JJe(t){return qJe(t)?jJe(t,!0):YJe(t)}_se.exports=JJe});var Xse=w((oCt,Vse)=>{var WJe=$f(),zJe=eh();function _Je(t,e){return t&&WJe(e,zJe(e),t)}Vse.exports=_Je});var TN=w((am,th)=>{var VJe=Fs(),Zse=typeof am=="object"&&am&&!am.nodeType&&am,$se=Zse&&typeof th=="object"&&th&&!th.nodeType&&th,XJe=$se&&$se.exports===Zse,eoe=XJe?VJe.Buffer:void 0,toe=eoe?eoe.allocUnsafe:void 0;function ZJe(t,e){if(e)return t.slice();var r=t.length,i=toe?toe(r):new t.constructor(r);return t.copy(i),i}th.exports=ZJe});var ON=w((aCt,roe)=>{function $Je(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r{var e3e=$f(),t3e=S0();function r3e(t,e){return e3e(t,t3e(t),e)}ioe.exports=r3e});var tb=w((lCt,soe)=>{var i3e=wF(),n3e=i3e(Object.getPrototypeOf,Object);soe.exports=n3e});var MN=w((cCt,ooe)=>{var s3e=f0(),o3e=tb(),a3e=S0(),A3e=kF(),l3e=Object.getOwnPropertySymbols,c3e=l3e?function(t){for(var e=[];t;)s3e(e,a3e(t)),t=o3e(t);return e}:A3e;ooe.exports=c3e});var Aoe=w((uCt,aoe)=>{var u3e=$f(),g3e=MN();function f3e(t,e){return u3e(t,g3e(t),e)}aoe.exports=f3e});var coe=w((gCt,loe)=>{var h3e=SF(),p3e=MN(),d3e=eh();function C3e(t){return h3e(t,d3e,p3e)}loe.exports=C3e});var goe=w((fCt,uoe)=>{var m3e=Object.prototype,E3e=m3e.hasOwnProperty;function I3e(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&E3e.call(t,"index")&&(r.index=t.index,r.input=t.input),r}uoe.exports=I3e});var rb=w((hCt,foe)=>{var hoe=QF();function y3e(t){var e=new t.constructor(t.byteLength);return new hoe(e).set(new hoe(t)),e}foe.exports=y3e});var doe=w((pCt,poe)=>{var w3e=rb();function B3e(t,e){var r=e?w3e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}poe.exports=B3e});var moe=w((dCt,Coe)=>{var b3e=/\w*$/;function Q3e(t){var e=new t.constructor(t.source,b3e.exec(t));return e.lastIndex=t.lastIndex,e}Coe.exports=Q3e});var Boe=w((CCt,Eoe)=>{var Ioe=Hc(),yoe=Ioe?Ioe.prototype:void 0,woe=yoe?yoe.valueOf:void 0;function v3e(t){return woe?Object(woe.call(t)):{}}Eoe.exports=v3e});var KN=w((mCt,boe)=>{var S3e=rb();function k3e(t,e){var r=e?S3e(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}boe.exports=k3e});var voe=w((ECt,Qoe)=>{var x3e=rb(),P3e=doe(),D3e=moe(),R3e=Boe(),F3e=KN(),N3e="[object Boolean]",L3e="[object Date]",T3e="[object Map]",O3e="[object Number]",M3e="[object RegExp]",K3e="[object Set]",U3e="[object String]",H3e="[object Symbol]",G3e="[object ArrayBuffer]",j3e="[object DataView]",Y3e="[object Float32Array]",q3e="[object Float64Array]",J3e="[object Int8Array]",W3e="[object Int16Array]",z3e="[object Int32Array]",_3e="[object Uint8Array]",V3e="[object Uint8ClampedArray]",X3e="[object Uint16Array]",Z3e="[object Uint32Array]";function $3e(t,e,r){var i=t.constructor;switch(e){case G3e:return x3e(t);case N3e:case L3e:return new i(+t);case j3e:return P3e(t,r);case Y3e:case q3e:case J3e:case W3e:case z3e:case _3e:case V3e:case X3e:case Z3e:return F3e(t,r);case T3e:return new i;case O3e:case U3e:return new i(t);case M3e:return D3e(t);case K3e:return new i;case H3e:return R3e(t)}}Qoe.exports=$3e});var xoe=w((ICt,Soe)=>{var eWe=Rn(),koe=Object.create,tWe=function(){function t(){}return function(e){if(!eWe(e))return{};if(koe)return koe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();Soe.exports=tWe});var UN=w((yCt,Poe)=>{var rWe=xoe(),iWe=tb(),nWe=Q0();function sWe(t){return typeof t.constructor=="function"&&!nWe(t)?rWe(iWe(t)):{}}Poe.exports=sWe});var Roe=w((wCt,Doe)=>{var oWe=TC(),aWe=Zo(),AWe="[object Map]";function lWe(t){return aWe(t)&&oWe(t)==AWe}Doe.exports=lWe});var Toe=w((BCt,Foe)=>{var cWe=Roe(),uWe=w0(),Noe=B0(),Loe=Noe&&Noe.isMap,gWe=Loe?uWe(Loe):cWe;Foe.exports=gWe});var Moe=w((bCt,Ooe)=>{var fWe=TC(),hWe=Zo(),pWe="[object Set]";function dWe(t){return hWe(t)&&fWe(t)==pWe}Ooe.exports=dWe});var Goe=w((QCt,Koe)=>{var CWe=Moe(),mWe=w0(),Uoe=B0(),Hoe=Uoe&&Uoe.isSet,EWe=Hoe?mWe(Hoe):CWe;Koe.exports=EWe});var Woe=w((vCt,joe)=>{var IWe=LC(),yWe=Hse(),wWe=u0(),BWe=Yse(),bWe=Xse(),QWe=TN(),vWe=ON(),SWe=noe(),kWe=Aoe(),xWe=xF(),PWe=coe(),DWe=TC(),RWe=goe(),FWe=voe(),NWe=UN(),LWe=Ms(),TWe=DC(),OWe=Toe(),MWe=Rn(),KWe=Goe(),UWe=Uf(),HWe=eh(),GWe=1,jWe=2,YWe=4,Yoe="[object Arguments]",qWe="[object Array]",JWe="[object Boolean]",WWe="[object Date]",zWe="[object Error]",qoe="[object Function]",_We="[object GeneratorFunction]",VWe="[object Map]",XWe="[object Number]",Joe="[object Object]",ZWe="[object RegExp]",$We="[object Set]",e8e="[object String]",t8e="[object Symbol]",r8e="[object WeakMap]",i8e="[object ArrayBuffer]",n8e="[object DataView]",s8e="[object Float32Array]",o8e="[object Float64Array]",a8e="[object Int8Array]",A8e="[object Int16Array]",l8e="[object Int32Array]",c8e="[object Uint8Array]",u8e="[object Uint8ClampedArray]",g8e="[object Uint16Array]",f8e="[object Uint32Array]",dr={};dr[Yoe]=dr[qWe]=dr[i8e]=dr[n8e]=dr[JWe]=dr[WWe]=dr[s8e]=dr[o8e]=dr[a8e]=dr[A8e]=dr[l8e]=dr[VWe]=dr[XWe]=dr[Joe]=dr[ZWe]=dr[$We]=dr[e8e]=dr[t8e]=dr[c8e]=dr[u8e]=dr[g8e]=dr[f8e]=!0;dr[zWe]=dr[qoe]=dr[r8e]=!1;function ib(t,e,r,i,n,s){var o,a=e&GWe,l=e&jWe,c=e&YWe;if(r&&(o=n?r(t,i,n,s):r(t)),o!==void 0)return o;if(!MWe(t))return t;var u=LWe(t);if(u){if(o=RWe(t),!a)return vWe(t,o)}else{var g=DWe(t),f=g==qoe||g==_We;if(TWe(t))return QWe(t,a);if(g==Joe||g==Yoe||f&&!n){if(o=l||f?{}:NWe(t),!a)return l?kWe(t,bWe(o,t)):SWe(t,BWe(o,t))}else{if(!dr[g])return n?t:{};o=FWe(t,g,a)}}s||(s=new IWe);var h=s.get(t);if(h)return h;s.set(t,o),KWe(t)?t.forEach(function(y){o.add(ib(y,e,r,y,t,s))}):OWe(t)&&t.forEach(function(y,b){o.set(b,ib(y,e,r,b,t,s))});var p=c?l?PWe:xWe:l?HWe:UWe,m=u?void 0:p(t);return yWe(m||t,function(y,b){m&&(b=y,y=t[b]),wWe(o,b,ib(y,e,r,b,t,s))}),o}joe.exports=ib});var HN=w((SCt,zoe)=>{var h8e=Woe(),p8e=1,d8e=4;function C8e(t){return h8e(t,p8e|d8e)}zoe.exports=C8e});var Voe=w((kCt,_oe)=>{var m8e=XR();function E8e(t,e,r){return t==null?t:m8e(t,e,r)}_oe.exports=E8e});var rae=w((NCt,tae)=>{function I8e(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}tae.exports=I8e});var nae=w((LCt,iae)=>{var y8e=yC(),w8e=AD();function B8e(t,e){return e.length<2?t:y8e(t,w8e(e,0,-1))}iae.exports=B8e});var oae=w((TCt,sae)=>{var b8e=Nf(),Q8e=rae(),v8e=nae(),S8e=cu();function k8e(t,e){return e=b8e(e,t),t=v8e(t,e),t==null||delete t[S8e(Q8e(e))]}sae.exports=k8e});var Aae=w((OCt,aae)=>{var x8e=oae();function P8e(t,e){return t==null?!0:x8e(t,e)}aae.exports=P8e});var Cae=w((fmt,dae)=>{dae.exports={name:"@yarnpkg/cli",version:"3.2.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"^3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var $N=w((qyt,iAe)=>{"use strict";iAe.exports=function(e,r){r===!0&&(r=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof r=="number"?n[r]:n}});var eL=w((Jyt,nAe)=>{"use strict";var X8e=$N();function sAe(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=X8e(t);return t=t.substring(t.indexOf("://")+3),sAe(e)?!0:t.indexOf("@"){"use strict";var Z8e=$N(),$8e=eL(),e4e=require("querystring");function t4e(t){t=(t||"").trim();var e={protocols:Z8e(t),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:t,query:Object.create(null)},r=t.indexOf("://"),i=-1,n=null,s=null;t.startsWith(".")&&(t.startsWith("./")&&(t=t.substring(2)),e.pathname=t,e.protocol="file");var o=t.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||($8e(t)?e.protocol="ssh":((o==="/"||o==="~")&&(t=t.substring(2)),e.protocol="file"))),r!==-1&&(t=t.substring(r+3)),s=t.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=e4e.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}oAe.exports=t4e});var cAe=w((zyt,AAe)=>{"use strict";var r4e="text/plain",i4e="us-ascii",lAe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),n4e=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:i,data:n,hash:s}=r.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===i4e)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length!==0||l&&l!==r4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`},s4e=(t,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),t=t.trim(),/^data:/i.test(t))return n4e(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname&&(n.pathname=n.pathname.replace(/(?0){let o=n.pathname.split("/"),a=o[o.length-1];lAe(a,e.removeDirectoryIndex)&&(o=o.slice(0,o.length-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])lAe(o,e.removeQueryParameters)&&n.searchParams.delete(o);e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=t;return t=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};AAe.exports=s4e});var gAe=w((_yt,uAe)=>{"use strict";var o4e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a4e=aAe(),A4e=cAe();function l4e(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof t!="string"||!t.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":o4e(e))!=="object"&&(e={stripHash:!1}),t=A4e(t,e));var r=a4e(t);return r}uAe.exports=l4e});var pAe=w((Vyt,fAe)=>{"use strict";var c4e=gAe(),hAe=eL();function u4e(t){var e=c4e(t);e.token="";var r=e.user.split(":");return r.length===2&&(r[1]==="x-oauth-basic"?e.token=r[0]:r[0]==="x-token-auth"&&(e.token=r[1])),hAe(e.protocols)||hAe(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}fAe.exports=u4e});var CAe=w((Xyt,dAe)=>{"use strict";var g4e=pAe();function tL(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=g4e(t),r=e.resource.split("."),i=null;switch(e.toString=function(l){return tL.stringify(this,l)},e.source=r.length>2?r.slice(1-r.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=r[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}tL.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",i=t.user||"git",n=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+i+"@"+t.resource+r+"/"+t.full_name+n:i+"@"+t.resource+":"+t.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+t.resource+r+"/"+t.full_name+n;case"http":case"https":var s=t.token?f4e(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+s+t.resource+r+"/"+t.full_name+n;default:return t.href}};function f4e(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}dAe.exports=tL});var DL=w((ibt,UAe)=>{var R4e=Lf(),F4e=Df();function N4e(t,e,r){(r!==void 0&&!F4e(t[e],r)||r===void 0&&!(e in t))&&R4e(t,e,r)}UAe.exports=N4e});var GAe=w((nbt,HAe)=>{var L4e=NC(),T4e=Zo();function O4e(t){return T4e(t)&&L4e(t)}HAe.exports=O4e});var qAe=w((sbt,jAe)=>{var M4e=Gc(),K4e=tb(),U4e=Zo(),H4e="[object Object]",G4e=Function.prototype,j4e=Object.prototype,YAe=G4e.toString,Y4e=j4e.hasOwnProperty,q4e=YAe.call(Object);function J4e(t){if(!U4e(t)||M4e(t)!=H4e)return!1;var e=K4e(t);if(e===null)return!0;var r=Y4e.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&YAe.call(r)==q4e}jAe.exports=J4e});var RL=w((obt,JAe)=>{function W4e(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}JAe.exports=W4e});var zAe=w((abt,WAe)=>{var z4e=$f(),_4e=eh();function V4e(t){return z4e(t,_4e(t))}WAe.exports=V4e});var ele=w((Abt,_Ae)=>{var VAe=DL(),X4e=TN(),Z4e=KN(),$4e=ON(),eze=UN(),XAe=BC(),ZAe=Ms(),tze=GAe(),rze=DC(),ize=A0(),nze=Rn(),sze=qAe(),oze=b0(),$Ae=RL(),aze=zAe();function Aze(t,e,r,i,n,s,o){var a=$Ae(t,r),l=$Ae(e,r),c=o.get(l);if(c){VAe(t,r,c);return}var u=s?s(a,l,r+"",t,e,o):void 0,g=u===void 0;if(g){var f=ZAe(l),h=!f&&rze(l),p=!f&&!h&&oze(l);u=l,f||h||p?ZAe(a)?u=a:tze(a)?u=$4e(a):h?(g=!1,u=X4e(l,!0)):p?(g=!1,u=Z4e(l,!0)):u=[]:sze(l)||XAe(l)?(u=a,XAe(a)?u=aze(a):(!nze(a)||ize(a))&&(u=eze(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),VAe(t,r,u)}_Ae.exports=Aze});var ile=w((lbt,tle)=>{var lze=LC(),cze=DL(),uze=EF(),gze=ele(),fze=Rn(),hze=eh(),pze=RL();function rle(t,e,r,i,n){t!==e&&uze(e,function(s,o){if(n||(n=new lze),fze(s))gze(t,e,o,r,rle,i,n);else{var a=i?i(pze(t,o),s,o+"",t,e,n):void 0;a===void 0&&(a=s),cze(t,o,a)}},hze)}tle.exports=rle});var sle=w((cbt,nle)=>{var dze=h0(),Cze=eF(),mze=tF();function Eze(t,e){return mze(Cze(t,e,dze),t+"")}nle.exports=Eze});var ale=w((ubt,ole)=>{var Ize=Df(),yze=NC(),wze=wC(),Bze=Rn();function bze(t,e,r){if(!Bze(r))return!1;var i=typeof e;return(i=="number"?yze(r)&&wze(e,r.length):i=="string"&&e in r)?Ize(r[e],t):!1}ole.exports=bze});var lle=w((gbt,Ale)=>{var Qze=sle(),vze=ale();function Sze(t){return Qze(function(e,r){var i=-1,n=r.length,s=n>1?r[n-1]:void 0,o=n>2?r[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&vze(r[0],r[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var kze=ile(),xze=lle(),Pze=xze(function(t,e,r){kze(t,e,r)});cle.exports=Pze});var Sle=w((mQt,vle)=>{var JL;vle.exports=()=>(typeof JL=="undefined"&&(JL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),JL)});var Mle=w((XQt,Ole)=>{var VL;Ole.exports=()=>(typeof VL=="undefined"&&(VL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),VL)});var Jle=w((iT,nT)=>{(function(t){iT&&typeof iT=="object"&&typeof nT!="undefined"?nT.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window!="undefined"?window.isWindows=t():typeof global!="undefined"?global.isWindows=t():typeof self!="undefined"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Vle=w((iSt,Wle)=>{"use strict";sT.ifExists=m5e;var Ah=require("util"),Ws=require("path"),zle=Jle(),E5e=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,I5e={createPwshFile:!0,createCmdFile:zle(),fs:require("fs")},y5e=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function _le(t){let e=N(N({},I5e),t),r=e.fs;return e.fs_={chmod:r.chmod?Ah.promisify(r.chmod):async()=>{},mkdir:Ah.promisify(r.mkdir),readFile:Ah.promisify(r.readFile),stat:Ah.promisify(r.stat),unlink:Ah.promisify(r.unlink),writeFile:Ah.promisify(r.writeFile)},e}async function sT(t,e,r){let i=_le(r);await i.fs_.stat(t),await w5e(t,e,i)}function m5e(t,e,r){return sT(t,e,r).catch(()=>{})}function B5e(t,e){return e.fs_.unlink(t).catch(()=>{})}async function w5e(t,e,r){let i=await v5e(t,r);return await b5e(e,r),Q5e(t,e,i,r)}function b5e(t,e){return e.fs_.mkdir(Ws.dirname(t),{recursive:!0})}function Q5e(t,e,r,i){let n=_le(i),s=[{generator:x5e,extension:""}];return n.createCmdFile&&s.push({generator:k5e,extension:".cmd"}),n.createPwshFile&&s.push({generator:P5e,extension:".ps1"}),Promise.all(s.map(o=>S5e(t,e+o.extension,r,o.generator,n)))}function D5e(t,e){return B5e(t,e)}function F5e(t,e){return R5e(t,e)}async function v5e(t,e){let n=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(E5e);if(!n){let s=Ws.extname(t).toLowerCase();return{program:y5e.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function S5e(t,e,r,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[r.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:r.program,args:o}),await D5e(e,n),await n.fs_.writeFile(e,i(t,e,n),"utf8"),F5e(e,n)}function k5e(t,e,r){let n=Ws.relative(Ws.dirname(e),t).split("/").join("\\"),s=Ws.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=r.prog,l=r.args||"",c=oT(r.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r -`:"";return o?g+=`@IF EXIST ${o} (\r - ${o} ${l} ${n} ${u}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${a} ${l} ${n} ${u}%*\r -)\r -`:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function x5e(t,e,r){let i=Ws.relative(Ws.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ws.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=r.args||"",l=oT(r.nodePath).posix;n?(s=`"$basedir/${r.prog}"`,i=o):(n=o,a="",i="");let c=r.progArgs?`${r.progArgs.join(" ")} `:"",u=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,g=r.nodePath?`export NODE_PATH="${l}" -`:"";return s?u+=`${g}if [ -x ${s} ]; then - exec ${s} ${a} ${i} ${c}"$@" -else - exec ${n} ${a} ${i} ${c}"$@" -fi -`:u+=`${g}${n} ${a} ${i} ${c}"$@" -exit $? -`,u}function P5e(t,e,r){let i=Ws.relative(Ws.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ws.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=r.args||"",c=oT(r.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${r.prog}$exe"`,i=a):(s=a,l="",i="");let f=r.progArgs?`${r.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${r.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${u}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return r.nodePath&&(h+=` else { - $env:NODE_PATH="${g}" -}`),o?h+=` -$ret=0 -if (Test-Path ${o}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${o} ${l} ${i} ${f}$args - } else { - & ${o} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args - } else { - & ${s} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:h+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args -} else { - & ${s} ${l} ${i} ${f}$args -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,h}function R5e(t,e){return e.fs_.chmod(t,493)}function oT(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Ws.delimiter):Array.from(t),r={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${s}`:s,r[i]={win32:n,posix:s}}return r}Wle.exports=sT});var yT=w((Kkt,dce)=>{dce.exports=require("stream")});var Ice=w((Ukt,Cce)=>{"use strict";function mce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function $5e(t){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(r){var i={data:r,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=r+i.data;return n}},{key:"concat",value:function(r){if(this.length===0)return yb.alloc(0);for(var i=yb.allocUnsafe(r>>>0),n=this.head,s=0;n;)s_e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(r,i){var n;return ro.length?o.length:r;if(a===o.length?s+=o:s+=o.slice(0,r),r-=a,r===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(r){var i=yb.allocUnsafe(r),n=this.head,s=1;for(n.data.copy(i),r-=n.data.length;n=n.next;){var o=n.data,a=r>o.length?o.length:r;if(o.copy(i,i.length-r,0,a),r-=a,r===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:n_e,value:function(r,i){return wT(this,$5e({},i,{depth:0,customInspect:!1}))}}]),t}()});var bT=w((Hkt,yce)=>{"use strict";function o_e(t,e){var r=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BT,this,t)):process.nextTick(BT,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(wb,r):(r._writableState.errorEmitted=!0,process.nextTick(wce,r,s)):process.nextTick(wce,r,s):e?(process.nextTick(wb,r),e(s)):process.nextTick(wb,r)}),this)}function wce(t,e){BT(t,e),wb(t)}function wb(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a_e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BT(t,e){t.emit("error",e)}function A_e(t,e){var r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}yce.exports={destroy:o_e,undestroy:a_e,errorOrDestroy:A_e}});var Ll=w((Gkt,Bce)=>{"use strict";var bce={};function zs(t,e,r){r||(r=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends r{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=r.name,n.prototype.code=t,bce[t]=n}function Qce(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(i=>String(i)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function l_e(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function c_e(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function u_e(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}zs("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);zs("ERR_INVALID_ARG_TYPE",function(t,e,r){let i;typeof e=="string"&&l_e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(c_e(t," argument"))n=`The ${t} ${i} ${Qce(e,"type")}`;else{let s=u_e(t,".")?"property":"argument";n=`The "${t}" ${s} ${i} ${Qce(e,"type")}`}return n+=`. Received type ${typeof r}`,n},TypeError);zs("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");zs("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});zs("ERR_STREAM_PREMATURE_CLOSE","Premature close");zs("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});zs("ERR_MULTIPLE_CALLBACK","Callback called multiple times");zs("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");zs("ERR_STREAM_WRITE_AFTER_END","write after end");zs("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);zs("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);zs("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Bce.exports.codes=bce});var QT=w((jkt,vce)=>{"use strict";var g_e=Ll().codes.ERR_INVALID_OPT_VALUE;function f_e(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function h_e(t,e,r,i){var n=f_e(e,i,r);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?r:"highWaterMark";throw new g_e(s,n)}return Math.floor(n)}return t.objectMode?16:16*1024}vce.exports={getHighWaterMark:h_e}});var Sce=w((Ykt,vT)=>{typeof Object.create=="function"?vT.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:vT.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Tl=w((qkt,ST)=>{try{if(kT=require("util"),typeof kT.inherits!="function")throw"";ST.exports=kT.inherits}catch(t){ST.exports=Sce()}var kT});var xce=w((Jkt,kce)=>{kce.exports=require("util").deprecate});var DT=w((Wkt,Pce)=>{"use strict";Pce.exports=jr;function Dce(t){var e=this;this.next=null,this.entry=null,this.finish=function(){p_e(e,t)}}var uh;jr.WritableState=Vm;var d_e={deprecate:xce()},Rce=yT(),Bb=require("buffer").Buffer,C_e=global.Uint8Array||function(){};function m_e(t){return Bb.from(t)}function E_e(t){return Bb.isBuffer(t)||t instanceof C_e}var xT=bT(),I_e=QT(),y_e=I_e.getHighWaterMark,Ol=Ll().codes,w_e=Ol.ERR_INVALID_ARG_TYPE,B_e=Ol.ERR_METHOD_NOT_IMPLEMENTED,b_e=Ol.ERR_MULTIPLE_CALLBACK,Q_e=Ol.ERR_STREAM_CANNOT_PIPE,v_e=Ol.ERR_STREAM_DESTROYED,S_e=Ol.ERR_STREAM_NULL_VALUES,k_e=Ol.ERR_STREAM_WRITE_AFTER_END,x_e=Ol.ERR_UNKNOWN_ENCODING,gh=xT.errorOrDestroy;Tl()(jr,Rce);function P_e(){}function Vm(t,e,r){uh=uh||Su(),t=t||{},typeof r!="boolean"&&(r=e instanceof uh),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=y_e(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=t.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){D_e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Dce(this)}Vm.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(Vm.prototype,"buffer",{get:d_e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}})();var bb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(bb=Function.prototype[Symbol.hasInstance],Object.defineProperty(jr,Symbol.hasInstance,{value:function(e){return bb.call(this,e)?!0:this!==jr?!1:e&&e._writableState instanceof Vm}})):bb=function(e){return e instanceof this};function jr(t){uh=uh||Su();var e=this instanceof uh;if(!e&&!bb.call(jr,this))return new jr(t);this._writableState=new Vm(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),Rce.call(this)}jr.prototype.pipe=function(){gh(this,new Q_e)};function R_e(t,e){var r=new k_e;gh(t,r),process.nextTick(e,r)}function F_e(t,e,r,i){var n;return r===null?n=new S_e:typeof r!="string"&&!e.objectMode&&(n=new w_e("chunk",["string","Buffer"],r)),n?(gh(t,n),process.nextTick(i,n),!1):!0}jr.prototype.write=function(t,e,r){var i=this._writableState,n=!1,s=!i.objectMode&&E_e(t);return s&&!Bb.isBuffer(t)&&(t=m_e(t)),typeof e=="function"&&(r=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof r!="function"&&(r=P_e),i.ending?R_e(this,r):(s||F_e(this,i,t,r))&&(i.pendingcb++,n=N_e(this,i,s,t,e,r)),n};jr.prototype.cork=function(){this._writableState.corked++};jr.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Fce(this,t))};jr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new x_e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(jr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function L_e(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=Bb.from(e,r)),e}Object.defineProperty(jr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function N_e(t,e,r,i,n,s){if(!r){var o=L_e(e,i,n);i!==o&&(r=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var G_e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};Tce.exports=da;var Oce=RT(),FT=DT();Tl()(da,Oce);for(NT=G_e(FT.prototype),Qb=0;Qb{var Sb=require("buffer"),bA=Sb.Buffer;function Kce(t,e){for(var r in t)e[r]=t[r]}bA.from&&bA.alloc&&bA.allocUnsafe&&bA.allocUnsafeSlow?Mce.exports=Sb:(Kce(Sb,LT),LT.Buffer=fh);function fh(t,e,r){return bA(t,e,r)}Kce(bA,fh);fh.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return bA(t,e,r)};fh.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=bA(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};fh.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return bA(t)};fh.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Sb.SlowBuffer(t)}});var MT=w(Hce=>{"use strict";var TT=Uce().Buffer,Gce=TT.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function q_e(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function J_e(t){var e=q_e(t);if(typeof e!="string"&&(TT.isEncoding===Gce||!Gce(t)))throw new Error("Unknown encoding: "+t);return e||t}Hce.StringDecoder=Zm;function Zm(t){this.encoding=J_e(t);var e;switch(this.encoding){case"utf16le":this.text=z_e,this.end=__e,e=4;break;case"utf8":this.fillLast=W_e,e=4;break;case"base64":this.text=V_e,this.end=X_e,e=3;break;default:this.write=Z_e,this.end=$_e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=TT.allocUnsafe(e)}Zm.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function r6e(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:t.lastNeed=n-3),n):0))}function i6e(t,e,r){if((e[0]&192)!=128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return t.lastNeed=2,"\uFFFD"}}function W_e(t){var e=this.lastTotal-this.lastNeed,r=i6e(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function t6e(t,e){var r=r6e(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function e6e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function z_e(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function __e(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function V_e(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function X_e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function Z_e(t){return t.toString(this.encoding)}function $_e(t){return t&&t.length?this.write(t):""}});var kb=w((Vkt,jce)=>{"use strict";var Yce=Ll().codes.ERR_STREAM_PREMATURE_CLOSE;function n6e(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,i=new Array(r),n=0;n{"use strict";var xb;function Ml(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a6e=kb(),Kl=Symbol("lastResolve"),ku=Symbol("lastReject"),$m=Symbol("error"),Pb=Symbol("ended"),xu=Symbol("lastPromise"),KT=Symbol("handlePromise"),Pu=Symbol("stream");function Ul(t,e){return{value:t,done:e}}function A6e(t){var e=t[Kl];if(e!==null){var r=t[Pu].read();r!==null&&(t[xu]=null,t[Kl]=null,t[ku]=null,e(Ul(r,!1)))}}function l6e(t){process.nextTick(A6e,t)}function c6e(t,e){return function(r,i){t.then(function(){if(e[Pb]){r(Ul(void 0,!0));return}e[KT](r,i)},i)}}var u6e=Object.getPrototypeOf(function(){}),g6e=Object.setPrototypeOf((xb={get stream(){return this[Pu]},next:function(){var e=this,r=this[$m];if(r!==null)return Promise.reject(r);if(this[Pb])return Promise.resolve(Ul(void 0,!0));if(this[Pu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[$m]?a(e[$m]):o(Ul(void 0,!0))})});var i=this[xu],n;if(i)n=new Promise(c6e(i,this));else{var s=this[Pu].read();if(s!==null)return Promise.resolve(Ul(s,!1));n=new Promise(this[KT])}return this[xu]=n,n}},Ml(xb,Symbol.asyncIterator,function(){return this}),Ml(xb,"return",function(){var e=this;return new Promise(function(r,i){e[Pu].destroy(null,function(n){if(n){i(n);return}r(Ul(void 0,!0))})})}),xb),u6e),f6e=function(e){var r,i=Object.create(g6e,(r={},Ml(r,Pu,{value:e,writable:!0}),Ml(r,Kl,{value:null,writable:!0}),Ml(r,ku,{value:null,writable:!0}),Ml(r,$m,{value:null,writable:!0}),Ml(r,Pb,{value:e._readableState.endEmitted,writable:!0}),Ml(r,KT,{value:function(s,o){var a=i[Pu].read();a?(i[xu]=null,i[Kl]=null,i[ku]=null,s(Ul(a,!1))):(i[Kl]=s,i[ku]=o)},writable:!0}),r));return i[xu]=null,a6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[ku];s!==null&&(i[xu]=null,i[Kl]=null,i[ku]=null,s(n)),i[$m]=n;return}var o=i[Kl];o!==null&&(i[xu]=null,i[Kl]=null,i[ku]=null,o(Ul(void 0,!0))),i[Pb]=!0}),e.on("readable",l6e.bind(null,i)),i};Jce.exports=f6e});var Xce=w((Zkt,zce)=>{"use strict";function _ce(t,e,r,i,n,s,o){try{var a=t[s](o),l=a.value}catch(c){r(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function h6e(t){return function(){var e=this,r=arguments;return new Promise(function(i,n){var s=t.apply(e,r);function o(l){_ce(s,i,n,o,a,"next",l)}function a(l){_ce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Vce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function d6e(t){for(var e=1;e{"use strict";Zce.exports=Ut;var hh;Ut.ReadableState=$ce;var $kt=require("events").EventEmitter,eue=function(e,r){return e.listeners(r).length},eE=yT(),Db=require("buffer").Buffer,E6e=global.Uint8Array||function(){};function I6e(t){return Db.from(t)}function y6e(t){return Db.isBuffer(t)||t instanceof E6e}var UT=require("util"),xt;UT&&UT.debuglog?xt=UT.debuglog("stream"):xt=function(){};var w6e=Ice(),HT=bT(),B6e=QT(),b6e=B6e.getHighWaterMark,Rb=Ll().codes,Q6e=Rb.ERR_INVALID_ARG_TYPE,v6e=Rb.ERR_STREAM_PUSH_AFTER_EOF,S6e=Rb.ERR_METHOD_NOT_IMPLEMENTED,k6e=Rb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,ph,GT,jT;Tl()(Ut,eE);var tE=HT.errorOrDestroy,YT=["error","close","destroy","pause","resume"];function x6e(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function $ce(t,e,r){hh=hh||Su(),t=t||{},typeof r!="boolean"&&(r=e instanceof hh),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=b6e(this,t,"readableHighWaterMark",r),this.buffer=new w6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(ph||(ph=MT().StringDecoder),this.decoder=new ph(t.encoding),this.encoding=t.encoding)}function Ut(t){if(hh=hh||Su(),!(this instanceof Ut))return new Ut(t);var e=this instanceof hh;this._readableState=new $ce(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),eE.call(this)}Object.defineProperty(Ut.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=HT.destroy;Ut.prototype._undestroy=HT.undestroy;Ut.prototype._destroy=function(t,e){e(t)};Ut.prototype.push=function(t,e){var r=this._readableState,i;return r.objectMode?i=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=Db.from(t,e),e=""),i=!0),tue(this,t,e,!1,i)};Ut.prototype.unshift=function(t){return tue(this,t,null,!0,!1)};function tue(t,e,r,i,n){xt("readableAddChunk",e);var s=t._readableState;if(e===null)s.reading=!1,D6e(t,s);else{var o;if(n||(o=P6e(s,e)),o)tE(t,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==Db.prototype&&(e=I6e(e)),i)s.endEmitted?tE(t,new k6e):qT(t,s,e,!0);else if(s.ended)tE(t,new v6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||e.length!==0?qT(t,s,e,!1):JT(t,s)):qT(t,s,e,!1)}else i||(s.reading=!1,JT(t,s))}return!s.ended&&(s.length=rue?t=rue:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function iue(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R6e(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(t){xt("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return xt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?WT(this):Fb(this),null;if(t=iue(t,e),t===0&&e.ended)return e.length===0&&WT(this),null;var i=e.needReadable;xt("need readable",i),(e.length===0||e.length-t0?n=nue(t,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&WT(this)),n!==null&&this.emit("data",n),n};function D6e(t,e){if(xt("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?Fb(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,sue(t)))}}function Fb(t){var e=t._readableState;xt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(xt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(sue,t))}function sue(t){var e=t._readableState;xt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zT(t)}function JT(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(F6e,t,e))}function F6e(t,e){for(;!e.reading&&!e.ended&&(e.length1&&oue(i.pipes,t)!==-1)&&!c&&(xt("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function f(y){xt("onerror",y),m(),t.removeListener("error",f),eue(t,"error")===0&&tE(t,y)}x6e(t,"error",f);function h(){t.removeListener("finish",p),m()}t.once("close",h);function p(){xt("onfinish"),t.removeListener("close",h),m()}t.once("finish",p);function m(){xt("unpipe"),r.unpipe(t)}return t.emit("pipe",r),i.flowing||(xt("pipe resume"),r.resume()),t};function N6e(t){return function(){var r=t._readableState;xt("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&eue(t,"data")&&(r.flowing=!0,zT(t))}}Ut.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):t==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,xt("on readable",i.length,i.reading),i.length?Fb(this):i.reading||process.nextTick(L6e,this)),r};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(t,e){var r=eE.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(aue,this),r};Ut.prototype.removeAllListeners=function(t){var e=eE.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(aue,this),e};function aue(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function L6e(t){xt("readable nexttick read 0"),t.read(0)}Ut.prototype.resume=function(){var t=this._readableState;return t.flowing||(xt("resume"),t.flowing=!t.readableListening,T6e(this,t)),t.paused=!1,this};function T6e(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(O6e,t,e))}function O6e(t,e){xt("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),zT(t),e.flowing&&!e.reading&&t.read(0)}Ut.prototype.pause=function(){return xt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(xt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zT(t){var e=t._readableState;for(xt("flow",e.flowing);e.flowing&&t.read()!==null;);}Ut.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;t.on("end",function(){if(xt("wrapped end"),r.decoder&&!r.ended){var o=r.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),t.on("data",function(o){if(xt("wrapped data"),r.decoder&&(o=r.decoder.write(o)),!(r.objectMode&&o==null)&&!(!r.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,t.pause())}});for(var n in t)this[n]===void 0&&typeof t[n]=="function"&&(this[n]=function(a){return function(){return t[a].apply(t,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function WT(t){var e=t._readableState;xt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(M6e,e,t))}function M6e(t,e){if(xt("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ut.from=function(t,e){return jT===void 0&&(jT=Xce()),jT(Ut,t,e)});function oue(t,e){for(var r=0,i=t.length;r{"use strict";Aue.exports=QA;var Nb=Ll().codes,K6e=Nb.ERR_METHOD_NOT_IMPLEMENTED,U6e=Nb.ERR_MULTIPLE_CALLBACK,H6e=Nb.ERR_TRANSFORM_ALREADY_TRANSFORMING,G6e=Nb.ERR_TRANSFORM_WITH_LENGTH_0,Lb=Su();Tl()(QA,Lb);function j6e(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new U6e);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";cue.exports=rE;var uue=_T();Tl()(rE,uue);function rE(t){if(!(this instanceof rE))return new rE(t);uue.call(this,t)}rE.prototype._transform=function(t,e,r){r(null,t)}});var Cue=w((ixt,fue)=>{"use strict";var VT;function q6e(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var hue=Ll().codes,J6e=hue.ERR_MISSING_ARGS,W6e=hue.ERR_STREAM_DESTROYED;function pue(t){if(t)throw t}function z6e(t){return t.setHeader&&typeof t.abort=="function"}function _6e(t,e,r,i){i=q6e(i);var n=!1;t.on("close",function(){n=!0}),VT===void 0&&(VT=kb()),VT(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,z6e(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();i(o||new W6e("pipe"))}}}function due(t){t()}function V6e(t,e){return t.pipe(e)}function X6e(t){return!t.length||typeof t[t.length-1]!="function"?pue:t.pop()}function Z6e(){for(var t=arguments.length,e=new Array(t),r=0;r0;return _6e(o,l,c,function(u){n||(n=u),u&&s.forEach(due),!l&&(s.forEach(due),i(n))})});return e.reduce(V6e)}fue.exports=Z6e});var dh=w((_s,iE)=>{var nE=require("stream");process.env.READABLE_STREAM==="disable"&&nE?(iE.exports=nE.Readable,Object.assign(iE.exports,nE),iE.exports.Stream=nE):(_s=iE.exports=RT(),_s.Stream=nE||_s,_s.Readable=_s,_s.Writable=DT(),_s.Duplex=Su(),_s.Transform=_T(),_s.PassThrough=gue(),_s.finished=kb(),_s.pipeline=Cue())});var Iue=w((nxt,mue)=>{"use strict";var{Buffer:Qo}=require("buffer"),Eue=Symbol.for("BufferList");function mr(t){if(!(this instanceof mr))return new mr(t);mr._init.call(this,t)}mr._init=function(e){Object.defineProperty(this,Eue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};mr.prototype._new=function(e){return new mr(e)};mr.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let i=0;ithis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};mr.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};mr.prototype.copy=function(e,r,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Qo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&r||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Qo.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};mr.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let i=this._offset(e),n=this._offset(r),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};mr.prototype.toString=function(e,r,i){return this.slice(r,i).toString(e)};mr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};mr.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=t.length){let l=o.indexOf(t,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-t.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,t))return l;s++}s=0}return-1};mr.prototype._match=function(t,e){if(this.length-t{"use strict";var XT=dh().Duplex,$6e=Tl(),sE=Iue();function Zi(t){if(!(this instanceof Zi))return new Zi(t);if(typeof t=="function"){this._callback=t;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),t=null}sE._init.call(this,t),XT.call(this)}$6e(Zi,XT);Object.assign(Zi.prototype,sE.prototype);Zi.prototype._new=function(e){return new Zi(e)};Zi.prototype._write=function(e,r,i){this._appendBuffer(e),typeof i=="function"&&i()};Zi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Zi.prototype.end=function(e){XT.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Zi.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Zi.prototype._isBufferList=function(e){return e instanceof Zi||e instanceof sE||Zi.isBufferList(e)};Zi.isBufferList=sE.isBufferList;Tb.exports=Zi;Tb.exports.BufferListStream=Zi;Tb.exports.BufferList=sE});var eO=w(Ch=>{var eVe=Buffer.alloc,tVe="0000000000000000000",rVe="7777777777777777777",wue="0".charCodeAt(0),Bue=Buffer.from("ustar\0","binary"),iVe=Buffer.from("00","binary"),nVe=Buffer.from("ustar ","binary"),sVe=Buffer.from(" \0","binary"),oVe=parseInt("7777",8),oE=257,ZT=263,aVe=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},AVe=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},lVe=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},bue=function(t,e,r,i){for(;re?rVe.slice(0,e)+" ":tVe.slice(0,e-t.length)+t+" "};function cVe(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],i=t.length-1;i>0;i--){var n=t[i];e?r.push(n):r.push(255-n)}var s=0,o=r.length;for(i=0;i=Math.pow(10,r)&&r++,e+r+t};Ch.decodeLongPath=function(t,e){return mh(t,0,t.length,e)};Ch.encodePax=function(t){var e="";t.name&&(e+=$T(" path="+t.name+` -`)),t.linkname&&(e+=$T(" linkpath="+t.linkname+` -`));var r=t.pax;if(r)for(var i in r)e+=$T(" "+i+"="+r[i]+` -`);return Buffer.from(e)};Ch.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var n=r.indexOf("/");if(n===-1)return null;i+=i?"/"+r.slice(0,n):r.slice(0,n),r=r.slice(n+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(i)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Hl(t.mode&oVe,6),100),e.write(Hl(t.uid,6),108),e.write(Hl(t.gid,6),116),e.write(Hl(t.size,11),124),e.write(Hl(t.mtime.getTime()/1e3|0,11),136),e[156]=wue+lVe(t.type),t.linkname&&e.write(t.linkname,157),Bue.copy(e,oE),iVe.copy(e,ZT),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Hl(t.devmajor||0,6),329),e.write(Hl(t.devminor||0,6),337),i&&e.write(i,345),e.write(Hl(Que(e),6),148),e)};Ch.decode=function(t,e,r){var i=t[156]===0?0:t[156]-wue,n=mh(t,0,100,e),s=Gl(t,100,8),o=Gl(t,108,8),a=Gl(t,116,8),l=Gl(t,124,12),c=Gl(t,136,12),u=AVe(i),g=t[157]===0?null:mh(t,157,100,e),f=mh(t,265,32),h=mh(t,297,32),p=Gl(t,329,8),m=Gl(t,337,8),y=Que(t);if(y===8*32)return null;if(y!==Gl(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Bue.compare(t,oE,oE+6)===0)t[345]&&(n=mh(t,345,155,e)+"/"+n);else if(!(nVe.compare(t,oE,oE+6)===0&&sVe.compare(t,ZT,ZT+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:m}}});var Rue=w((axt,vue)=>{var Sue=require("util"),uVe=yue(),aE=eO(),kue=dh().Writable,xue=dh().PassThrough,Pue=function(){},Due=function(t){return t&=511,t&&512-t},gVe=function(t,e){var r=new Ob(t,e);return r.end(),r},fVe=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},Ob=function(t,e){this._parent=t,this.offset=e,xue.call(this,{autoDestroy:!1})};Sue.inherits(Ob,xue);Ob.prototype.destroy=function(t){this._parent.destroy(t)};var vA=function(t){if(!(this instanceof vA))return new vA(t);kue.call(this,t),t=t||{},this._offset=0,this._buffer=uVe(),this._missing=0,this._partial=!1,this._onparse=Pue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Due(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Due(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=aE.decodePax(r.slice(0,f)),r.consume(f),s()},l=function(){var f=e._header.size;e._pax=aE.decodePax(r.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=aE.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=aE.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=aE.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(p){e.emit("error",p)}if(r.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=fVe(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,gVe(e,f),n);return}e._stream=new Ob(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Sue.inherits(vA,kue);vA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};vA.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};vA.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=Pue,this._overflow?this._write(this._overflow,void 0,t):t()}};vA.prototype._write=function(t,e,r){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(t.length&&(this._partial=!0),t.lengths&&(o=t.slice(s),t=t.slice(0,s)),i?i.end(t):n.append(t),this._overflow=o,this._onparse()}};vA.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};vue.exports=vA});var Nue=w((Axt,Fue)=>{Fue.exports=require("fs").constants||require("constants")});var Kue=w((lxt,Lue)=>{var Eh=Nue(),Tue=Vx(),Mb=Tl(),hVe=Buffer.alloc,Oue=dh().Readable,Ih=dh().Writable,pVe=require("string_decoder").StringDecoder,Kb=eO(),dVe=parseInt("755",8),CVe=parseInt("644",8),Mue=hVe(1024),tO=function(){},rO=function(t,e){e&=511,e&&t.push(Mue.slice(0,512-e))};function mVe(t){switch(t&Eh.S_IFMT){case Eh.S_IFBLK:return"block-device";case Eh.S_IFCHR:return"character-device";case Eh.S_IFDIR:return"directory";case Eh.S_IFIFO:return"fifo";case Eh.S_IFLNK:return"symlink"}return"file"}var Ub=function(t){Ih.call(this),this.written=0,this._to=t,this._destroyed=!1};Mb(Ub,Ih);Ub.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};Ub.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Hb=function(){Ih.call(this),this.linkname="",this._decoder=new pVe("utf-8"),this._destroyed=!1};Mb(Hb,Ih);Hb.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};Hb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var AE=function(){Ih.call(this),this._destroyed=!1};Mb(AE,Ih);AE.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};AE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Ca=function(t){if(!(this instanceof Ca))return new Ca(t);Oue.call(this,t),this._drain=tO,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Mb(Ca,Oue);Ca.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=tO);var i=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=mVe(t.mode)),t.mode||(t.mode=t.type==="directory"?dVe:CVe),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var n=this.push(e);return rO(i,t.size),n?process.nextTick(r):this._drain=r,new AE}if(t.type==="symlink"&&!t.linkname){var s=new Hb;return Tue(s,function(a){if(a)return i.destroy(),r(a);t.linkname=s.linkname,i._encode(t),r()}),s}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new AE;var o=new Ub(this);return this._stream=o,Tue(o,function(a){if(i._stream=null,a)return i.destroy(),r(a);if(o.written!==t.size)return i.destroy(),r(new Error("size mismatch"));rO(i,t.size),i._finalizing&&i.finalize(),r()}),o}};Ca.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Mue),this.push(null))};Ca.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};Ca.prototype._encode=function(t){if(!t.pax){var e=Kb.encode(t);if(e){this.push(e);return}}this._encodePax(t)};Ca.prototype._encodePax=function(t){var e=Kb.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(Kb.encode(r)),this.push(e),rO(this,e.length),r.size=t.size,r.type=t.type,this.push(Kb.encode(r))};Ca.prototype._read=function(t){var e=this._drain;this._drain=tO,e()};Lue.exports=Ca});var Uue=w(iO=>{iO.extract=Rue();iO.pack=Kue()});var $ue=w((Rxt,_ue)=>{"use strict";var yh=class{constructor(e,r,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=r||{},this.__providers=Xue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return lO(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[i,n]of this.entries())e.call(r,n,i,this)}toJSON(){let e={};return this.forEach((r,i)=>{e[i]=r}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let r=e||this.__opts.other;if(r){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(r):DVe(n);for(let[o,a]of s)r(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new yh(this.__specs,this.__opts,Xue(this.__providers).concat(e)),Vue)}};try{let t=require("util");yh.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch(t){}function RVe(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function lO(t,e,r){let i=t.__specs[e];if(r&&!i&&(!t.__opts.other||!t.__opts.other(e)))RVe(e);else{i||(i={});let n;for(let s of t.__providers){if(n=Zue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Zue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(t):i.default:n}}function Zue(t,e){let r;return e.__isFiggyPudding?r=lO(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var Vue={has(t,e){return e in t.__specs&&lO(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in yh.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};_ue.exports=FVe;function FVe(t,e){function r(...i){return new Proxy(new yh(t,e,i),Vue)}return r}function Xue(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function DVe(t){return Object.keys(t).map(e=>[e,t[e]])}});var rge=w((Fxt,ma)=>{"use strict";var cE=require("crypto"),NVe=$ue(),LVe=require("stream").Transform,ege=["sha256","sha384","sha512"],TVe=/^[a-z0-9+/]+(?:=?=?)$/i,OVe=/^([^-]+)-([^?]+)([?\S*]*)$/,MVe=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,KVe=/^[\x21-\x7E]+$/,Cn=NVe({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>UVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Du=class{get isHash(){return!0}constructor(e,r){r=Cn(r);let i=!!r.strict;this.source=e.trim();let n=this.source.match(i?MVe:OVe);if(!n||i&&!ege.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=Cn(e),e.strict&&!(ege.some(i=>i===this.algorithm)&&this.digest.match(TVe)&&(this.options||[]).every(i=>i.match(KVe))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},wh=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=Cn(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Du.prototype.toString.call(n,e)).filter(n=>n.length).join(r)).filter(i=>i.length).join(r)}concat(e,r){r=Cn(r);let i=typeof e=="string"?e:uE(e,r);return Ea(`${this.toString(r)} ${i}`,r)}hexDigest(){return Ea(this,{single:!0}).hexDigest()}match(e,r){r=Cn(r);let i=Ea(e,r),n=i.pickAlgorithm(r);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=Cn(e);let r=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>r(n,s)||n)}};ma.exports.parse=Ea;function Ea(t,e){if(e=Cn(e),typeof t=="string")return cO(t,e);if(t.algorithm&&t.digest){let r=new wh;return r[t.algorithm]=[t],cO(uE(r,e),e)}else return cO(uE(t,e),e)}function cO(t,e){return e.single?new Du(t,e):t.trim().split(/\s+/).reduce((r,i)=>{let n=new Du(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;r[s]||(r[s]=[]),r[s].push(n)}return r},new wh)}ma.exports.stringify=uE;function uE(t,e){return e=Cn(e),t.algorithm&&t.digest?Du.prototype.toString.call(t,e):typeof t=="string"?uE(Ea(t,e),e):wh.prototype.toString.call(t,e)}ma.exports.fromHex=HVe;function HVe(t,e,r){r=Cn(r);let i=r.options&&r.options.length?`?${r.options.join("?")}`:"";return Ea(`${e}-${Buffer.from(t,"hex").toString("base64")}${i}`,r)}ma.exports.fromData=GVe;function GVe(t,e){e=Cn(e);let r=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((n,s)=>{let o=cE.createHash(s).update(t).digest("base64"),a=new Du(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new wh)}ma.exports.fromStream=jVe;function jVe(t,e){e=Cn(e);let r=e.Promise||Promise,i=uO(e);return new r((n,s)=>{t.pipe(i),t.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ma.exports.checkData=YVe;function YVe(t,e,r){if(r=Cn(r),e=Ea(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(r),n=cE.createHash(i).update(t).digest("base64"),s=Ea({algorithm:i,digest:n}),o=s.match(e,r);if(o||!r.error)return o;if(typeof r.size=="number"&&t.length!==r.size){let a=new Error(`data size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${t.length}`);throw a.code="EBADSIZE",a.found=t.length,a.expected=r.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ma.exports.checkStream=qVe;function qVe(t,e,r){r=Cn(r);let i=r.Promise||Promise,n=uO(r.concat({integrity:e}));return new i((s,o)=>{t.pipe(n),t.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ma.exports.integrityStream=uO;function uO(t){t=Cn(t);let e=t.integrity&&Ea(t.integrity,t),r=e&&Object.keys(e).length,i=r&&e.pickAlgorithm(t),n=r&&e[i],s=Array.from(new Set(t.algorithms.concat(i?[i]:[]))),o=s.map(cE.createHash),a=0,l=new LVe({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=t.options&&t.options.length?`?${t.options.join("?")}`:"",u=Ea(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),t),g=r&&u.match(e,t);if(typeof t.size=="number"&&a!==t.size){let f=new Error(`stream size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=t.size,f.sri=e,l.emit("error",f)}else if(t.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ma.exports.create=JVe;function JVe(t){t=Cn(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",i=e.map(cE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Du(`${a}-${l}${r}`,t);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new wh)}}}var WVe=new Set(cE.getHashes()),tge=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>WVe.has(t));function UVe(t,e){return tge.indexOf(t.toLowerCase())>=tge.indexOf(e.toLowerCase())?t:e}});var vC={};ft(vC,{BuildType:()=>ls,Cache:()=>Nt,Configuration:()=>we,DEFAULT_LOCK_FILENAME:()=>Qx,DEFAULT_RC_FILENAME:()=>bx,FormatType:()=>Di,InstallMode:()=>di,LightReport:()=>gA,LinkType:()=>Qt,Manifest:()=>At,MessageName:()=>$,MultiFetcher:()=>wd,PackageExtensionStatus:()=>qi,PackageExtensionType:()=>yi,Project:()=>ze,ProjectLookup:()=>al,Report:()=>Ji,ReportError:()=>ct,SettingsType:()=>ye,StreamReport:()=>Je,TAG_REGEXP:()=>qg,TelemetryManager:()=>QC,ThrowReport:()=>pi,VirtualFetcher:()=>bd,Workspace:()=>bC,WorkspaceFetcher:()=>Qd,WorkspaceResolver:()=>oi,YarnVersion:()=>Kr,execUtils:()=>Fr,folderUtils:()=>Cx,formatUtils:()=>Ae,hashUtils:()=>Dn,httpUtils:()=>ir,miscUtils:()=>ve,nodeUtils:()=>Wg,parseMessageName:()=>bI,scriptUtils:()=>Zt,semverUtils:()=>Wt,stringifyMessageName:()=>qA,structUtils:()=>P,tgzUtils:()=>wi,treeUtils:()=>As});var Fr={};ft(Fr,{EndStrategy:()=>ns,ExecError:()=>Rx,PipeError:()=>vw,execvp:()=>mke,pipevp:()=>$o});var $h={};ft($h,{AliasFS:()=>Da,CwdFS:()=>_t,DEFAULT_COMPRESSION_LEVEL:()=>nc,FakeFS:()=>HA,Filename:()=>Pt,JailFS:()=>Ra,LazyFS:()=>Vh,LinkStrategy:()=>Yh,NoFS:()=>_E,NodeFS:()=>ar,PortablePath:()=>Ke,PosixFS:()=>Xh,ProxiedFS:()=>bi,VirtualFS:()=>Wr,ZipFS:()=>Ai,ZipOpenFS:()=>Es,constants:()=>Dr,extendFs:()=>XE,normalizeLineEndings:()=>ec,npath:()=>H,opendir:()=>JE,patchFs:()=>SQ,ppath:()=>x,statUtils:()=>hQ,toFilename:()=>Jr,xfs:()=>K});var Dr={};ft(Dr,{SAFE_TIME:()=>fQ,S_IFDIR:()=>ka,S_IFLNK:()=>Pa,S_IFMT:()=>_n,S_IFREG:()=>xa});var _n=61440,ka=16384,xa=32768,Pa=40960,fQ=456789e3;var hQ={};ft(hQ,{BigIntStatsEntry:()=>Hh,DEFAULT_MODE:()=>Uh,DirEntry:()=>oM,StatEntry:()=>KA,areStatsEqual:()=>dQ,clearStats:()=>KE,convertToBigIntStats:()=>UE,makeDefaultStats:()=>Gh,makeEmptyStats:()=>pfe});var pQ=ge(require("util"));var Uh=xa|420,oM=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===ka}isFIFO(){return!1}isFile(){return(this.mode&_n)===xa}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Pa}},KA=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Uh;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===ka}isFIFO(){return!1}isFile(){return(this.mode&_n)===xa}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Pa}},Hh=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Uh);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(_n))===BigInt(ka)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(_n))===BigInt(xa)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(_n))===BigInt(Pa)}};function Gh(){return new KA}function pfe(){return KE(Gh())}function KE(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):pQ.types.isDate(r)&&(t[e]=new Date(0))}return t}function UE(t){let e=new Hh;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];typeof i=="number"?e[r]=BigInt(i):pQ.types.isDate(i)&&(e[r]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function dQ(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,i=e;return!(r.atimeNs!==i.atimeNs||r.mtimeNs!==i.mtimeNs||r.ctimeNs!==i.ctimeNs||r.birthtimeNs!==i.birthtimeNs)}var GE=ge(require("fs"));var jh=ge(require("path")),aM;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(aM||(aM={}));var Ke={root:"/",dot:"."},Pt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},H=Object.create(jh.default),x=Object.create(jh.default.posix);H.cwd=()=>process.cwd();x.cwd=()=>CQ(process.cwd());x.resolve=(...t)=>t.length>0&&x.isAbsolute(t[0])?jh.default.posix.resolve(...t):jh.default.posix.resolve(x.cwd(),...t);var AM=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};H.fromPortablePath=lM;H.toPortablePath=CQ;H.contains=(t,e)=>AM(H,t,e);x.contains=(t,e)=>AM(x,t,e);var dfe=/^([a-zA-Z]:.*)$/,Cfe=/^\/\/(\.\/)?(.*)$/,mfe=/^\/([a-zA-Z]:.*)$/,Efe=/^\/unc\/(\.dot\/)?(.*)$/;function lM(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(mfe))t=e[1];else if(r=t.match(Efe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function CQ(t){if(process.platform!=="win32")return t;t=t.replace(/\\/g,"/");let e,r;return(e=t.match(dfe))?t=`/${e[1]}`:(r=t.match(Cfe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function HE(t,e){return t===H?lM(e):CQ(e)}function Jr(t){if(H.parse(t).dir!==""||x.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var jE=new Date(fQ*1e3),Yh;(function(r){r.Allow="allow",r.ReadOnly="readOnly"})(Yh||(Yh={}));async function cM(t,e,r,i,n){let s=t.pathUtils.normalize(e),o=r.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:jE,mtime:jE}:await r.lstatPromise(o);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof t.lutimesPromise=="function"?t.lutimesPromise.bind(t):t.utimesPromise.bind(t);await mQ(a,l,g,t,s,r,o,ie(N({},n),{didParentExist:!0}));for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function mQ(t,e,r,i,n,s,o,a){var h,p;let l=a.didParentExist?await Ife(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:jE,mtime:jE}:c,f;switch(!0){case c.isDirectory():f=await yfe(t,e,r,i,n,l,s,o,c,a);break;case c.isFile():f=await wfe(t,e,r,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await Bfe(t,e,r,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>r(n,u,g)),f=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function Ife(t,e){try{return await t.lstatPromise(e)}catch(r){return null}}async function yfe(t,e,r,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(t.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?ie(N({},c),{didParentExist:!1}):c;if(c.stableSort)for(let h of g.sort())await mQ(t,e,r,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await mQ(t,e,r,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var EQ=new WeakMap;function IQ(t,e,r,i,n){return async()=>{await t.linkPromise(r,e),n===Yh.ReadOnly&&(i.mode&=~146,await t.chmodPromise(e,i.mode))}}function bfe(t,e,r,i,n){let s=EQ.get(t);return typeof s=="undefined"?async()=>{try{await t.copyFilePromise(r,e,GE.default.constants.COPYFILE_FICLONE_FORCE),EQ.set(t,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")EQ.set(t,!1),await IQ(t,e,r,i,n)();else throw o}}:s?async()=>t.copyFilePromise(r,e,GE.default.constants.COPYFILE_FICLONE_FORCE):IQ(t,e,r,i,n)}async function wfe(t,e,r,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?bfe(i,n,a,l,u):async()=>i.copyFilePromise(a,n,GE.default.constants.COPYFILE_FICLONE):u!==null?IQ(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return t.push(async()=>g()),!0}async function Bfe(t,e,r,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;return t.push(async()=>{await i.symlinkPromise(HE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function ms(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function YE(t){return ms("EBUSY",t)}function qh(t,e){return ms("ENOSYS",`${t}, ${e}`)}function UA(t){return ms("EINVAL",`invalid argument, ${t}`)}function en(t){return ms("EBADF",`bad file descriptor, ${t}`)}function ro(t){return ms("ENOENT",`no such file or directory, ${t}`)}function Do(t){return ms("ENOTDIR",`not a directory, ${t}`)}function Jh(t){return ms("EISDIR",`illegal operation on a directory, ${t}`)}function qE(t){return ms("EEXIST",`file already exists, ${t}`)}function In(t){return ms("EROFS",`read-only filesystem, ${t}`)}function uM(t){return ms("ENOTEMPTY",`directory not empty, ${t}`)}function gM(t){return ms("EOPNOTSUPP",`operation not supported, ${t}`)}function fM(){return ms("ERR_DIR_CLOSED","Directory handle was closed")}var yQ=class extends Error{constructor(e,r){super(e);this.name="Libzip Error",this.code=r}};var hM=class{constructor(e,r,i={}){this.path=e;this.nextDirent=r;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw fM()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e!="undefined"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}};function JE(t,e,r,i){let n=()=>{let s=r.shift();return typeof s=="undefined"?null:Object.assign(t.statSync(t.pathUtils.join(e,s)),{name:s})};return new hM(e,n,i)}var pM=ge(require("os"));var HA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(r)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:r=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(r){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(r)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep);for(let s=2;s<=n.length;++s){let o=n.slice(0,s).join(this.pathUtils.sep);if(!this.existsSync(o)){try{await this.mkdirPromise(o)}catch(a){if(a.code==="EEXIST")continue;throw a}if(r!=null&&await this.chmodPromise(o,r),i!=null)await this.utimesPromise(o,i[0],i[1]);else{let a=await this.statPromise(this.pathUtils.dirname(o));await this.utimesPromise(o,a.atime,a.mtime)}}}}mkdirpSync(e,{chmod:r,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep);for(let s=2;s<=n.length;++s){let o=n.slice(0,s).join(this.pathUtils.sep);if(!this.existsSync(o)){try{this.mkdirSync(o)}catch(a){if(a.code==="EEXIST")continue;throw a}if(r!=null&&this.chmodSync(o,r),i!=null)this.utimesSync(o,i[0],i[1]);else{let a=this.statSync(this.pathUtils.dirname(o));this.utimesSync(o,a.atime,a.mtime)}}}}async copyPromise(e,r,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await cM(this,e,i,r,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,r,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(r),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(r);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(r,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(r);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(r);this.symlinkSync(HE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,r,i={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,i):this.changeFileTextPromise(e,r,i)}async changeFileBufferPromise(e,r,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch(s){}Buffer.compare(n,r)!==0&&await this.writeFilePromise(e,r,{mode:i})}async changeFileTextPromise(e,r,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch(a){}let o=i?ec(s,r):r;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,r,i={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,i):this.changeFileTextSync(e,r,i)}changeFileBufferSync(e,r,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch(s){}Buffer.compare(n,r)!==0&&this.writeFileSync(e,r,{mode:i})}changeFileTextSync(e,r,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch(a){}let o=i?ec(s,r):r;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(i){if(i.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw i}}moveSync(e,r){try{this.renameSync(e,r)}catch(i){if(i.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw i}}async lockPromise(e,r){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)} -`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)} -`)}async preserveTimePromise(e,r){let i=await this.lstatPromise(e),n=await r();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,r){let i=this.lstatSync(e),n=r();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},tc=class extends HA{constructor(){super(x)}};function Qfe(t){let e=t.match(/\r?\n/g);if(e===null)return pM.EOL;let r=e.filter(n=>n===`\r -`).length,i=e.length-r;return r>i?`\r -`:` -`}function ec(t,e){return e.replace(/\r?\n/g,Qfe(t))}var Ju=ge(require("fs")),wQ=ge(require("stream")),EM=ge(require("util")),BQ=ge(require("zlib"));var dM=ge(require("fs"));var ar=class extends tc{constructor(e=dM.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ke.root}resolve(e){return x.resolve(e)}async openPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.open(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}openSync(e,r,i){return this.realFs.openSync(H.fromPortablePath(e),r,i)}async opendirPromise(e,r){return await new Promise((i,n)=>{typeof r!="undefined"?this.realFs.opendir(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.opendir(H.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,r){let i=typeof r!="undefined"?this.realFs.opendirSync(H.fromPortablePath(e),r):this.realFs.opendirSync(H.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,r,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,r,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,r,i,n,s){return this.realFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return await new Promise((o,a)=>typeof r=="string"?this.realFs.write(e,r,i,this.makeCallback(o,a)):this.realFs.write(e,r,i,n,s,this.makeCallback(o,a)))}writeSync(e,r,i,n,s){return typeof r=="string"?this.realFs.writeSync(e,r,i):this.realFs.writeSync(e,r,i,n,s)}async closePromise(e){await new Promise((r,i)=>{this.realFs.close(e,this.makeCallback(r,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createReadStream(i,r)}createWriteStream(e,r){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createWriteStream(i,r)}async realpathPromise(e){return await new Promise((r,i)=>{this.realFs.realpath(H.fromPortablePath(e),{},this.makeCallback(r,i))}).then(r=>H.toPortablePath(r))}realpathSync(e){return H.toPortablePath(this.realFs.realpathSync(H.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(H.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(H.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((i,n)=>{this.realFs.access(H.fromPortablePath(e),r,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(H.fromPortablePath(e))}async statPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.stat(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.stat(H.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,r){return r?this.realFs.statSync(H.fromPortablePath(e),r):this.realFs.statSync(H.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.fstat(e,r,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.lstat(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.lstat(H.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,r){return r?this.realFs.lstatSync(H.fromPortablePath(e),r):this.realFs.lstatSync(H.fromPortablePath(e))}async chmodPromise(e,r){return await new Promise((i,n)=>{this.realFs.chmod(H.fromPortablePath(e),r,this.makeCallback(i,n))})}chmodSync(e,r){return this.realFs.chmodSync(H.fromPortablePath(e),r)}async chownPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.chown(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}chownSync(e,r,i){return this.realFs.chownSync(H.fromPortablePath(e),r,i)}async renamePromise(e,r){return await new Promise((i,n)=>{this.realFs.rename(H.fromPortablePath(e),H.fromPortablePath(r),this.makeCallback(i,n))})}renameSync(e,r){return this.realFs.renameSync(H.fromPortablePath(e),H.fromPortablePath(r))}async copyFilePromise(e,r,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(H.fromPortablePath(e),H.fromPortablePath(r),i,this.makeCallback(n,s))})}copyFileSync(e,r,i=0){return this.realFs.copyFileSync(H.fromPortablePath(e),H.fromPortablePath(r),i)}async appendFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFile(o,r,i,this.makeCallback(n,s)):this.realFs.appendFile(o,r,this.makeCallback(n,s))})}appendFileSync(e,r,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,r,i):this.realFs.appendFileSync(n,r)}async writeFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFile(o,r,i,this.makeCallback(n,s)):this.realFs.writeFile(o,r,this.makeCallback(n,s))})}writeFileSync(e,r,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,r,i):this.realFs.writeFileSync(n,r)}async unlinkPromise(e){return await new Promise((r,i)=>{this.realFs.unlink(H.fromPortablePath(e),this.makeCallback(r,i))})}unlinkSync(e){return this.realFs.unlinkSync(H.fromPortablePath(e))}async utimesPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.utimes(H.fromPortablePath(e),r,i,this.makeCallback(n,s))})}utimesSync(e,r,i){this.realFs.utimesSync(H.fromPortablePath(e),r,i)}async lutimesPromiseImpl(e,r,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,H.fromPortablePath(e),r,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,r,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,H.fromPortablePath(e),r,i)}async mkdirPromise(e,r){return await new Promise((i,n)=>{this.realFs.mkdir(H.fromPortablePath(e),r,this.makeCallback(i,n))})}mkdirSync(e,r){return this.realFs.mkdirSync(H.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.rmdir(H.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.rmdir(H.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,r){return this.realFs.rmdirSync(H.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((i,n)=>{this.realFs.link(H.fromPortablePath(e),H.fromPortablePath(r),this.makeCallback(i,n))})}linkSync(e,r){return this.realFs.linkSync(H.fromPortablePath(e),H.fromPortablePath(r))}async symlinkPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.symlink(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(r),i,this.makeCallback(n,s))})}symlinkSync(e,r,i){return this.realFs.symlinkSync(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(r),i)}async readFilePromise(e,r){return await new Promise((i,n)=>{let s=typeof e=="string"?H.fromPortablePath(e):e;this.realFs.readFile(s,r,this.makeCallback(i,n))})}readFileSync(e,r){let i=typeof e=="string"?H.fromPortablePath(e):e;return this.realFs.readFileSync(i,r)}async readdirPromise(e,r){return await new Promise((i,n)=>{(r==null?void 0:r.withFileTypes)?this.realFs.readdir(H.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(H.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,r){return(r==null?void 0:r.withFileTypes)?this.realFs.readdirSync(H.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(H.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,i)=>{this.realFs.readlink(H.fromPortablePath(e),this.makeCallback(r,i))}).then(r=>H.toPortablePath(r))}readlinkSync(e){return H.toPortablePath(this.realFs.readlinkSync(H.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((i,n)=>{this.realFs.truncate(H.fromPortablePath(e),r,this.makeCallback(i,n))})}truncateSync(e,r){return this.realFs.truncateSync(H.fromPortablePath(e),r)}watch(e,r,i){return this.realFs.watch(H.fromPortablePath(e),r,i)}watchFile(e,r,i){return this.realFs.watchFile(H.fromPortablePath(e),r,i)}unwatchFile(e,r){return this.realFs.unwatchFile(H.fromPortablePath(e),r)}makeCallback(e,r){return(i,n)=>{i?r(i):e(n)}}};var CM=ge(require("events"));var rc;(function(r){r.Change="change",r.Stop="stop"})(rc||(rc={}));var ic;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(ic||(ic={}));function mM(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var Wh=class extends CM.EventEmitter{constructor(e,r,{bigint:i=!1}={}){super();this.status=ic.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=r,this.bigint=i,this.lastStats=this.stat()}static create(e,r,i){let n=new Wh(e,r,i);return n.start(),n}start(){mM(this.status,ic.Ready),this.status=ic.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(rc.Change,this.lastStats,this.lastStats)},3)}stop(){mM(this.status,ic.Running),this.status=ic.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(rc.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let r=this.bigint?new Hh:new KA;return KE(r)}}makeInterval(e){let r=setInterval(()=>{let i=this.stat(),n=this.lastStats;dQ(i,n)||(this.lastStats=i,this.emit(rc.Change,i,n))},e.interval);return e.persistent?r:r.unref()}registerChangeListener(e,r){this.addListener(rc.Change,e),this.changeListeners.set(e,this.makeInterval(r))}unregisterChangeListener(e){this.removeListener(rc.Change,e);let r=this.changeListeners.get(e);typeof r!="undefined"&&clearInterval(r),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var WE=new WeakMap;function zE(t,e,r,i){let n,s,o,a;switch(typeof r){case"function":n=!1,s=!0,o=5007,a=r;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=r),a=i;break}let l=WE.get(t);typeof l=="undefined"&&WE.set(t,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=Wh.create(t,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function zh(t,e,r){let i=WE.get(t);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof r=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(r),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function _h(t){let e=WE.get(t);if(typeof e!="undefined")for(let r of e.keys())zh(t,r)}var nc="mixed";function vfe(t){if(typeof t=="string"&&String(+t)===t)return+t;if(Number.isFinite(t))return t<0?Date.now()/1e3:t;if(EM.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function IM(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Ai=class extends tc{constructor(e,r){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=r.libzip;let i=r;if(this.level=typeof i.level!="undefined"?i.level:nc,e!=null||(e=IM()),typeof e=="string"){let{baseFs:o=new ar}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(r.stats)this.stats=r.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=Gh();else throw o}else this.stats=Gh();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),r.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(H.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Ke.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(r,r+e);return Buffer.from(n)}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw YE("archive closed, close");_h(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===Uh?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,IM(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return x.resolve(Ke.root,e)}async openPromise(e,r,i){return this.openSync(e,r,i)}openSync(e,r,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,r){return this.opendirSync(e,r)}opendirSync(e,r={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw Do(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return JE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,r,i,n,s){return this.readSync(e,r,i,n,s)}readSync(e,r,i=0,n=r.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw en("read");let a=s===-1||s===null?o.cursor:s,l=this.readFileSync(o.p);l.copy(r,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,r,i,n,s){return typeof r=="string"?this.writeSync(e,r,s):this.writeSync(e,r,i,n,s)}writeSync(e,r,i,n,s){throw typeof this.fds.get(e)=="undefined"?en("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw en("read");this.fds.delete(e)}createReadStream(e,{encoding:r}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new wQ.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,r);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:r}={}){if(this.readOnly)throw In(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new wQ.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),r),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let r=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw ro(`lstat '${e}'`);return r}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw YE(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=x.resolve(Ke.root,e);return this.entries.has(i)||this.listings.has(i)}let r;try{r=this.resolveFilename(`stat '${e}'`,e)}catch(i){return!1}return this.entries.has(r)||this.listings.has(r)}async accessPromise(e,r){return this.accessSync(e,r)}accessSync(e,r=Ju.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`access '${e}'`);if(this.readOnly&&r&Ju.constants.W_OK)throw In(`access '${e}'`)}async statPromise(e,r){return this.statSync(e,r)}statSync(e,r){let i=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`stat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,r)}async fstatPromise(e,r){return this.fstatSync(e,r)}fstatSync(e,r){let i=this.fds.get(e);if(typeof i=="undefined")throw en("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw ro(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw Do(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,r)}async lstatPromise(e,r){return this.lstatSync(e,r)}lstatSync(e,r){let i=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`lstat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,r)}statImpl(e,r,i={}){let n=this.entries.get(r);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,m=f,y=new Date(h),b=new Date(p),S=new Date(m),k=new Date(f),T=this.listings.has(r)?ka:this.isSymbolicLink(n)?Pa:xa,Y=T===ka?493:420,j=T|this.getUnixMode(n,Y)&511,Z=this.libzip.struct.statCrc(s),J=Object.assign(new KA,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:y,birthtime:b,ctime:S,mtime:k,atimeMs:h,birthtimeMs:p,ctimeMs:m,mtimeMs:f,mode:j,crc:Z});return i.bigint===!0?UE(J):J}if(this.listings.has(r)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),m=new Date(g),y=new Date(f),b=new Date(h),S=ka|493,k=0,T=Object.assign(new KA,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:m,ctime:y,mtime:b,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:S,crc:k});return i.bigint===!0?UE(T):T}throw new Error("Unreachable")}getUnixMode(e,r){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?r:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let r=this.listings.get(e);if(r)return r;this.registerListing(x.dirname(e)).add(x.basename(e));let n=new Set;return this.listings.set(e,n),n}registerEntry(e,r){this.registerListing(x.dirname(e)).add(x.basename(e)),this.entries.set(e,r)}unregisterListing(e){this.listings.delete(e);let r=this.listings.get(x.dirname(e));r==null||r.delete(x.basename(e))}unregisterEntry(e){this.unregisterListing(e);let r=this.entries.get(e);this.entries.delete(e),typeof r!="undefined"&&(this.fileSources.delete(r),this.isSymbolicLink(r)&&this.symlinkCount--)}deleteEntry(e,r){if(this.unregisterEntry(e),this.libzip.delete(this.zip,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,r,i=!0){if(!this.ready)throw YE(`archive closed, ${e}`);let n=x.resolve(Ke.root,r);if(n==="/")return Ke.root;let s=this.entries.get(n);if(i&&s!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(s)){let o=this.getFileSource(s).toString();return this.resolveFilename(e,x.resolve(x.dirname(n),o),!0)}else return n;for(;;){let o=this.resolveFilename(e,x.dirname(n),!0),a=this.listings.has(o),l=this.entries.has(o);if(!a&&!l)throw ro(e);if(!a)throw Do(e);if(n=x.resolve(o,x.basename(n)),!i||this.symlinkCount===0)break;let c=this.libzip.name.locate(this.zip,n.slice(1));if(c===-1)break;if(this.isSymbolicLink(c)){let u=this.getFileSource(c).toString();n=x.resolve(x.dirname(n),u)}else break}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,r);if(s===0)throw this.libzip.free(r),this.makeLibzipError(r);return s}allocateSource(e){let{buffer:r,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,r,i,0,!0);if(n===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,r){let i=Buffer.isBuffer(r)?r:Buffer.from(r),n=x.relative(Ke.root,e),s=this.allocateSource(r);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&_n)===Pa}getFileSource(e,r={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(r.asyncDecompress)return new Promise((h,p)=>{BQ.default.inflateRaw(f,(m,y)=>{m?p(m):(this.fileSources.set(e,y),h(y))})});{let h=BQ.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async chmodPromise(e,r){return this.chmodSync(e,r)}chmodSync(e,r){if(this.readOnly)throw In(`chmod '${e}'`);r&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,xa|0)&~511|r;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,r,i){return this.chownSync(e,r,i)}chownSync(e,r,i){throw new Error("Unimplemented")}async renamePromise(e,r){return this.renameSync(e,r)}renameSync(e,r){throw new Error("Unimplemented")}async copyFilePromise(e,r,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,r,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,r,i=0){if(this.readOnly)throw In(`copyfile '${e} -> '${r}'`);if((i&Ju.constants.COPYFILE_FICLONE_FORCE)!=0)throw qh("unsupported clone operation",`copyfile '${e}' -> ${r}'`);let n=this.resolveFilename(`copyfile '${e} -> ${r}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw UA(`copyfile '${e}' -> '${r}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${r}'`,r),a=this.entries.get(o);if((i&(Ju.constants.COPYFILE_EXCL|Ju.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw qE(`copyfile '${e}' -> '${r}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,r,i){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFilePromise(e,r,i)}appendFileSync(e,r,i={}){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFileSync(e,r,i)}fdToPath(e,r){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw en(r);return i}async writeFilePromise(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([this.getFileSource(o),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,r){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw In(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw Jh(`open '${e}'`);let n=null,s=null;typeof r=="string"?n=r:typeof r=="object"&&({encoding:n=null,mode:s=null}=r);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw In(`unlink '${e}'`);let r=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(r))throw Jh(`unlink '${e}'`);let i=this.entries.get(r);if(typeof i=="undefined")throw UA(`unlink '${e}'`);this.deleteEntry(r,i)}async utimesPromise(e,r,i){return this.utimesSync(e,r,i)}utimesSync(e,r,i){if(this.readOnly)throw In(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,r,i){return this.lutimesSync(e,r,i)}lutimesSync(e,r,i){if(this.readOnly)throw In(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,r){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,vfe(r),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,r){return this.mkdirSync(e,r)}mkdirSync(e,{mode:r=493,recursive:i=!1}={}){if(i){this.mkdirpSync(e,{chmod:r});return}if(this.readOnly)throw In(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw qE(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,r)}async rmdirPromise(e,r){return this.rmdirSync(e,r)}rmdirSync(e,{recursive:r=!1}={}){if(this.readOnly)throw In(`rmdir '${e}'`);if(r){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw Do(`rmdir '${e}'`);if(n.size>0)throw uM(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw UA(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let r=this.libzip.dir.add(this.zip,x.relative(Ke.root,e));if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,r),r}async linkPromise(e,r){return this.linkSync(e,r)}linkSync(e,r){throw gM(`link '${e}' -> '${r}'`)}async symlinkPromise(e,r){return this.symlinkSync(e,r)}symlinkSync(e,r){if(this.readOnly)throw In(`symlink '${e}' -> '${r}'`);let i=this.resolveFilename(`symlink '${e}' -> '${r}'`,r);if(this.listings.has(i))throw Jh(`symlink '${e}' -> '${r}'`);if(this.entries.has(i))throw qE(`symlink '${e}' -> '${r}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(Pa|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return r?i.toString(r):i}readFileSync(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=this.readFileBuffer(e);return r?i.toString(r):i}readFileBuffer(e,r={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Do(`open '${e}'`);if(this.listings.has(i))throw Jh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,r)}async readdirPromise(e,r){return this.readdirSync(e,r)}readdirSync(e,r){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw ro(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw Do(`scandir '${e}'`);let s=[...n];return(r==null?void 0:r.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",x.join(e,o)),{name:o})):s}async readlinkPromise(e){let r=this.prepareReadlink(e);return(await this.getFileSource(r,{asyncDecompress:!0})).toString()}readlinkSync(e){let r=this.prepareReadlink(e);return this.getFileSource(r).toString()}prepareReadlink(e){let r=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(r)&&!this.listings.has(r))throw ro(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(r))throw Do(`open '${e}'`);if(this.listings.has(r))throw UA(`readlink '${e}'`);let i=this.entries.get(r);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw UA(`readlink '${e}'`);return i}async truncatePromise(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw UA(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(r,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw UA(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(r,0);return s.copy(o),this.writeFileSync(e,o)}watch(e,r,i){let n;switch(typeof r){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=r);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,r,i){let n=x.resolve(Ke.root,e);return zE(this,n,r,i)}unwatchFile(e,r){let i=x.resolve(Ke.root,e);return zh(this,i,r)}};var bi=class extends HA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,i){return this.baseFs.openPromise(this.mapToBase(e),r,i)}openSync(e,r,i){return this.baseFs.openSync(this.mapToBase(e),r,i)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,i,n,s){return await this.baseFs.readPromise(e,r,i,n,s)}readSync(e,r,i,n,s){return this.baseFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s)}writeSync(e,r,i,n,s){return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}async lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async chownPromise(e,r,i){return this.baseFs.chownPromise(this.mapToBase(e),r,i)}chownSync(e,r,i){return this.baseFs.chownSync(this.mapToBase(e),r,i)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),i)}copyFileSync(e,r,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),i)}async appendFilePromise(e,r,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,i)}appendFileSync(e,r,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,i)}async writeFilePromise(e,r,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,i)}writeFileSync(e,r,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,i){return this.baseFs.utimesPromise(this.mapToBase(e),r,i)}utimesSync(e,r,i){return this.baseFs.utimesSync(this.mapToBase(e),r,i)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,r){return r==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),r):this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return r==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),r):this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}watch(e,r,i){return this.baseFs.watch(this.mapToBase(e),r,i)}watchFile(e,r,i){return this.baseFs.watchFile(this.mapToBase(e),r,i)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Da=class extends bi{constructor(e,{baseFs:r,pathUtils:i}){super(i);this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var _t=class extends bi{constructor(e,{baseFs:r=new ar}={}){super(x);this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?x.normalize(e):this.baseFs.resolve(x.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var yM=Ke.root,Ra=class extends bi{constructor(e,{baseFs:r=new ar}={}){super(x);this.target=this.pathUtils.resolve(Ke.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ke.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(yM,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(yM,this.pathUtils.relative(this.target,e))}};var Vh=class extends bi{constructor(e,r){super(r);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var st=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),bQ=class extends HA{constructor(){super(x)}getExtractHint(){throw st()}getRealPath(){throw st()}resolve(){throw st()}async openPromise(){throw st()}openSync(){throw st()}async opendirPromise(){throw st()}opendirSync(){throw st()}async readPromise(){throw st()}readSync(){throw st()}async writePromise(){throw st()}writeSync(){throw st()}async closePromise(){throw st()}closeSync(){throw st()}createWriteStream(){throw st()}createReadStream(){throw st()}async realpathPromise(){throw st()}realpathSync(){throw st()}async readdirPromise(){throw st()}readdirSync(){throw st()}async existsPromise(e){throw st()}existsSync(e){throw st()}async accessPromise(){throw st()}accessSync(){throw st()}async statPromise(){throw st()}statSync(){throw st()}async fstatPromise(e){throw st()}fstatSync(e){throw st()}async lstatPromise(e){throw st()}lstatSync(e){throw st()}async chmodPromise(){throw st()}chmodSync(){throw st()}async chownPromise(){throw st()}chownSync(){throw st()}async mkdirPromise(){throw st()}mkdirSync(){throw st()}async rmdirPromise(){throw st()}rmdirSync(){throw st()}async linkPromise(){throw st()}linkSync(){throw st()}async symlinkPromise(){throw st()}symlinkSync(){throw st()}async renamePromise(){throw st()}renameSync(){throw st()}async copyFilePromise(){throw st()}copyFileSync(){throw st()}async appendFilePromise(){throw st()}appendFileSync(){throw st()}async writeFilePromise(){throw st()}writeFileSync(){throw st()}async unlinkPromise(){throw st()}unlinkSync(){throw st()}async utimesPromise(){throw st()}utimesSync(){throw st()}async readFilePromise(){throw st()}readFileSync(){throw st()}async readlinkPromise(){throw st()}readlinkSync(){throw st()}async truncatePromise(){throw st()}truncateSync(){throw st()}watch(){throw st()}watchFile(){throw st()}unwatchFile(){throw st()}},_E=bQ;_E.instance=new bQ;var Xh=class extends bi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return H.fromPortablePath(e)}mapToBase(e){return H.toPortablePath(e)}};var Sfe=/^[0-9]+$/,QQ=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,kfe=/^([^/]+-)?[a-f0-9]+$/,Wr=class extends bi{static makeVirtualPath(e,r,i){if(x.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!x.basename(r).match(kfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=x.relative(x.dirname(e),i).split("/"),o=0;for(;o{let r=t.indexOf(e);if(r<=0)return null;let i=r;for(;r>=0&&(i=r+e.length,t[i]!==x.sep);){if(t[r-1]===x.sep)return null;r=t.indexOf(e,i)}return t.length>i&&t[i]!==x.sep?null:t.slice(0,i)},Es=class extends tc{constructor({libzip:e,baseFs:r=new ar,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=r,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,r){let i=new Es(r);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,r){let i=this.nextFd++|Fa;return this.fdMap.set(i,[e,r]),i}async openPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,r,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,r,i)))}openSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,r,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,r,i)))}async opendirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,r),async(i,{subPath:n})=>await i.opendirPromise(n,r),{requireSubpath:!1})}opendirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,r),(i,{subPath:n})=>i.opendirSync(n,r),{requireSubpath:!1})}async readPromise(e,r,i,n,s){if((e&Fa)==0)return await this.baseFs.readPromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("read");let[a,l]=o;return await a.readPromise(l,r,i,n,s)}readSync(e,r,i,n,s){if((e&Fa)==0)return this.baseFs.readSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("readSync");let[a,l]=o;return a.readSync(l,r,i,n,s)}async writePromise(e,r,i,n,s){if((e&Fa)==0)return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("write");let[a,l]=o;return typeof r=="string"?await a.writePromise(l,r,i):await a.writePromise(l,r,i,n,s)}writeSync(e,r,i,n,s){if((e&Fa)==0)return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw en("writeSync");let[a,l]=o;return typeof r=="string"?a.writeSync(l,r,i):a.writeSync(l,r,i,n,s)}async closePromise(e){if((e&Fa)==0)return await this.baseFs.closePromise(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw en("close");this.fdMap.delete(e);let[i,n]=r;return await i.closePromise(n)}closeSync(e){if((e&Fa)==0)return this.baseFs.closeSync(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw en("closeSync");this.fdMap.delete(e);let[i,n]=r;return i.closeSync(n)}createReadStream(e,r){return e===null?this.baseFs.createReadStream(e,r):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,r),(i,{archivePath:n,subPath:s})=>{let o=i.createReadStream(s,r);return o.path=H.fromPortablePath(this.pathUtils.join(n,s)),o})}createWriteStream(e,r){return e===null?this.baseFs.createWriteStream(e,r):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,r),(i,{subPath:n})=>i.createWriteStream(n,r))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Ke.root,await r.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Ke.root,r.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(r,{subPath:i})=>await r.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(r,{subPath:i})=>r.existsSync(i))}async accessPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,r),async(i,{subPath:n})=>await i.accessPromise(n,r))}accessSync(e,r){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,r),(i,{subPath:n})=>i.accessSync(n,r))}async statPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,r),async(i,{subPath:n})=>await i.statPromise(n,r))}statSync(e,r){return this.makeCallSync(e,()=>this.baseFs.statSync(e,r),(i,{subPath:n})=>i.statSync(n,r))}async fstatPromise(e,r){if((e&Fa)==0)return this.baseFs.fstatPromise(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw en("fstat");let[n,s]=i;return n.fstatPromise(s,r)}fstatSync(e,r){if((e&Fa)==0)return this.baseFs.fstatSync(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw en("fstatSync");let[n,s]=i;return n.fstatSync(s,r)}async lstatPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,r),async(i,{subPath:n})=>await i.lstatPromise(n,r))}lstatSync(e,r){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,r),(i,{subPath:n})=>i.lstatSync(n,r))}async chmodPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,r),async(i,{subPath:n})=>await i.chmodPromise(n,r))}chmodSync(e,r){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,r),(i,{subPath:n})=>i.chmodSync(n,r))}async chownPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,r,i),async(n,{subPath:s})=>await n.chownPromise(s,r,i))}chownSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,r,i),(n,{subPath:s})=>n.chownSync(s,r,i))}async renamePromise(e,r){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(e,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,r){return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(e,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,r,i=0){let n=async(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(e,r,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(r,async()=>await n(s,o,this.baseFs,r),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,r,i=0){let n=(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(e,r,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(r,()=>n(s,o,this.baseFs,r),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,r,i),async(n,{subPath:s})=>await n.appendFilePromise(s,r,i))}appendFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,r,i),(n,{subPath:s})=>n.appendFileSync(s,r,i))}async writeFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,r,i),async(n,{subPath:s})=>await n.writeFilePromise(s,r,i))}writeFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,r,i),(n,{subPath:s})=>n.writeFileSync(s,r,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(r,{subPath:i})=>await r.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(r,{subPath:i})=>r.unlinkSync(i))}async utimesPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,r,i),async(n,{subPath:s})=>await n.utimesPromise(s,r,i))}utimesSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,r,i),(n,{subPath:s})=>n.utimesSync(s,r,i))}async mkdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,r),async(i,{subPath:n})=>await i.mkdirPromise(n,r))}mkdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,r),(i,{subPath:n})=>i.mkdirSync(n,r))}async rmdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,r),async(i,{subPath:n})=>await i.rmdirPromise(n,r))}rmdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,r),(i,{subPath:n})=>i.rmdirSync(n,r))}async linkPromise(e,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(e,r),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(e,r),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,r,i){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(e,r,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,r,i){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(e,r,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,r){return this.makeCallPromise(e,async()=>{switch(r){case"utf8":return await this.baseFs.readFilePromise(e,r);default:return await this.baseFs.readFilePromise(e,r)}},async(i,{subPath:n})=>await i.readFilePromise(n,r))}readFileSync(e,r){return this.makeCallSync(e,()=>{switch(r){case"utf8":return this.baseFs.readFileSync(e,r);default:return this.baseFs.readFileSync(e,r)}},(i,{subPath:n})=>i.readFileSync(n,r))}async readdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,r),async(i,{subPath:n})=>await i.readdirPromise(n,r),{requireSubpath:!1})}readdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,r),(i,{subPath:n})=>i.readdirSync(n,r),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(r,{subPath:i})=>await r.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(r,{subPath:i})=>r.readlinkSync(i))}async truncatePromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,r),async(i,{subPath:n})=>await i.truncatePromise(n,r))}truncateSync(e,r){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,r),(i,{subPath:n})=>i.truncateSync(n,r))}watch(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,r,i),(n,{subPath:s})=>n.watch(s,r,i))}watchFile(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,r,i),()=>zE(this,e,r,i))}unwatchFile(e,r){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,r),()=>zh(this,e,r))}async makeCallPromise(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await r();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await r():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await r()}makeCallSync(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return r();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?r():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let r="";for(;;){let i=e.substring(r.length),n;if(!this.fileExtensions)n=wM(i,".zip");else for(let s of this.fileExtensions)if(n=wM(i,s),n)break;if(!n)return null;if(r=this.pathUtils.join(r,n),this.isZip.has(r)===!1){if(this.notZip.has(r))continue;try{if(!this.baseFs.lstatSync(r).isFile()){this.notZip.add(r);continue}}catch{return null}this.isZip.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Ke.root,e.substring(r.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let r=Date.now(),i=r+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(r>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-r).unref())}async getZipPromise(e,r){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new Ai(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.zipFs)}finally{n.refCount-=1}}else{let n=new Ai(e,await i());try{return await r(n)}finally{n.saveAndClose()}}}getZipSync(e,r){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new Ai(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,r(n.zipFs)}else{let n=new Ai(e,i());try{return r(n)}finally{n.saveAndClose()}}}};var Wu=ge(require("util"));var VE=ge(require("url"));var vQ=class extends bi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof VE.URL?(0,VE.fileURLToPath)(e):e}};var xfe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),BM=new Set(["accessPromise","appendFilePromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),Pfe=new Set(["appendFilePromise","chmodPromise","chownPromise","closePromise","readPromise","readFilePromise","statPromise","truncatePromise","utimesPromise","writePromise","writeFilePromise"]);function SQ(t,e){e=new vQ(e);let r=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Wu.promisify.custom])!="undefined"&&(s[Wu.promisify.custom]=o[Wu.promisify.custom])};{r(t,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),r(t,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of BM){let n=i.replace(/Promise$/,"");if(typeof t[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;r(t,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}}),r(t,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of xfe){let n=i;if(typeof t[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&r(t,n,s.bind(e))}t.realpathSync.native=t.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=t.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let o of BM){let a=o.replace(/Promise$/,"");if(typeof n[a]=="undefined")continue;let l=e[o];typeof l!="undefined"&&o!=="open"&&r(n,a,l.bind(e))}class s{constructor(a){this.fd=a}}for(let o of Pfe){let a=o.replace(/Promise$/,""),l=e[o];typeof l!="undefined"&&r(s.prototype,a,function(...c){return l.call(e,this.fd,...c)})}r(n,"open",async(...o)=>{let a=await e.openPromise(...o);return new s(a)})}}t.read[Wu.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),t.write[Wu.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function XE(t,e){let r=Object.create(t);return SQ(r,e),r}var bM=ge(require("os"));function QM(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}var io=new Set,kQ=null;function vM(){if(kQ)return kQ;let t=H.toPortablePath(bM.default.tmpdir()),e=K.realpathSync(t);return process.once("exit",()=>{K.rmtempSync()}),kQ={tmpdir:t,realTmpdir:e}}var K=Object.assign(new ar,{detachTemp(t){io.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=vM();for(;;){let i=QM("xfs-");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(r,i);if(io.add(n),typeof t=="undefined")return n;try{return t(n)}finally{if(io.has(n)){io.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=vM();for(;;){let i=QM("xfs-");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(r,i);if(io.add(n),typeof t=="undefined")return n;try{return await t(n)}finally{if(io.has(n)){io.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(io.values()).map(async t=>{try{await K.removePromise(t,{maxRetries:0}),io.delete(t)}catch{}}))},rmtempSync(){for(let t of io)try{K.removeSync(t),io.delete(t)}catch{}}});var Px=ge(MQ());var ap={};ft(ap,{parseResolution:()=>iI,parseShell:()=>$E,parseSyml:()=>Qi,stringifyArgument:()=>GQ,stringifyArgumentSegment:()=>jQ,stringifyArithmeticExpression:()=>rI,stringifyCommand:()=>HQ,stringifyCommandChain:()=>Xu,stringifyCommandChainThen:()=>UQ,stringifyCommandLine:()=>eI,stringifyCommandLineThen:()=>KQ,stringifyEnvSegment:()=>tI,stringifyRedirectArgument:()=>ep,stringifyResolution:()=>nI,stringifyShell:()=>Vu,stringifyShellLine:()=>Vu,stringifySyml:()=>La,stringifyValueArgument:()=>oc});var dK=ge(pK());function $E(t,e={isGlobPattern:()=>!1}){try{return(0,dK.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Vu(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:i},n)=>`${eI(r)}${i===";"?n!==t.length-1||e?";":"":" &"}`).join(" ")}function eI(t){return`${Xu(t.chain)}${t.then?` ${KQ(t.then)}`:""}`}function KQ(t){return`${t.type} ${eI(t.line)}`}function Xu(t){return`${HQ(t)}${t.then?` ${UQ(t.then)}`:""}`}function UQ(t){return`${t.type} ${Xu(t.chain)}`}function HQ(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>tI(e)).join(" ")} `:""}${t.args.map(e=>GQ(e)).join(" ")}`;case"subshell":return`(${Vu(t.subshell)})${t.args.length>0?` ${t.args.map(e=>ep(e)).join(" ")}`:""}`;case"group":return`{ ${Vu(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>ep(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>tI(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function tI(t){return`${t.name}=${t.args[0]?oc(t.args[0]):""}`}function GQ(t){switch(t.type){case"redirection":return ep(t);case"argument":return oc(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function ep(t){return`${t.subtype} ${t.args.map(e=>oc(e)).join(" ")}`}function oc(t){return t.segments.map(e=>jQ(e)).join("")}function jQ(t){let e=(i,n)=>n?`"${i}"`:i,r=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${Vu(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue=="undefined"?typeof t.alternativeValue=="undefined"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(i=>oc(i)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(i=>oc(i)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${rI(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function rI(t){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},r=(n,s)=>s?`( ${n} )`:n,i=n=>r(rI(n),!["number","variable"].includes(n.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${i(t.left)} ${e(t.type)} ${i(t.right)}`}}var EK=ge(mK());function iI(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,EK.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function nI(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var pI=ge(lU()),gU=ge(uU()),Kde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fU=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],rv=class{constructor(e){this.data=e}};function hU(t){return t.match(Kde)?t:JSON.stringify(t)}function pU(t){return typeof t=="undefined"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>pU(t[e])):!1}function iv(t,e,r){if(t===null)return`null -`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} -`;if(typeof t=="string")return`${hU(t)} -`;if(Array.isArray(t)){if(t.length===0)return`[] -`;let i=" ".repeat(e);return` -${t.map(s=>`${i}- ${iv(s,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let i,n;t instanceof rv?(i=t.data,n=!1):(i=t,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fU.indexOf(l),g=fU.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!pU(i[l])).map((l,c)=>{let u=i[l],g=hU(l),f=iv(u,e+1,!0),h=c>0||r?s:"",p=g.length>1024?`? ${g} -${h}:`:`${g}:`,m=f.startsWith(` -`)?f:` ${f}`;return`${h}${p}${m}`}).join(e===0?` -`:"")||` -`;return r?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${t})`)}function La(t){try{let e=iv(t,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}La.PreserveOrdering=rv;function Ude(t){return t.endsWith(` -`)||(t+=` -`),(0,gU.parse)(t)}var Hde=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Gde(t){if(Hde.test(t))return Ude(t);let e=(0,pI.safeLoad)(t,{schema:pI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Qi(t){return Gde(t)}var i4=ge(CU()),ww=ge(pc());var mp={};ft(mp,{Builtins:()=>mv,Cli:()=>ys,Command:()=>Re,Option:()=>W,UsageError:()=>Pe,formatMarkdownish:()=>Ui});var dc=0,Ap=1,tn=2,sv="",vi="\0",og=-1,ov=/^(-h|--help)(?:=([0-9]+))?$/,dI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wU=/^-[a-zA-Z]{2,}$/,av=/^([^=]+)=([\s\S]*)$/,Av=process.env.DEBUG_CLI==="1";var Pe=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},lp=class extends Error{constructor(e,r){super();if(this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===r[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${lv(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},cv=class extends Error{constructor(e,r){super();this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},lv=t=>`While running ${t.filter(e=>e!==vi).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`;var cp=Symbol("clipanion/isOption");function rn(t){return ie(N({},t),{[cp]:!0})}function No(t,e){return typeof t=="undefined"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function CI(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function up(t,e){return e.length===1?new Pe(`${t}: ${CI(e[0],!0)}`):new Pe(`${t}: -${e.map(r=>` -- ${CI(r)}`).join("")}`)}function gp(t,e,r){if(typeof r=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!r(e,{errors:i,coercions:n,coercion:s}))throw up(`Invalid value for ${t}`,i);for(let[,a]of n)a();return e}var Re=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(Is(),ag)),a=o(n(s()),r),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw up("Invalid option schema",l);for(let[,g]of c)g()}else if(r!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i!="undefined"?i:0}};Re.isOption=cp;Re.Default=[];var RU=80,fv=Array(RU).fill("\u2501");for(let t=0;t<=24;++t)fv[fv.length-t]=`[38;5;${232+t}m\u2501`;var hv={header:t=>`\u2501\u2501\u2501 ${t}${t.length`${t}`,error:t=>`${t}`,code:t=>`${t}`},FU={header:t=>t,bold:t=>t,error:t=>t,code:t=>t};function bCe(t){let e=t.split(` -`),r=e.filter(n=>n.match(/\S/)),i=r.length>0?r.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ui(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` -`),t=bCe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),t=t.replace(/\n(\n)?\n*/g,"$1"),r&&(t=t.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),t?`${t} -`:""}var Cv=ge(require("tty"));function wn(t){Av&&console.log(t)}var NU={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:og};function LU(){return{nodes:[sn(),sn(),sn()]}}function vCe(t){let e=LU(),r=[],i=e.nodes.length;for(let n of t){r.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=t.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)r(a);for(let[,{to:o}]of n.dynamics)r(o);for(let{to:o}of n.shortcuts)r(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=t.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};r(dc)}function kCe(t,{prefix:e=""}={}){if(Av){wn(`${e}Nodes are:`);for(let r=0;rl!==tn).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===tn))throw new lp(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=xCe(a)}if(i.length>0){wn(" Results:");for(let s of i)wn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else wn(" No results");return i}function PCe(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,vi)){for(let{to:r}of t.statics[vi])if(r===Ap)return!0}return!1}function RCe(t,e,r){let i=r&&e.length>0?[""]:[],n=OU(t,e,r),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let m=t.nodes[p],y=Object.keys(m.statics);for(let b of Object.keys(m.statics)){let S=y[0];for(let{to:k,reducer:T}of m.statics[S])T==="pushPath"&&(u||l.push(S),g.push(k))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=t.nodes[l],g=PCe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==vi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===tn)continue;let p=DCe(f,c);if(p!==null)for(let m of p)a([...i,m],l)}}return[...s].sort()}function NCe(t,e){let r=OU(t,[...e,vi]);return FCe(e,r.map(({state:i})=>i))}function xCe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function FCe(t,e){let r=e.filter(g=>g.selectedIndex!==null);if(r.length===0)throw new Error;let i=r.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new lp(t,r.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=LCe(c);if(u.length>1)throw new cv(t,u.map(g=>g.candidateUsage));return u[0]}function LCe(t){let e=[],r=[];for(let i of t)i.selectedIndex===og?r.push(i):e.push(i);return r.length>0&&e.push(ie(N({},NU),{path:MU(...r.map(i=>i.path)),options:r.reduce((i,n)=>i.concat(n.options),[])})),e}function MU(t,e,...r){return e===void 0?Array.from(t):MU(t.filter((i,n)=>i===e[n]),...r)}function sn(){return{dynamics:[],shortcuts:[],statics:{}}}function TU(t){return t===Ap||t===tn}function dv(t,e=0){return{to:TU(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function QCe(t,e=0){let r=sn();for(let[i,n]of t.dynamics)r.dynamics.push([i,dv(n,e)]);for(let i of t.shortcuts)r.shortcuts.push(dv(i,e));for(let[i,n]of Object.entries(t.statics))r.statics[i]=n.map(s=>dv(s,e));return r}function Si(t,e,r,i,n){t.nodes[e].dynamics.push([r,{to:i,reducer:n}])}function Ag(t,e,r,i){t.nodes[e].shortcuts.push({to:r,reducer:i})}function Ta(t,e,r,i,n){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:i,reducer:n})}function EI(t,e,r,i){if(Array.isArray(e)){let[n,...s]=e;return t[n](r,i,...s)}else return t[e](r,i)}function DCe(t,e){let r=Array.isArray(t)?II[t[0]]:II[t];if(typeof r.suggest=="undefined")return null;let i=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...i)}var II={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,i)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&wU.test(e)&&[...e.slice(1)].every(i=>r.includes(`-${i}`)),isBoundOption:(t,e,r,i)=>{let n=e.match(av);return!t.ignoreOptions&&!!n&&dI.test(n[1])&&r.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&ov.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&dI.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!dI.test(e)};II.isOption.suggest=(t,e,r=!0)=>r?null:[e];var pv={setCandidateState:(t,e,r)=>N(N({},t),r),setSelectedIndex:(t,e,r)=>ie(N({},t),{selectedIndex:r}),pushBatch:(t,e)=>ie(N({},t),{options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,i]=e.match(av);return ie(N({},t),{options:t.options.concat({name:r,value:i})})},pushPath:(t,e)=>ie(N({},t),{path:t.path.concat(e)}),pushPositional:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>ie(N({},t),{positionals:t.positionals.concat({value:e,extra:Xn})}),pushTrue:(t,e,r=e)=>ie(N({},t),{options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>ie(N({},t),{options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>ie(N({},t),{options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let i=ie(N({},t),{options:[...t.options]}),n=t.options[t.options.length-1];return n.value=((r=n.value)!==null&&r!==void 0?r:[]).concat([e]),i},setStringValue:(t,e)=>{let r=ie(N({},t),{options:[...t.options]}),i=t.options[t.options.length-1];return i.value=e,r},inhibateOptions:t=>ie(N({},t),{ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,i]=e.match(ov);return typeof i!="undefined"?ie(N({},t),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):ie(N({},t),{options:[{name:"-c",value:String(r)}]})},setError:(t,e,r)=>e===vi?ie(N({},t),{errorMessage:`${r}.`}):ie(N({},t),{errorMessage:`${r} ("${e}").`}),setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return ie(N({},t),{errorMessage:`Not enough arguments to option ${r.name}.`})}},Xn=Symbol(),KU=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:i,proxy:n})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===Xn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==Xn?this.arity.extra.push(e):this.arity.extra!==Xn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Xn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Xn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=LU(),r=dc,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);r=no(e,sn()),Ta(e,dc,sv,r,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=r;if(a.length>0){let f=no(e,sn());Ag(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=no(e,sn());Si(e,l,"isHelp",f,["useHelp",this.cliIndex]),Ta(e,f,vi,Ap,["setSelectedIndex",og]),this.registerOptions(e,l)}this.arity.leading.length>0&&Ta(e,l,vi,tn,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Ta(e,h,vi,tn,["setError","Not enough positional arguments"]),Si(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Xn||this.arity.extra.length>0){let f=no(e,sn());if(Ag(e,c,f),this.arity.extra===Xn){let h=no(e,sn());this.arity.proxy||this.registerOptions(e,h),Si(e,c,s,h,"pushExtraNoLimits"),Si(e,h,s,h,"pushExtraNoLimits"),Ag(e,h,f)}else for(let h=0;h0&&Ta(e,u,vi,tn,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Si(e,r,["isOption",s,i.hidden||s!==n],r,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Si(e,r,["isNegatedOption",s],r,["pushFalse",s]);else{let s=no(e,sn());for(let o of i.names)Si(e,r,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eNCe(i,n),suggest:(n,s)=>RCe(i,n,s)}}};var Cp=class extends Re{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,r){let i=new Cp(r);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let r=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var UU=Symbol("clipanion/errorCommand");function TCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY?8:1}var ys=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new dp({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,r={}){let i=new ys(r);for(let n of e)i.register(n);return i}register(e){var r;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Re.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(r=e.paths)!==null&&r!==void 0?r:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:r,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case og:return Cp.from(n,r);default:{let{commandClass:s}=r[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[UU]=a,l}}break}}async run(e,r){var i;let n,s=N(N({},ys.defaultContext),r),o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,N(N({},s),u)),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?OCe(s):HU,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:i}=this.builder.compile();return i(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Ui(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Ui(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Ui(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Ui(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return r}usage(e=null,{colored:r,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Re?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ui(l,{format:this.format(r),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(r).header("Usage")} -`,a+=` -`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(r).bold(n)}${g} -`,f.length>0){a+=` -`,a+=`${hv.header("Options")} -`;let h=f.reduce((p,m)=>Math.max(p,m.definition.length),0);a+=` -`;for(let{definition:p,description:m}of f)a+=` ${this.format(r).bold(p.padEnd(h))} ${Ui(m,{format:this.format(r),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(r).header("Details")} -`,a+=` -`,a+=Ui(c,{format:this.format(r),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(r).header("Examples")} -`;for(let[h,p]of u)a+=` -`,a+=Ui(h,{format:this.format(r),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(r).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(r).bold(n)}${l} -`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Ui(f.usage.category,{format:this.format(r),paragraphs:!1}):null,m=l.get(p);typeof m=="undefined"&&l.set(p,m=[]);let{usage:y}=this.getUsageByIndex(h);m.push({commandClass:f,usage:y})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(r).header(`${this.binaryLabel}`)} -`:a+=`${this.format(r).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(r).bold(n)}${this.binaryName} -`):a+=`${this.format(r).bold(n)}${this.binaryName} -`;for(let f of c){let h=l.get(f).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` -`,a+=`${this.format(r).header(`${p}`)} -`;for(let{commandClass:m,usage:y}of h){let b=m.usage.description||"undocumented";a+=` -`,a+=` ${this.format(r).bold(y)} -`,a+=` ${Ui(b,{format:this.format(r),paragraphs:!1})}`}}a+=` -`,a+=Ui("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return a}error(e,r){var i,{colored:n,command:s=(i=e[UU])!==null&&i!==void 0?i:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var r;return((r=e!=null?e:this.enableColors)!==null&&r!==void 0?r:ys.defaultContext.colorDepth>1)?hv:FU}getUsageByRegistration(e,r){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};ys.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in Cv.default.WriteStream.prototype?Cv.default.WriteStream.prototype.getColorDepth():TCe()};var GU;function OCe(t){let e=GU;if(typeof e=="undefined"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return HU;let{AsyncLocalStorage:r}=require("async_hooks");e=GU=new r;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return r=>e.run(t,r)}function HU(t){return t()}var mv={};ft(mv,{DefinitionsCommand:()=>yI,HelpCommand:()=>wI,VersionCommand:()=>BI});var yI=class extends Re{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};yI.paths=[["--clipanion=definitions"]];var wI=class extends Re{async execute(){this.context.stdout.write(this.cli.usage())}};wI.paths=[["-h"],["--help"]];var BI=class extends Re{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};BI.paths=[["-v"],["--version"]];var W={};ft(W,{Array:()=>jU,Boolean:()=>YU,Counter:()=>qU,Proxy:()=>JU,Rest:()=>WU,String:()=>zU,applyValidator:()=>gp,cleanValidationError:()=>CI,formatError:()=>up,isOptionSymbol:()=>cp,makeCommandOption:()=>rn,rerouteArguments:()=>No});function jU(t,e,r){let[i,n]=No(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function YU(t,e,r){let[i,n]=No(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function qU(t,e,r){let[i,n]=No(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function JU(t={}){return rn({definition(e,r){var i;e.addProxy({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){return i.positionals.map(({value:n})=>n)}})}function WU(t={}){return rn({definition(e,r){var i;e.addRest({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){let n=o=>{let a=i.positionals[o];return a.extra===Xn||a.extra===!1&&oo)}})}function MCe(t,e,r){let[i,n]=No(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?gp(g!=null?g:c,f,n.validator):f}})}function KCe(t={}){let{required:e=!0}=t;return rn({definition(r,i){var n;r.addPositional({name:(n=t.name)!==null&&n!==void 0?n:i,required:t.required})},transformer(r,i,n){var s;for(let o=0;ou8,areIdentsEqual:()=>hd,areLocatorsEqual:()=>pd,areVirtualPackagesEquivalent:()=>cSe,bindDescriptor:()=>ASe,bindLocator:()=>lSe,convertDescriptorToLocator:()=>gw,convertLocatorToDescriptor:()=>ax,convertPackageToLocator:()=>aSe,convertToIdent:()=>oSe,convertToManifestRange:()=>fSe,copyPackage:()=>ud,devirtualizeDescriptor:()=>gd,devirtualizeLocator:()=>fd,getIdentVendorPath:()=>gx,isPackageCompatible:()=>dw,isVirtualDescriptor:()=>nl,isVirtualLocator:()=>Xo,makeDescriptor:()=>rr,makeIdent:()=>Vo,makeLocator:()=>cn,makeRange:()=>hw,parseDescriptor:()=>sl,parseFileStyleRange:()=>uSe,parseIdent:()=>An,parseLocator:()=>Kc,parseRange:()=>Gg,prettyDependent:()=>WS,prettyDescriptor:()=>sr,prettyIdent:()=>gi,prettyLocator:()=>Bt,prettyLocatorNoColors:()=>ux,prettyRange:()=>uw,prettyReference:()=>Cd,prettyResolution:()=>zS,prettyWorkspace:()=>md,renamePackage:()=>cd,slugifyIdent:()=>cx,slugifyLocator:()=>jg,sortDescriptors:()=>Yg,stringifyDescriptor:()=>Pn,stringifyIdent:()=>Ot,stringifyLocator:()=>Ds,tryParseDescriptor:()=>dd,tryParseIdent:()=>g8,tryParseLocator:()=>fw,virtualizeDescriptor:()=>Ax,virtualizePackage:()=>lx});var Hg=ge(require("querystring")),A8=ge(ri()),l8=ge(QY());var Ae={};ft(Ae,{LogLevel:()=>fo,Style:()=>Dc,Type:()=>Ye,addLogFilterSupport:()=>sd,applyColor:()=>is,applyHyperlink:()=>Lg,applyStyle:()=>Ty,json:()=>Rc,jsonOrPretty:()=>G0e,mark:()=>$S,pretty:()=>et,prettyField:()=>Jo,prettyList:()=>ZS,supportsColor:()=>Ny,supportsHyperlinks:()=>VS,tuple:()=>go});var id=ge(BS()),nd=ge(pc());var vJ=ge(rs()),SJ=ge(fJ());var ve={};ft(ve,{AsyncActions:()=>IJ,BufferStream:()=>EJ,CachingStrategy:()=>Pc,DefaultStream:()=>yJ,allSettledSafe:()=>uo,assertNever:()=>GS,bufferStream:()=>Fg,buildIgnorePattern:()=>M0e,convertMapsToIndexableObjects:()=>Fy,dynamicRequire:()=>Ng,escapeRegExp:()=>F0e,getArrayWithDefault:()=>Pg,getFactoryWithDefault:()=>Ja,getMapWithDefault:()=>Dg,getSetWithDefault:()=>xc,isIndexableObject:()=>jS,isPathLike:()=>K0e,isTaggedYarnVersion:()=>R0e,mapAndFilter:()=>qo,mapAndFind:()=>ed,overrideType:()=>HS,parseBoolean:()=>rd,parseOptionalBoolean:()=>QJ,prettifyAsyncErrors:()=>Rg,prettifySyncErrors:()=>YS,releaseAfterUseAsync:()=>L0e,replaceEnvVariables:()=>qS,sortMap:()=>xn,tryParseOptionalBoolean:()=>JS,validateEnum:()=>N0e});var hJ=ge(rs()),pJ=ge(lg()),dJ=ge(ri()),US=ge(require("stream"));function R0e(t){return!!(dJ.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function F0e(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function HS(t){}function GS(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function N0e(t,e){let r=Object.values(t);if(!r.includes(e))throw new Pe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(i=>JSON.stringify(i)).join(", ")})`);return e}function qo(t,e){let r=[];for(let i of t){let n=e(i);n!==CJ&&r.push(n)}return r}var CJ=Symbol();qo.skip=CJ;function ed(t,e){for(let r of t){let i=e(r);if(i!==mJ)return i}}var mJ=Symbol();ed.skip=mJ;function jS(t){return typeof t=="object"&&t!==null}async function uo(t){let e=await Promise.allSettled(t),r=[];for(let i of e){if(i.status==="rejected")throw i.reason;r.push(i.value)}return r}function Fy(t){if(t instanceof Map&&(t=Object.fromEntries(t)),jS(t))for(let e of Object.keys(t)){let r=t[e];jS(r)&&(t[e]=Fy(r))}return t}function Ja(t,e,r){let i=t.get(e);return typeof i=="undefined"&&t.set(e,i=r()),i}function Pg(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=[]),r}function xc(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Set),r}function Dg(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Map),r}async function L0e(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Rg(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function YS(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Fg(t){return await new Promise((e,r)=>{let i=[];t.on("error",n=>{r(n)}),t.on("data",n=>{i.push(n)}),t.on("end",()=>{e(Buffer.concat(i))})})}var EJ=class extends US.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}};function T0e(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}}var IJ=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,pJ.default)(e)}set(e,r){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=T0e());let n=this.limit(()=>r());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,r){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>r(i))}async wait(){await Promise.all(this.promises.values())}},yJ=class extends US.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},td=eval("require");function wJ(t){return td(H.fromPortablePath(t))}function BJ(path){let physicalPath=H.fromPortablePath(path),currentCacheEntry=td.cache[physicalPath];delete td.cache[physicalPath];let result;try{result=wJ(physicalPath);let freshCacheEntry=td.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{td.cache[physicalPath]=currentCacheEntry}return result}var bJ=new Map;function O0e(t){let e=bJ.get(t),r=K.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let i=BJ(t);return bJ.set(t,{mtime:r.mtimeMs,instance:i}),i}var Pc;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Pc||(Pc={}));function Ng(t,{cachingStrategy:e=2}={}){switch(e){case 0:return BJ(t);case 1:return O0e(t);case 2:return wJ(t);default:throw new Error("Unsupported caching strategy")}}function xn(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(r.map(o=>s(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function M0e(t){return t.length===0?null:t.map(e=>`(${hJ.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function qS(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Pe(`Environment variable not found (${n})`)})}function rd(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function QJ(t){return typeof t=="undefined"?t:rd(t)}function JS(t){try{return QJ(t)}catch{return null}}function K0e(t){return!!(H.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}var Qt;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Qt||(Qt={}));var yi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(yi||(yi={}));var qi;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(qi||(qi={}));var Ye={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},Dc;(function(e){e[e.BOLD=2]="BOLD"})(Dc||(Dc={}));var _S=nd.default.GITHUB_ACTIONS?{level:2}:id.default.supportsColor?{level:id.default.supportsColor.level}:{level:0},Ny=_S.level!==0,VS=Ny&&!nd.default.GITHUB_ACTIONS&&!nd.default.CIRCLE&&!nd.default.GITLAB,XS=new id.default.Instance(_S),U0e=new Map([[Ye.NO_HINT,null],[Ye.NULL,["#a853b5",129]],[Ye.SCOPE,["#d75f00",166]],[Ye.NAME,["#d7875f",173]],[Ye.RANGE,["#00afaf",37]],[Ye.REFERENCE,["#87afff",111]],[Ye.NUMBER,["#ffd700",220]],[Ye.PATH,["#d75fd7",170]],[Ye.URL,["#d75fd7",170]],[Ye.ADDED,["#5faf00",70]],[Ye.REMOVED,["#d70000",160]],[Ye.CODE,["#87afff",111]],[Ye.SIZE,["#ffd700",220]]]),Rs=t=>t,Ly={[Ye.NUMBER]:Rs({pretty:(t,e)=>`${e}`,json:t=>t}),[Ye.IDENT]:Rs({pretty:(t,e)=>gi(t,e),json:t=>Ot(t)}),[Ye.LOCATOR]:Rs({pretty:(t,e)=>Bt(t,e),json:t=>Ds(t)}),[Ye.DESCRIPTOR]:Rs({pretty:(t,e)=>sr(t,e),json:t=>Pn(t)}),[Ye.RESOLUTION]:Rs({pretty:(t,{descriptor:e,locator:r})=>zS(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:Pn(t),locator:e!==null?Ds(e):null})}),[Ye.DEPENDENT]:Rs({pretty:(t,{locator:e,descriptor:r})=>WS(t,e,r),json:({locator:t,descriptor:e})=>({locator:Ds(t),descriptor:Pn(e)})}),[Ye.PACKAGE_EXTENSION]:Rs({pretty:(t,e)=>{switch(e.type){case yi.Dependency:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"dependencies",Ye.CODE)} \u27A4 ${gi(t,e.descriptor)}`;case yi.PeerDependency:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"peerDependencies",Ye.CODE)} \u27A4 ${gi(t,e.descriptor)}`;case yi.PeerDependencyMeta:return`${gi(t,e.parentDescriptor)} \u27A4 ${is(t,"peerDependenciesMeta",Ye.CODE)} \u27A4 ${gi(t,An(e.selector))} \u27A4 ${is(t,e.key,Ye.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case yi.Dependency:return`${Ot(t.parentDescriptor)} > ${Ot(t.descriptor)}`;case yi.PeerDependency:return`${Ot(t.parentDescriptor)} >> ${Ot(t.descriptor)}`;case yi.PeerDependencyMeta:return`${Ot(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Ye.SETTING]:Rs({pretty:(t,e)=>(t.get(e),Lg(t,is(t,e,Ye.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Ye.DURATION]:Rs({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),i=Math.ceil((e-r*60*1e3)/1e3);return i===0?`${r}m`:`${r}m ${i}s`}else{let r=Math.floor(e/1e3),i=e-r*1e3;return i===0?`${r}s`:`${r}s ${i}ms`}},json:t=>t}),[Ye.SIZE]:Rs({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],i=r.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return is(t,`${s} ${r[i-1]}`,Ye.NUMBER)},json:t=>t}),[Ye.PATH]:Rs({pretty:(t,e)=>is(t,H.fromPortablePath(e),Ye.PATH),json:t=>H.fromPortablePath(t)}),[Ye.MARKDOWN]:Rs({pretty:(t,{text:e,format:r,paragraphs:i})=>Ui(e,{format:r,paragraphs:i}),json:({text:t})=>t})};function go(t,e){return[e,t]}function Ty(t,e,r){return t.get("enableColors")&&r&2&&(e=id.default.bold(e)),e}function is(t,e,r){if(!t.get("enableColors"))return e;let i=U0e.get(r);if(i===null)return e;let n=typeof i=="undefined"?r:_S.level>=3?i[0]:i[1],s=typeof n=="number"?XS.ansi256(n):n.startsWith("#")?XS.hex(n):XS[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var H0e=!!process.env.KONSOLE_VERSION;function Lg(t,e,r){return t.get("enableHyperlinks")?H0e?`]8;;${r}\\${e}]8;;\\`:`]8;;${r}\x07${e}]8;;\x07`:e}function et(t,e,r){if(e===null)return is(t,"null",Ye.NULL);if(Object.prototype.hasOwnProperty.call(Ly,r))return Ly[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return is(t,e,r)}function ZS(t,e,r,{separator:i=", "}={}){return[...e].map(n=>et(t,n,r)).join(i)}function Rc(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(Ly,e))return HS(e),Ly[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function G0e(t,e,[r,i]){return t?Rc(r,i):et(e,r,i)}function $S(t){return{Check:is(t,"\u2713","green"),Cross:is(t,"\u2718","red"),Question:is(t,"?","cyan")}}function Jo(t,{label:e,value:[r,i]}){return`${et(t,e,Ye.CODE)}: ${et(t,r,i)}`}var fo;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(fo||(fo={}));function sd(t,{configuration:e}){let r=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of r){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let m=g.get("pattern");typeof m!="undefined"&&s.push([vJ.default.matcher(m,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===$.UNNAMED)return h;let p=n.size>0||s.length>0?(0,SJ.default)(f):f;if(n.size>0){let m=n.get(p);if(typeof m!="undefined")return m!=null?m:h}if(s.length>0){for(let[m,y]of s)if(m(p))return y!=null?y:h}if(i.size>0){let m=i.get(qA(g));if(typeof m!="undefined")return m!=null?m:h}return h},a=t.reportInfo,l=t.reportWarning,c=t.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case fo.Info:a.call(g,f,h);break;case fo.Warning:l.call(g,f!=null?f:$.UNNAMED,h);break;case fo.Error:c.call(g,f!=null?f:$.UNNAMED,h);break}};t.reportInfo=function(...g){return u(this,...g,fo.Info)},t.reportWarning=function(...g){return u(this,...g,fo.Warning)},t.reportError=function(...g){return u(this,...g,fo.Error)}}var Dn={};ft(Dn,{checksumFile:()=>lw,checksumPattern:()=>cw,makeHash:()=>ln});var Aw=ge(require("crypto")),ox=ge(sx());function ln(...t){let e=(0,Aw.createHash)("sha512"),r="";for(let i of t)typeof i=="string"?r+=i:i&&(r&&(e.update(r),r=""),e.update(i));return r&&e.update(r),e.digest("hex")}async function lw(t,{baseFs:e,algorithm:r}={baseFs:K,algorithm:"sha512"}){let i=await e.openPromise(t,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,Aw.createHash)(r),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function cw(t,{cwd:e}){let i=(await(0,ox.default)(t,{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,ox.default)([t,...i],{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=H.toPortablePath(a),u=await K.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await K.readlinkPromise(c))):u.isFile()&&l.push(await K.readFilePromise(c)),l.join("\0")})),o=(0,Aw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var ld="virtual:",nSe=5,c8=/(os|cpu|libc)=([a-z0-9_-]+)/,sSe=(0,l8.makeParser)(c8);function Vo(t,e){if(t==null?void 0:t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:ln(t,e),scope:t,name:e}}function rr(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:ln(t.identHash,e),range:e}}function cn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:ln(t.identHash,e),reference:e}}function oSe(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function gw(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function ax(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function aSe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function cd(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function ud(t){return cd(t,t)}function Ax(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return rr(t,`virtual:${e}#${t.range}`)}function lx(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return cd(t,cn(t,`virtual:${e}#${t.reference}`))}function nl(t){return t.range.startsWith(ld)}function Xo(t){return t.reference.startsWith(ld)}function gd(t){if(!nl(t))throw new Error("Not a virtual descriptor");return rr(t,t.range.replace(/^[^#]*#/,""))}function fd(t){if(!Xo(t))throw new Error("Not a virtual descriptor");return cn(t,t.reference.replace(/^[^#]*#/,""))}function ASe(t,e){return t.range.includes("::")?t:rr(t,`${t.range}::${Hg.default.stringify(e)}`)}function lSe(t,e){return t.reference.includes("::")?t:cn(t,`${t.reference}::${Hg.default.stringify(e)}`)}function hd(t,e){return t.identHash===e.identHash}function u8(t,e){return t.descriptorHash===e.descriptorHash}function pd(t,e){return t.locatorHash===e.locatorHash}function cSe(t,e){if(!Xo(t))throw new Error("Invalid package type");if(!Xo(e))throw new Error("Invalid package type");if(!hd(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let i=e.dependencies.get(r.identHash);if(!i||!u8(r,i))return!1}return!0}function An(t){let e=g8(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function g8(t){let e=t.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,r,i]=e,n=typeof r!="undefined"?r:null;return Vo(n,i)}function sl(t,e=!1){let r=dd(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function dd(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid range (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return rr(Vo(o,n),a)}function Kc(t,e=!1){let r=fw(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function fw(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid reference (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return cn(Vo(o,n),a)}function Gg(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let i=typeof r[1]!="undefined"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof r[3]!="undefined"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${t})`);let s=typeof r[3]!="undefined"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),o=(e==null?void 0:e.parseSelector)?Hg.default.parse(s):s,a=typeof r[4]!="undefined"?Hg.default.parse(r[4]):null;return{protocol:i,source:n,selector:o,params:a}}function uSe(t,{protocol:e}){let{selector:r,params:i}=Gg(t,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Kc(i.locator,!0),path:r}}function f8(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function gSe(t){return t===null?!1:Object.entries(t).length>0}function hw({protocol:t,source:e,selector:r,params:i}){let n="";return t!==null&&(n+=`${t}`),e!==null&&(n+=`${f8(e)}#`),n+=f8(r),gSe(i)&&(n+=`::${Hg.default.stringify(i)}`),n}function fSe(t){let{params:e,protocol:r,source:i,selector:n}=Gg(t);for(let s in e)s.startsWith("__")&&delete e[s];return hw({protocol:r,source:i,params:e,selector:n})}function Ot(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Pn(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Ds(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function cx(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function jg(t){let{protocol:e,selector:r}=Gg(t.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=A8.default.valid(r),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=t.scope?`${cx(t)}-${s}-${t.locatorHash.slice(0,o)}`:`${cx(t)}-${s}-${t.locatorHash.slice(0,o)}`;return Jr(a)}function gi(t,e){return e.scope?`${et(t,`@${e.scope}/`,Ye.SCOPE)}${et(t,e.name,Ye.NAME)}`:`${et(t,e.name,Ye.NAME)}`}function pw(t){if(t.startsWith(ld)){let e=pw(t.substring(t.indexOf("#")+1)),r=t.substring(ld.length,ld.length+nSe);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function uw(t,e){return`${et(t,pw(e),Ye.RANGE)}`}function sr(t,e){return`${gi(t,e)}${et(t,"@",Ye.RANGE)}${uw(t,e.range)}`}function Cd(t,e){return`${et(t,pw(e),Ye.REFERENCE)}`}function Bt(t,e){return`${gi(t,e)}${et(t,"@",Ye.REFERENCE)}${Cd(t,e.reference)}`}function ux(t){return`${Ot(t)}@${pw(t.reference)}`}function Yg(t){return xn(t,[e=>Ot(e),e=>e.range])}function md(t,e){return gi(t,e.locator)}function zS(t,e,r){let i=nl(e)?gd(e):e;return r===null?`${sr(t,i)} \u2192 ${$S(t).Cross}`:i.identHash===r.identHash?`${sr(t,i)} \u2192 ${Cd(t,r.reference)}`:`${sr(t,i)} \u2192 ${Bt(t,r)}`}function WS(t,e,r){return r===null?`${Bt(t,e)}`:`${Bt(t,e)} (via ${uw(t,r.range)})`}function gx(t){return`node_modules/${Ot(t)}`}function dw(t,e){return t.conditions?sSe(t.conditions,r=>{let[,i,n]=r.match(c8),s=e[i];return s?s.includes(n):!0}):!0}var h8={hooks:{reduceDependency:(t,e,r,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Ot(r)||o.from&&o.from.description&&o.from.description!==r.reference||o.descriptor.fullName!==Ot(t)||o.descriptor.description&&o.descriptor.description!==t.range)continue;return n.bindDescriptor(rr(t,a),e.topLevelWorkspace.anchoredLocator,s)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let i=md(t.configuration,r);await t.configuration.triggerHook(n=>n.validateWorkspace,r,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let i of r.errors)e.reportWarning($.INVALID_MANIFEST,i.message)}}};var m8=ge(ri());var Ed=class{supportsDescriptor(e,r){return!!(e.range.startsWith(Ed.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(Ed.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.getWorkspaceByCwd(e.reference.slice(Ed.protocol.length));return ie(N({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:Qt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},oi=Ed;oi.protocol="workspace:";var Wt={};ft(Wt,{SemVer:()=>p8.SemVer,clean:()=>pSe,satisfiesWithPrereleases:()=>Uc,validRange:()=>ho});var Cw=ge(ri()),p8=ge(ri()),d8=new Map;function Uc(t,e,r=!1){if(!t)return!1;let i=`${e}${r}`,n=d8.get(i);if(typeof n=="undefined")try{n=new Cw.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{d8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Cw.default.SemVer(t,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var C8=new Map;function ho(t){if(t.indexOf(":")!==-1)return null;let e=C8.get(t);if(typeof e!="undefined")return e;try{e=new Cw.default.Range(t)}catch{e=null}return C8.set(t,e),e}var hSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function pSe(t){let e=hSe.exec(t);return e?e[1]:null}var ol=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new ar}={}){let i=x.join(e,"package.json");try{return await ol.fromFile(i,{baseFs:r})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:r}={}){let i=await ol.tryFind(e,{baseFs:r});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:r=new ar}={}){let i=new ol;return await i.loadFile(e,{baseFs:r}),i}static fromText(e){let r=new ol;return r.loadFromText(e),r}static isManifestFieldCompatible(e,r){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,r===s.slice(1))return!1}else if(i=!1,s===r)return!0;return n&&i}loadFromText(e){let r;try{r=JSON.parse(I8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(r),this.indent=E8(e)}async loadFile(e,{baseFs:r=new ar}){let i=await r.readFilePromise(e,"utf8"),n;try{n=JSON.parse(I8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=E8(i)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=An(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=un(e.main):this.main=null,typeof e.module=="string"?this.module=un(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=un(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(un(s),typeof o=="string"?un(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,un(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=An(s);this.bin.set(a.name,un(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(oi.protocol)&&!ho(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=rr(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=sl(s),l=this.ensureDependencyMeta(a),c=mw(o.built,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=mw(o.optional,{yamlCompatibilityMode:r});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=mw(o.unplugged,{yamlCompatibilityMode:r});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=sl(s),l=this.ensurePeerDependencyMeta(a),c=mw(o.optional,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:iI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=un(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=un(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=un(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(un(s),typeof o=="string"?un(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,un(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,un(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(un(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l);let c=rr(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(fx("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(fx("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(fx("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return ol.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return ol.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!m8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pn(e)}'`);let r=Ot(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(r);n||this.dependenciesMeta.set(r,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pn(e)}'`);let r=Ot(e),i=this.peerDependenciesMeta.get(r);return i||this.peerDependenciesMeta.set(r,i={}),i}setRawField(e,r,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=r,a=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Ot(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=ie(N({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Ot(o)),l=!1;if(r&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Yg(i).map(o=>({[Ot(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Yg(n).map(o=>({[Ot(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Yg(this.devDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Yg(this.peerDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of xn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of xn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Pn(rr(An(o),l)):o,g=N({},c);r&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...xn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[nI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},At=ol;At.fileName="package.json",At.allDependencies=["dependencies","devDependencies","peerDependencies"],At.hardDependencies=["dependencies","devDependencies"];function E8(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function I8(t){return t.charCodeAt(0)===65279?t.slice(1):t}function un(t){return t.replace(/\\/g,"/")}function mw(t,{yamlCompatibilityMode:e}){return e?JS(t):typeof t=="undefined"||typeof t=="boolean"?t:null}function y8(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let i=r%2==0?"":"!",n=e.slice(r);return`${i}${t}=${n}`}function fx(t,e){return e.length===1?y8(t,e[0]):`(${e.map(r=>y8(t,r)).join(" | ")})`}var Z8=ge(X8()),$8=ge(require("stream")),e4=ge(require("string_decoder"));var Ake=15,ct=class extends Error{constructor(e,r,i){super(r);this.reportExtra=i;this.reportCode=e}};function lke(t){return typeof t.reportCode!="undefined"}var Ji=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),r=l,c()},o=(l=0)=>{s(r+1)},a=async function*(){for(;r{r=o}),n=(0,Z8.default)(o=>{let a=r;i=new Promise(l=>{r=l}),e=o,a()},1e3/Ake),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,r){let i=this.reportProgress(e);try{return await r(e)}finally{i.stop()}}startProgressSync(e,r){let i=this.reportProgress(e);try{return r(e)}finally{i.stop()}}reportInfoOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,r,i){var s;let n=i&&i.key?i.key:r;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,r),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){lke(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce($.EXCEPTION,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new $8.PassThrough,i=new e4.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),r}};var wd=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));return i||null}getFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));if(!i)throw new ct($.FETCHER_NOT_FOUND,`${Bt(r.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Bd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,r,i)}async getSatisfying(e,r,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,r,i)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));return i||null}getResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));if(!i)throw new Error(`${sr(r.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));return i||null}getResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));if(!i)throw new Error(`${Bt(r.project.configuration,e)} isn't supported by any available resolver`);return i}};var t4=ge(ri());var qg=/^(?!v)[a-z0-9._-]+$/i,dx=class{supportsDescriptor(e,r){return!!(ho(e.range)||qg.test(e.range))}supportsLocator(e,r){return!!(t4.default.valid(e.reference)||qg.test(e.reference))}shouldPersistResolution(e,r){return r.resolver.shouldPersistResolution(this.forwardLocator(e,r),r)}bindDescriptor(e,r,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),r,i)}getResolutionDependencies(e,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(e,r),r)}async getCandidates(e,r,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),r,i)}async getSatisfying(e,r,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),r,i)}async resolve(e,r){let i=await r.resolver.resolve(this.forwardLocator(e,r),r);return cd(i,e)}forwardDescriptor(e,r){return rr(e,`${r.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,r){return cn(e,`${r.project.configuration.get("defaultProtocol")}${e.reference}`)}};var bd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n);return r.fetcher.getLocalPath(s,r)}async fetch(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n),o=await r.fetcher.fetch(s,r);return await this.ensureVirtualLink(e,o,r)}getLocatorFilename(e){return jg(e)}async ensureVirtualLink(e,r,i){let n=r.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Wr.makeVirtualPath(s,o,n),l=new Da(a,{baseFs:r.packageFs,pathUtils:x});return ie(N({},r),{packageFs:l})}};var Jg=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Jg.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Jg.protocol)}supportsDescriptor(e,r){return Jg.isVirtualDescriptor(e)}supportsLocator(e,r){return Jg.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},Ew=Jg;Ew.protocol="virtual:";var Qd=class{supports(e){return!!e.reference.startsWith(oi.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let i=this.getWorkspace(e,r).cwd;return{packageFs:new _t(i),prefixPath:Ke.dot,localPath:i}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(oi.protocol.length))}};var Cx={};ft(Cx,{getDefaultGlobalFolder:()=>Ex,getHomeFolder:()=>vd,isFolderInside:()=>Ix});var mx=ge(require("os"));function Ex(){if(process.platform==="win32"){let t=H.toPortablePath(process.env.LOCALAPPDATA||H.join((0,mx.homedir)(),"AppData","Local"));return x.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=H.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(t,"yarn/berry")}return x.resolve(vd(),".yarn/berry")}function vd(){return H.toPortablePath((0,mx.homedir)()||"/usr/local/share")}function Ix(t,e){let r=x.relative(e,t);return r&&!r.startsWith("..")&&!x.isAbsolute(r)}var Wg={};ft(Wg,{builtinModules:()=>yx,getArchitecture:()=>Sd,getArchitectureName:()=>uke,getArchitectureSet:()=>wx});var r4=ge(require("module"));function yx(){return new Set(r4.default.builtinModules||Object.keys(process.binding("natives")))}function cke(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],r=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=ed(e,a=>{let l=a.match(r);if(!l)return ed.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var Iw,yw;function Sd(){return Iw=Iw!=null?Iw:{os:process.platform,cpu:process.arch,libc:cke()}}function uke(t=Sd()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function wx(){let t=Sd();return yw=yw!=null?yw:{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}var gke=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),Bw="yarn_",bx=".yarnrc.yml",Qx="yarn.lock",fke="********",ye;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(ye||(ye={}));var Di=Ye,vx={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:ye.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:ye.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:ye.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:ye.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:ye.STRING,default:null},globalFolder:{description:"Folder where all system-global files are stored",type:ye.ABSOLUTE_PATH,default:Ex()},cacheFolder:{description:"Folder where the cache files must be written",type:ye.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:ye.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:nc},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:ye.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:ye.STRING,default:Qx},installStatePath:{description:"Path of the file where the install state will be persisted",type:ye.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:ye.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:ye.STRING,default:bw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:ye.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:ye.BOOLEAN,default:Ny,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:ye.BOOLEAN,default:VS,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:ye.BOOLEAN,default:ww.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:ye.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:ye.BOOLEAN,default:!ww.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:ye.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:ye.BOOLEAN,default:ww.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:ye.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:ye.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:ye.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:ye.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:ye.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:ye.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:ye.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:ye.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:ye.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ye.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ye.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ye.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:ye.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:ye.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:ye.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:ye.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:ye.MAP,valueDefinition:{description:"",type:ye.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:ye.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ye.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ye.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ye.STRING,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:ye.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:ye.ABSOLUTE_PATH,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:ye.ABSOLUTE_PATH,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:ye.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:ye.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:ye.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:ye.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:ye.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:ye.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:ye.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:ye.STRING,values:Object.values(fo),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:ye.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:ye.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:ye.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:ye.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:ye.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:ye.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:ye.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:ye.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:ye.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:ye.MAP,valueDefinition:{description:"A range",type:ye.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:ye.MAP,valueDefinition:{description:"A semver range",type:ye.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:ye.MAP,valueDefinition:{description:"The peerDependency meta",type:ye.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:ye.BOOLEAN,default:!1}}}}}}}};function kx(t,e,r,i,n){if(i.isArray||i.type===ye.ANY&&Array.isArray(r))return Array.isArray(r)?r.map((s,o)=>Sx(t,`${e}[${o}]`,s,i,n)):String(r).split(/,/).map(s=>Sx(t,e,s,i,n));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return Sx(t,e,r,i,n)}function Sx(t,e,r,i,n){var a;switch(i.type){case ye.ANY:return r;case ye.SHAPE:return hke(t,e,r,i,n);case ye.MAP:return pke(t,e,r,i,n)}if(r===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(r))return r;let o=(()=>{if(i.type===ye.BOOLEAN&&typeof r!="string")return rd(r);if(typeof r!="string")throw new Error(`Expected value (${r}) to be a string`);let l=qS(r,{env:process.env});switch(i.type){case ye.ABSOLUTE_PATH:return x.resolve(n,H.toPortablePath(l));case ye.LOCATOR_LOOSE:return Kc(l,!1);case ye.NUMBER:return parseInt(l);case ye.LOCATOR:return Kc(l);case ye.BOOLEAN:return rd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function hke(t,e,r,i,n){if(typeof r!="object"||Array.isArray(r))throw new Pe(`Object configuration settings "${e}" must be an object`);let s=xx(t,i,{ignoreArrays:!0});if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=`${e}.${o}`;if(!i.properties[o])throw new Pe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,kx(t,l,a,i.properties[o],n))}return s}function pke(t,e,r,i,n){let s=new Map;if(typeof r!="object"||Array.isArray(r))throw new Pe(`Map configuration settings "${e}" must be an object`);if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,kx(t,c,a,u,n))}return s}function xx(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case ye.SHAPE:{if(e.isArray&&!r)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,xx(t,s));return i}break;case ye.MAP:return e.isArray&&!r?[]:new Map;case ye.ABSOLUTE_PATH:return e.default===null?null:t.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(t.projectCwd,i)):x.resolve(t.projectCwd,e.default);default:return e.default}}function Qw(t,e,r){if(e.type===ye.SECRET&&typeof t=="string"&&r.hideSecrets)return fke;if(e.type===ye.ABSOLUTE_PATH&&typeof t=="string"&&r.getNativePaths)return H.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let i=[];for(let n of t)i.push(Qw(n,e,r));return i}if(e.type===ye.MAP&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries())i.set(n,Qw(s,e.valueDefinition,r));return i}if(e.type===ye.SHAPE&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries()){let o=e.properties[n];i.set(n,Qw(s,o,r))}return i}return t}function dke(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(Bw)&&(e=(0,i4.default)(e.slice(Bw.length)),t[e]=r);return t}function bw(){let t=`${Bw}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return bx}var al;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(al||(al={}));var Za=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,i){let n=new Za(e);typeof r!="undefined"&&!(r instanceof Map)&&(n.projectCwd=r),n.importSettings(vx);let s=typeof i!="undefined"?i:r instanceof Map?r:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,r,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=dke();delete a.rcFilename;let l=await Za.findRcFiles(e),c=await Za.findHomeRcFile();if(c){let b=l.find(S=>S.path===c.path);b?b.strict=!1:l.push(ie(N({},c),{strict:!1}))}let u=({ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T})=>({ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T}),g=j=>{var Z=j,{ignoreCwd:b,yarnPath:S,ignorePath:k,lockfileFilename:T}=Z,Y=Tr(Z,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return Y},f=new Za(e);f.importSettings(u(vx)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:b,cwd:S,data:k}of l)f.useWithSource(b,u(k),S,{strict:!1});if(s){let b=f.get("yarnPath"),S=f.get("ignorePath");if(b!==null&&!S)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Za.findProjectCwd(e,h);break;case 1:p=await Za.findProjectCwd(e,null);break;case 2:K.existsSync(x.join(e,"package.json"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(vx));let m=new Map([["@@core",h8]]),y=b=>"default"in b?b.default:b;if(r!==null){for(let T of r.plugins.keys())m.set(T,y(r.modules.get(T)));let b=new Map;for(let T of yx())b.set(T,()=>Ng(T));for(let[T,Y]of r.modules)b.set(T,()=>Y);let S=new Set,k=async(T,Y)=>{let{factory:j,name:Z}=Ng(T);if(S.has(Z))return;let J=new Map(b),re=A=>{if(J.has(A))return J.get(A)();throw new Pe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},ee=await Rg(async()=>y(await j(re)),A=>`${A} (when initializing ${Z}, defined in ${Y})`);b.set(Z,()=>ee),S.add(Z),m.set(Z,ee)};if(a.plugins)for(let T of a.plugins.split(";")){let Y=x.resolve(e,H.toPortablePath(T));await k(Y,"")}for(let{path:T,cwd:Y,data:j}of l)if(!!o&&!!Array.isArray(j.plugins))for(let Z of j.plugins){let J=typeof Z!="string"?Z.path:Z,re=x.resolve(Y,H.toPortablePath(J));await k(re,T)}}for(let[b,S]of m)f.activatePlugin(b,S);f.useWithSource("",g(a),e,{strict:n});for(let{path:b,cwd:S,data:k,strict:T}of l)f.useWithSource(b,g(k),S,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let r=bw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,r);if(K.existsSync(o)){let a=await K.readFilePromise(o,"utf8"),l;try{l=Qi(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Pe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=bw(),r=vd(),i=x.join(r,e);if(K.existsSync(i)){let n=await K.readFilePromise(i,"utf8"),s=Qi(n);return{path:i,cwd:r,data:s}}return null}static async findProjectCwd(e,r){let i=null,n=e,s=null;for(;n!==s;){if(s=n,K.existsSync(x.join(s,"package.json"))&&(i=s),r!==null){if(K.existsSync(x.join(s,r))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,r){let i=bw(),n=x.join(e,i),s=K.existsSync(n)?Qi(await K.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof r=="function"){try{a=r(s)}catch{a=r({})}if(a===s)return}else{a=s;for(let l of Object.keys(r)){let c=s[l],u=r[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await K.changeFilePromise(n,La(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let r=vd();return await Za.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration!="undefined"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,i]of Object.entries(e))if(i!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,i),this.values.set(r,xx(this,i))}}useWithSource(e,r,i,n){try{this.use(e,r,i,n)}catch(s){throw s.message+=` (in ${et(this,e,Ye.PATH)})`,s}}use(e,r,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(r)]){if(typeof r[o]=="undefined"||o==="plugins"||e===""&&gke.has(o))continue;if(o==="rcFilename")throw new Pe(`The rcFilename settings can only be set via ${`${Bw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Pe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===ye.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=kx(this,o,r[o],l,i)}catch(u){throw u.message+=` in ${et(this,e,Ye.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===ye.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new Pe(`Couldn't find a configuration settings named "${e}"`);return Qw(n,s,{hideSecrets:r,getNativePaths:i})}getSubprocessStreams(e,{header:r,prefix:i,report:n}){let s,o,a=K.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${et(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${et(this,"STDERR","red")}`);s=new Bx.PassThrough,s.pipe(l),s.pipe(a),o=new Bx.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof r!="undefined"&&s.write(`${r} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let i of r.resolvers||[])e.push(new i);return new Bd([new Ew,new oi,new dx,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let i of r.fetchers||[])e.push(new i);return new wd([new bd,new Qd,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let i of r.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=Sd(),r=this.get("supportedArchitectures"),i=r.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=r.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=r.get("libc");return s!==null&&(s=qo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:qo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(i,n,{userProvided:s=!1}={})=>{if(!ho(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new At;o.load(n,{yamlCompatibilityMode:!0});let a=Pg(e,i.identHash),l=[];a.push([i.range,l]);let c={status:qi.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(ie(N({},c),{type:yi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(ie(N({},c),{type:yi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(ie(N({},c),{type:yi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,r);for(let[i,n]of this.get("packageExtensions"))r(sl(i,!0),Fy(n),{userProvided:!0})}normalizePackage(e){let r=ud(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Uc(s,o))for(let l of a)switch(l.status===qi.Inactive&&(l.status=qi.Redundant),l.type){case yi.Dependency:typeof r.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,r.dependencies.set(l.descriptor.identHash,l.descriptor));break;case yi.PeerDependency:typeof r.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,r.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case yi.PeerDependencyMeta:{let c=r.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=qi.Active,Ja(r.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:GS(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of r.peerDependenciesMeta.keys()){let o=An(s);r.peerDependencies.has(o.identHash)||r.peerDependencies.set(o.identHash,rr(o,"*"))}for(let s of r.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Vo("types",o),l=Ot(a);r.peerDependencies.has(a.identHash)||r.peerDependenciesMeta.has(l)||(r.peerDependencies.set(a.identHash,rr(a,"*")),r.peerDependenciesMeta.set(l,{optional:!0}))}return r.dependencies=new Map(xn(r.dependencies,([,s])=>Pn(s))),r.peerDependencies=new Map(xn(r.peerDependencies,([,s])=>Pn(s))),r}getLimit(e){return Ja(this.limits,e,()=>(0,n4.default)(this.get(e)))}async triggerHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...r)}}async triggerMultipleHooks(e,r){for(let i of r)await this.triggerHook(e,...i)}async reduceHook(e,r,...i){let n=r;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...r);if(typeof o!="undefined")return o}return null}},we=Za;we.telemetry=null;var ns;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(ns||(ns={}));var vw=class extends ct{constructor({fileName:e,code:r,signal:i}){let n=we.create(x.cwd()),s=et(n,e,Ye.PATH);super($.EXCEPTION,`Child ${s} reported an error`,o=>{Cke(r,i,{configuration:n,report:o})});this.code=Dx(r,i)}},Rx=class extends vw{constructor({fileName:e,code:r,signal:i,stdout:n,stderr:s}){super({fileName:e,code:r,signal:i});this.stdout=n,this.stderr=s}};function jc(t){return t!==null&&typeof t.fd=="number"}var Yc=new Set;function Fx(){}function Nx(){for(let t of Yc)t.kill()}async function $o(t,e,{cwd:r,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":jc(s)&&(c[0]=s),jc(o)&&(c[1]=o),jc(a)&&(c[2]=a);let u=(0,Px.default)(t,e,{cwd:H.fromPortablePath(r),env:ie(N({},i),{PWD:H.fromPortablePath(r)}),stdio:c});Yc.add(u),Yc.size===1&&(process.on("SIGINT",Fx),process.on("SIGTERM",Nx)),!jc(s)&&s!==null&&s.pipe(u.stdin),jc(o)||u.stdout.pipe(o,{end:!1}),jc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))jc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Yc.delete(u),Yc.size===0&&(process.off("SIGINT",Fx),process.off("SIGTERM",Nx)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,m)=>{Yc.delete(u),Yc.size===0&&(process.off("SIGINT",Fx),process.off("SIGTERM",Nx)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:Dx(p,m)}):h(new vw({fileName:t,code:p,signal:m}))})})}async function mke(t,e,{cwd:r,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=H.fromPortablePath(r);typeof i.PWD!="undefined"&&(i=ie(N({},i),{PWD:c}));let u=(0,Px.default)(t,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=we.create(r),m=et(p,t,Ye.PATH);f(new ct($.EXCEPTION,`Process ${m} failed to spawn`,y=>{y.reportError($.EXCEPTION,` ${Jo(p,{label:"Thrown Error",value:go(Ye.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:Dx(h,p),stdout:m,stderr:y}):f(new Rx({fileName:t,code:h,signal:p,stdout:m,stderr:y}))})})}var Eke=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function Dx(t,e){let r=Eke.get(e);return typeof r!="undefined"?128+r:t!=null?t:1}function Cke(t,e,{configuration:r,report:i}){i.reportError($.EXCEPTION,` ${Jo(r,t!==null?{label:"Exit Code",value:go(Ye.NUMBER,t)}:{label:"Exit Signal",value:go(Ye.CODE,e)})}`)}var ir={};ft(ir,{Method:()=>fl,RequestError:()=>j5.RequestError,del:()=>DDe,get:()=>xDe,getNetworkSettings:()=>W5,post:()=>$P,put:()=>PDe,request:()=>Md});var U5=ge(Yw()),H5=ge(require("https")),G5=ge(require("http")),VP=ge(rs()),XP=ge(K5()),qw=ge(require("url"));var j5=ge(Yw()),Y5=new Map,q5=new Map,QDe=new G5.Agent({keepAlive:!0}),vDe=new H5.Agent({keepAlive:!0});function J5(t){let e=new qw.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),{proxy:r}}async function ZP(t){return Ja(q5,t,()=>K.readFilePromise(t).then(e=>(q5.set(t,e),e)))}function SDe({statusCode:t,statusMessage:e},r){let i=et(r,t,Ye.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Lg(r,`${i}${e?` (${e})`:""}`,n)}async function Jw(t,{configuration:e,customErrorMessage:r}){var i,n;try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=r==null?void 0:r(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof U5.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${et(e,"httpTimeout",Ye.SETTING)})`);let a=new ct($.NETWORK_ERROR,o,l=>{s.response&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Response Code",value:go(Ye.NO_HINT,SDe(s.response,e))})}`),s.request&&(l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Method",value:go(Ye.NO_HINT,s.request.options.method)})}`),l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request URL",value:go(Ye.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Redirects",value:go(Ye.NO_HINT,ZS(e,s.request.redirects,Ye.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError($.NETWORK_ERROR,` ${Jo(e,{label:"Request Retry Count",value:go(Ye.NO_HINT,`${et(e,s.request.retryCount,Ye.NUMBER)} (can be increased via ${et(e,"httpRetry",Ye.SETTING)})`)})}`)});throw a.originalError=s,a}}function W5(t,e){let r=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof t=="string"?new qw.URL(t):t;for(let[o,a]of r)if(VP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var fl;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(fl||(fl={}));async function Md(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=fl.GET}){let a=async()=>await kDe(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await r.reduceHook(c=>c.wrapNetworkRequest,a,{target:t,body:e,configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function xDe(t,n){var s=n,{configuration:e,jsonResponse:r}=s,i=Tr(s,["configuration","jsonResponse"]);let o=Ja(Y5,t,()=>Jw(Md(t,null,N({configuration:e},i)),{configuration:e}).then(a=>(Y5.set(t,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),r?JSON.parse(o.toString()):o}async function PDe(t,e,n){var s=n,{customErrorMessage:r}=s,i=Tr(s,["customErrorMessage"]);return(await Jw(Md(t,e,ie(N({},i),{method:fl.PUT})),i)).body}async function $P(t,e,n){var s=n,{customErrorMessage:r}=s,i=Tr(s,["customErrorMessage"]);return(await Jw(Md(t,e,ie(N({},i),{method:fl.POST})),i)).body}async function DDe(t,i){var n=i,{customErrorMessage:e}=n,r=Tr(n,["customErrorMessage"]);return(await Jw(Md(t,null,ie(N({},r),{method:fl.DELETE})),r)).body}async function kDe(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=fl.GET}){let a=typeof t=="string"?new qw.URL(t):t,l=W5(a,{configuration:r});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!VP.default.isMatch(a.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?XP.default.httpOverHttp(J5(l.httpProxy)):QDe,https:l.httpsProxy?XP.default.httpsOverHttp(J5(l.httpsProxy)):vDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=r.get("httpTimeout"),f=r.get("httpRetry"),h=r.get("enableStrictSsl"),p=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:b}=await Promise.resolve().then(()=>ge(Yw())),S=p?await ZP(p):void 0,k=m?await ZP(m):void 0,T=y?await ZP(y):void 0,Y=b.extend(N({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:S,certificate:k,key:T}},u));return r.getLimit("networkConcurrency")(()=>Y(a))}var Zt={};ft(Zt,{PackageManager:()=>hn,detectPackageManager:()=>o6,executePackageAccessibleBinary:()=>u6,executePackageScript:()=>AB,executePackageShellcode:()=>hD,executeWorkspaceAccessibleBinary:()=>VRe,executeWorkspaceLifecycleScript:()=>c6,executeWorkspaceScript:()=>l6,getPackageAccessibleBinaries:()=>lB,getWorkspaceAccessibleBinaries:()=>A6,hasPackageScript:()=>WRe,hasWorkspaceScript:()=>fD,makeScriptEnv:()=>qd,maybeExecuteWorkspaceLifecycleScript:()=>_Re,prepareExternalProject:()=>JRe});var Kd={};ft(Kd,{getLibzipPromise:()=>fn,getLibzipSync:()=>Z5});var X5=ge(_5());var hl=["number","number"],rD;(function(L){L[L.ZIP_ER_OK=0]="ZIP_ER_OK",L[L.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",L[L.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",L[L.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",L[L.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",L[L.ZIP_ER_READ=5]="ZIP_ER_READ",L[L.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",L[L.ZIP_ER_CRC=7]="ZIP_ER_CRC",L[L.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",L[L.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",L[L.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",L[L.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",L[L.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",L[L.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",L[L.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",L[L.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",L[L.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",L[L.ZIP_ER_EOF=17]="ZIP_ER_EOF",L[L.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",L[L.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",L[L.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",L[L.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",L[L.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",L[L.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",L[L.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",L[L.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",L[L.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",L[L.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",L[L.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",L[L.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",L[L.ZIP_ER_TELL=30]="ZIP_ER_TELL",L[L.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(rD||(rD={}));var V5=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:rD,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,open:t.cwrap("zip_open","number",["string","number","number"]),openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...hl,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...hl,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...hl,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...hl,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...hl,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...hl,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...hl,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...hl,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}});var iD=null;function Z5(){return iD===null&&(iD=V5((0,X5.default)())),iD}async function fn(){return Z5()}var Hd={};ft(Hd,{ShellError:()=>Os,execute:()=>tB,globUtils:()=>zw});var c_=ge(BS()),u_=ge(require("os")),ss=ge(require("stream")),g_=ge(require("util"));var Os=class extends Error{constructor(e){super(e);this.name="ShellError"}};var zw={};ft(zw,{fastGlobOptions:()=>t_,isBraceExpansion:()=>r_,isGlobPattern:()=>RDe,match:()=>FDe,micromatchOptions:()=>Vw});var $5=ge(rw()),e_=ge(require("fs")),_w=ge(rs()),Vw={strictBrackets:!0},t_={onlyDirectories:!1,onlyFiles:!1};function RDe(t){if(!_w.default.scan(t,Vw).isGlob)return!1;try{_w.default.parse(t,Vw)}catch{return!1}return!0}function FDe(t,{cwd:e,baseFs:r}){return(0,$5.default)(t,ie(N({},t_),{cwd:H.fromPortablePath(e),fs:XE(e_.default,new Xh(r))}))}function r_(t){return _w.default.scan(t,Vw).isBrace}var i_=ge(MQ()),ta=ge(require("stream")),n_=ge(require("string_decoder")),Fn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(Fn||(Fn={}));var Jc=new Set;function nD(){}function sD(){for(let t of Jc)t.kill()}function s_(t,e,r,i){return n=>{let s=n[0]instanceof ta.Transform?"pipe":n[0],o=n[1]instanceof ta.Transform?"pipe":n[1],a=n[2]instanceof ta.Transform?"pipe":n[2],l=(0,i_.default)(t,e,ie(N({},i),{stdio:[s,o,a]}));return Jc.add(l),Jc.size===1&&(process.on("SIGINT",nD),process.on("SIGTERM",sD)),n[0]instanceof ta.Transform&&n[0].pipe(l.stdin),n[1]instanceof ta.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof ta.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Jc.delete(l),Jc.size===0&&(process.off("SIGINT",nD),process.off("SIGTERM",sD)),u.code){case"ENOENT":n[2].write(`command not found: ${t} -`),c(127);break;case"EACCES":n[2].write(`permission denied: ${t} -`),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("exit",u=>{Jc.delete(l),Jc.size===0&&(process.off("SIGINT",nD),process.off("SIGTERM",sD)),c(u!==null?u:129)})})}}}function o_(t){return e=>{let r=e[0]==="pipe"?new ta.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}var Co=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},a_=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Ud=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:i,stderr:n}){let s=new Ud(null,e);return s.stdin=r,s.stdout=i,s.stderr=n,s}pipeTo(e,r=1){let i=new Ud(this,e),n=new a_;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(r&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(r.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function Xw(t,e){return Ud.start(t,e)}function A_(t,e=null){let r=new ta.PassThrough,i=new n_.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",t(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&t(e!==null?`${e} ${s}`:s)}),r}function l_(t,{prefix:e}){return{stdout:A_(r=>t.stdout.write(`${r} -`),t.stdout.isTTY?e:null),stderr:A_(r=>t.stderr.write(`${r} -`),t.stderr.isTTY?e:null)}}var NDe=(0,g_.promisify)(setTimeout);var zi;(function(r){r[r.Readable=1]="Readable",r[r.Writable=2]="Writable"})(zi||(zi={}));function f_(t,e,r){let i=new ss.PassThrough({autoDestroy:!0});switch(t){case Fn.STDIN:(e&1)==1&&r.stdin.pipe(i,{end:!1}),(e&2)==2&&r.stdin instanceof ss.Writable&&i.pipe(r.stdin,{end:!1});break;case Fn.STDOUT:(e&1)==1&&r.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stdout,{end:!1});break;case Fn.STDERR:(e&1)==1&&r.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stderr,{end:!1});break;default:throw new Os(`Bad file descriptor: "${t}"`)}return i}function Zw(t,e={}){let r=N(N({},t),e);return r.environment=N(N({},t.environment),e.environment),r.variables=N(N({},t.variables),e.variables),r}var LDe=new Map([["cd",async([t=(0,u_.homedir)(),...e],r,i)=>{let n=x.resolve(i.cwd,H.toPortablePath(t));if(!(await r.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new Os(`cd: no such file or directory: ${t}`):o})).isDirectory())throw new Os(`cd: not a directory: ${t}`);return i.cwd=n,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${H.fromPortablePath(r.cwd)} -`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,i)=>i.exitCode=parseInt(t!=null?t:i.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} -`),0)],["sleep",async([t],e,r)=>{if(typeof t=="undefined")throw new Os("sleep: missing operand");let i=Number(t);if(Number.isNaN(i))throw new Os(`sleep: invalid time interval '${t}'`);return await NDe(1e3*i,0)}],["__ysh_run_procedure",async(t,e,r)=>{let i=r.procedures[t[0]];return await Xw(i,{stdin:new Co(r.stdin),stdout:new Co(r.stdout),stderr:new Co(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let i=r.stdin,n=r.stdout,s=r.stderr,o=[],a=[],l=[],c=0;for(;t[c]!=="--";){let g=t[c++],{type:f,fd:h}=JSON.parse(g),p=S=>{switch(h){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=S=>{switch(h){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(t[c++]),b=c+y;for(let S=c;Se.baseFs.createReadStream(x.resolve(r.cwd,H.toPortablePath(t[S]))));break;case"<<<":p(()=>{let k=new ss.PassThrough;return process.nextTick(()=>{k.write(`${t[S]} -`),k.end()}),k});break;case"<&":p(()=>f_(Number(t[S]),1,r));break;case">":case">>":{let k=x.resolve(r.cwd,H.toPortablePath(t[S]));m(k==="/dev/null"?new ss.Writable({autoDestroy:!0,emitClose:!0,write(T,Y,j){setImmediate(j)}}):e.baseFs.createWriteStream(k,f===">>"?{flags:"a"}:void 0))}break;case">&":m(f_(Number(t[S]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new ss.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new ss.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new ss.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await Xw(Gd(t.slice(c+1),e,r),{stdin:new Co(i),stdout:new Co(n),stderr:new Co(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function TDe(t,e,r){let i=[],n=new ss.PassThrough;return n.on("data",s=>i.push(s)),await $w(t,e,Zw(r,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function h_(t,e,r){let i=t.map(async s=>{let o=await nA(s.args,e,r);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function eB(t){return t.match(/[^ \r\n\t]+/g)||[]}async function p_(t,e,r,i,n=i){switch(t.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(t.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=eB(s);for(let a=0;a=0&&st+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)};async function jd(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let i=[];await p_(ie(N({},t),{quoted:!0}),e,r,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?jd({type:"variable",name:i.join(" ")},e,r):jd({type:"number",value:n},e,r)}else return ODe[t.type](await jd(t.left,e,r),await jd(t.right,e,r))}async function nA(t,e,r){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of t){let g=!1;switch(u.type){case"redirection":{let f=await nA(u.args,e,r);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await TDe(f.shell,e,r);if(f.quoted)o(h);else{let p=eB(h);for(let m=0;m0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function Gd(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let i=H.fromPortablePath(r.cwd),n=r.environment;typeof n.PWD!="undefined"&&(n=ie(N({},n),{PWD:i}));let[s,...o]=t;if(s==="command")return s_(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return o_(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=r;r.stdin=l,r.stdout=c,r.stderr=u;try{return await a(o,e,r)}finally{r.stdin=g,r.stdout=f,r.stderr=h}})}function MDe(t,e,r){return i=>{let n=new ss.PassThrough,s=$w(t,e,Zw(r,{stdin:n}));return{stdin:n,promise:s}}}function KDe(t,e,r){return i=>{let n=new ss.PassThrough,s=$w(t,e,r);return{stdin:n,promise:s}}}function d_(t,e,r,i){if(e.length===0)return t;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=N({},i.procedures),i.procedures[n]=t,Gd([...e,"__ysh_run_procedure",n],r,i)}}async function C_(t,e,r){let i=t,n=null,s=null;for(;i;){let o=i.then?N({},r):r,a;switch(i.type){case"command":{let l=await nA(i.args,e,r),c=await h_(i.envs,e,r);a=i.envs.length?Gd(l,e,Zw(o,{environment:c})):Gd(l,e,o)}break;case"subshell":{let l=await nA(i.args,e,r),c=MDe(i.subshell,e,o);a=d_(c,l,e,o)}break;case"group":{let l=await nA(i.args,e,r),c=KDe(i.group,e,o);a=d_(c,l,e,o)}break;case"envs":{let l=await h_(i.envs,e,r);o.environment=N(N({},o.environment),l),a=Gd(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=Xw(a,{stdin:new Co(o.stdin),stdout:new Co(o.stdout),stderr:new Co(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,Fn.STDOUT);break;case"|&":s=s.pipeTo(a,Fn.STDOUT|Fn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function UDe(t,e,r,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return c_.default.hex(a)}if(i){let s=r.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=l_(r,{prefix:l});return r.backgroundJobs.push(C_(t,e,Zw(r,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} -`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${l}, '${o(Xu(t))}' has ended -`)})),0}return await C_(t,e,r)}async function HDe(t,e,r,{background:i=!1}={}){let n,s=a=>{n=a,r.variables["?"]=String(a)},o=async a=>{try{return await UDe(a.chain,e,r,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof Os))throw l;return r.stderr.write(`${l.message} -`),1}};for(s(await o(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":n===0&&s(await o(t.then.line));break;case"||":n!==0&&s(await o(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return n}async function $w(t,e,r){let i=r.backgroundJobs;r.backgroundJobs=[];let n=0;for(let{command:s,type:o}of t){if(n=await HDe(s,e,r,{background:o==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(n)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=i,n}function m_(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Yd(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>Yd(e));case"arithmetic":return oD(t.arithmetic);case"shell":return aD(t.shell);default:return!1}}function Yd(t){switch(t.type){case"redirection":return t.args.some(e=>Yd(e));case"argument":return t.segments.some(e=>m_(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function oD(t){switch(t.type){case"variable":return m_(t);case"number":return!1;default:return oD(t.left)||oD(t.right)}}function aD(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let i;switch(r.type){case"subshell":i=aD(r.subshell);break;case"command":i=r.envs.some(n=>n.args.some(s=>Yd(s)))||r.args.some(n=>Yd(n));break}if(i)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function tB(t,e=[],{baseFs:r=new ar,builtins:i={},cwd:n=H.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=zw}={}){let g={};for(let[p,m]of Object.entries(s))typeof m!="undefined"&&(g[p]=m);let f=new Map(LDe);for(let[p,m]of Object.entries(i))f.set(p,m);o===null&&(o=new ss.PassThrough,o.end());let h=$E(t,u);if(!aD(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let m=p.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await $w(h,{args:e,baseFs:r,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var n6=ge(rB()),s6=ge(lg()),Wc=ge(require("stream"));var $_=ge(Z_()),sB=ge(pc());var e6=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],t6=80,KRe=new Set([$.FETCH_NOT_CACHED,$.UNUSED_CACHE_ENTRY]),URe=5,oB=sB.default.GITHUB_ACTIONS?{start:t=>`::group::${t} -`,end:t=>`::endgroup:: -`}:sB.default.TRAVIS?{start:t=>`travis_fold:start:${t} -`,end:t=>`travis_fold:end:${t} -`}:sB.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${t} -`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r`}:null,r6=new Date,HRe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,GRe=t=>t,aB=GRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),jRe=HRe&&Object.keys(aB).find(t=>{let e=aB[t];return!(e.date&&(e.date[0]!==r6.getDate()||e.date[1]!==r6.getMonth()+1))})||"default";function i6(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let n=qA(t===null?0:t);return!r&&t===null?et(e,n,"grey"):n}function gD(t,{configuration:e,json:r}){let i=i6(t,{configuration:e,json:r});if(!i||t===null||t===$.UNNAMED)return i;let n=$[t],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Lg(e,i,s)}var Je=class extends Ji{constructor({configuration:e,stdout:r,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=URe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(sd(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...KRe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=r,e.get("enableProgressBars")&&!i&&r.isTTY&&r.columns>22){let u=e.get("progressBarStyle")||jRe;if(!Object.prototype.hasOwnProperty.call(aB,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=aB[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(r.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}}static async start(e,r){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning($.UNNAMED,a)};try{await r(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,r){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof r!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo($.FETCH_NOT_CACHED,r)}startSectionSync({reportHeader:e,reportFooter:r,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(r==null||r(a-o))}}async startSectionPromise({reportHeader:e,reportFooter:r,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return await n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(r==null||r(a-o))}}startTimerImpl(e,r,i){let n=typeof r=="function"?{}:r;return{cb:typeof r=="function"?r:i,reportHeader:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,oB!==null&&!this.json&&this.includeInfos&&this.stdout.write(oB.start(e))},reportFooter:o=>{this.indent-=1,oB!==null&&!this.json&&this.includeInfos&&this.stdout.write(oB.end(e)),this.configuration.get("enableTimers")&&o>200?this.reportInfo(null,`\u2514 Completed in ${et(this.configuration,o,Ye.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:n.skipIfEmpty}}startTimerSync(e,r,i){let o=this.startTimerImpl(e,r,i),{cb:n}=o,s=Tr(o,["cb"]);return this.startSectionSync(s,n)}async startTimerPromise(e,r,i){let o=this.startTimerImpl(e,r,i),{cb:n}=o,s=Tr(o,["cb"]);return this.startSectionPromise(s,n)}async startCacheReport(e){let r=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{r!==null&&this.reportCacheChanges(r)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,r){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${et(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${r}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,r){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${et(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${r}`)}reportError(e,r){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${et(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${r}`,{truncate:!1})}reportProgress(e){if(this.progressStyle===null)return ie(N({},Promise.resolve()),{stop:()=>{}});if(e.hasProgress&&e.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let r=!1,i=Promise.resolve().then(async()=>{let s={progress:e.hasProgress?0:void 0,title:e.hasTitle?"":void 0};this.progress.set(e,{definition:s,lastScaledSize:e.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:o,title:a}of e)r||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{r||(r=!0,this.progress.delete(e),this.refreshProgress({delta:1}))};return ie(N({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let r=et(this.configuration,Date.now()-this.startTime,Ye.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${r}`:e;this.errorCount>0?this.reportError($.UNNAMED,i):this.warningCount>0?this.reportWarning($.UNNAMED,i):this.reportInfo($.UNNAMED,i)}writeLine(e,{truncate:r}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:r})} -`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:r}={}){this.forgettableLines=[],this.writeLine(e,{truncate:r})}writeLines(e,{truncate:r}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:r})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:r}){let i=this.cacheHitCount-e,n=this.cacheMissCount-r;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${Bt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${Bt(this.configuration,this.lastCacheMiss)})`),this.reportInfo($.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let r of e)r.committed=!0,r.action()}clearProgress({delta:e=0,clear:r=!1}){this.progressStyle!==null&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||r)&&this.stdout.write(""))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>t6&&(this.progressFrame=(this.progressFrame+1)%e6.length,this.progressTime=e);let r=e6[this.progressFrame];for(let i of this.progress.values()){let n="";if(typeof i.lastScaledSize!="undefined"){let l=this.progressStyle.chars[0].repeat(i.lastScaledSize),c=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize);n=` ${l}${c}`}let s=this.formatName(null),o=s?`${s}: `:"",a=i.definition.title?` ${i.definition.title}`:"";this.stdout.write(`${et(this.configuration,"\u27A4","blueBright")} ${o}${r}${n}${a} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},t6)}refreshProgress({delta:e=0,force:r=!1}={}){let i=!1,n=!1;if(r||this.progress.size===0)i=!0;else for(let s of this.progress.values()){let o=typeof s.definition.progress!="undefined"?Math.trunc(this.progressMaxScaledSize*s.definition.progress):void 0,a=s.lastScaledSize;s.lastScaledSize=o;let l=s.lastTitle;if(s.lastTitle=s.definition.title,o!==a||(n=l!==s.definition.title)){i=!0;break}}i&&(this.clearProgress({delta:e,clear:n}),this.writeProgress())}truncate(e,{truncate:r}={}){return this.progressStyle===null&&(r=!1),typeof r=="undefined"&&(r=this.configuration.get("preferTruncatedLines")),r&&(e=(0,$_.default)(e,0,this.stdout.columns-1)),e}formatName(e){return i6(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return gD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Kr="3.2.1";var hn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(hn||(hn={}));async function sA(t,e,r,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await K.writeFilePromise(x.format({dir:t,name:e,ext:".cmd"}),n)}await K.writeFilePromise(x.join(t,e),`#!/bin/sh -exec "${r}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function o6(t){let e=await At.tryFind(t);if(e==null?void 0:e.packageManager){let i=fw(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?hn.Yarn1:hn.Yarn2,reason:n};case"npm":return{packageManager:hn.Npm,reason:n};case"pnpm":return{packageManager:hn.Pnpm,reason:n}}}}let r;try{r=await K.readFilePromise(x.join(t,Pt.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:hn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:hn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:K.existsSync(x.join(t,"package-lock.json"))?{packageManager:hn.Npm,reason:`found npm's "package-lock.json" lockfile`}:K.existsSync(x.join(t,"pnpm-lock.yaml"))?{packageManager:hn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function qd({project:t,locator:e,binFolder:r,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=H.fromPortablePath(r);n.BERRY_BIN_FOLDER=H.fromPortablePath(s);let o=process.env.COREPACK_ROOT?H.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([sA(r,"node",process.execPath),...Kr!==null?[sA(r,"run",process.execPath,[o,"run"]),sA(r,"yarn",process.execPath,[o]),sA(r,"yarnpkg",process.execPath,[o]),sA(r,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=H.fromPortablePath(t.configuration.startingCwd),n.PROJECT_CWD=H.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${s}${H.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${H.sep}yarn`,n.npm_node_execpath=`${s}${H.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let u=t.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=t.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=Ot(e),n.npm_package_version=g}let a=Kr!==null?`yarn/${Kr}`:`yarn/${Ng("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.version} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),t&&await t.configuration.triggerHook(u=>u.setupScriptEnvironment,t,n,async(u,g,f)=>await sA(r,Jr(u),g,f)),n}var YRe=2,qRe=(0,s6.default)(YRe);async function JRe(t,e,{configuration:r,report:i,workspace:n=null,locator:s=null}){await qRe(async()=>{await K.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=r.getSubprocessStreams(a,{prefix:H.fromPortablePath(t),report:i}),g=s&&Xo(s)?fd(s):s,f=g?Ds(g):"an external project";c.write(`Packing ${f} from sources -`);let h=await o6(t),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} - -`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn - -`),p=hn.Yarn2),await K.mktempPromise(async m=>{let y=await qd({binFolder:m}),S=new Map([[hn.Yarn1,async()=>{let T=n!==null?["workspace",n]:[],Y=await $o("yarn",["set","version","classic","--only-if-needed"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(Y.code!==0)return Y.code;await K.appendFilePromise(x.join(t,".npmignore"),`/.yarn -`),c.write(` -`),delete y.NODE_ENV;let j=await $o("yarn",["install"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(j.code!==0)return j.code;c.write(` -`);let Z=await $o("yarn",[...T,"pack","--filename",H.fromPortablePath(e)],{cwd:t,env:y,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],[hn.Yarn2,async()=>{let T=n!==null?["workspace",n]:[];y.YARN_ENABLE_INLINE_BUILDS="1";let Y=x.join(t,Pt.lockfile);await K.existsPromise(Y)||await K.writeFilePromise(Y,"");let j=await $o("yarn",[...T,"pack","--install-if-needed","--filename",H.fromPortablePath(e)],{cwd:t,env:y,stdin:l,stdout:c,stderr:u});return j.code!==0?j.code:0}],[hn.Npm,async()=>{if(n!==null){let A=new Wc.PassThrough,oe=Fg(A);A.pipe(c,{end:!1});let le=await $o("npm",["--version"],{cwd:t,env:y,stdin:l,stdout:A,stderr:u,end:ns.Never});if(A.end(),le.code!==0)return c.end(),u.end(),le.code;let X=(await oe).toString().trim();if(!Uc(X,">=7.x")){let O=Vo(null,"npm"),L=rr(O,X),pe=rr(O,">=7.x");throw new Error(`Workspaces aren't supported by ${sr(r,L)}; please upgrade to ${sr(r,pe)} (npm has been detected as the primary package manager for ${et(r,t,Ye.PATH)})`)}}let T=n!==null?["--workspace",n]:[];delete y.npm_config_user_agent,delete y.npm_config_production,delete y.NPM_CONFIG_PRODUCTION,delete y.NODE_ENV;let Y=await $o("npm",["install"],{cwd:t,env:y,stdin:l,stdout:c,stderr:u,end:ns.ErrorCode});if(Y.code!==0)return Y.code;let j=new Wc.PassThrough,Z=Fg(j);j.pipe(c);let J=await $o("npm",["pack","--silent",...T],{cwd:t,env:y,stdin:l,stdout:j,stderr:u});if(J.code!==0)return J.code;let re=(await Z).toString().trim().replace(/^.*\n/s,""),ee=x.resolve(t,H.toPortablePath(re));return await K.renamePromise(ee,e),0}]]).get(p);if(typeof S=="undefined")throw new Error("Assertion failed: Unsupported workflow");let k=await S();if(!(k===0||typeof k=="undefined"))throw K.detachTemp(o),new ct($.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${k}, logs can be found here: ${et(r,a,Ye.PATH)})`)})})})}async function WRe(t,e,{project:r}){let i=r.tryWorkspaceByLocator(t);if(i!==null)return fD(i,e);let n=r.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${Bt(r.configuration,t)} not found in the project`);return await Es.openPromise(async s=>{let o=r.configuration,a=r.configuration.getLinkers(),l={project:r,report:new Je({stdout:new Wc.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${Bt(r.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new _t(u,{baseFs:s});return(await At.find(Ke.dot,{baseFs:g})).scripts.has(e)},{libzip:await fn()})}async function AB(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await a6(t,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await tB(f,r,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,h,n,t,e,{script:f,args:r,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function hD(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{env:c,cwd:u}=await a6(t,{project:n,binFolder:l,cwd:i});return await tB(e,r,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function zRe(t,{binFolder:e,cwd:r,lifecycleScript:i}){let n=await qd({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await A6(t),([s,[,o]])=>sA(e,Jr(s),process.execPath,[o]))),typeof r=="undefined"&&(r=x.dirname(await K.realpathPromise(x.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:n,cwd:r}}async function a6(t,{project:e,binFolder:r,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(t);if(s!==null)return zRe(s,{binFolder:r,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(t.locatorHash);if(!o)throw new Error(`Package for ${Bt(e.configuration,t)} not found in the project`);return await Es.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Je({stdout:new Wc.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Bt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await qd({project:e,locator:t,binFolder:r,lifecycleScript:n});await Promise.all(Array.from(await lB(t,{project:e}),([y,[,b]])=>sA(r,Jr(y),process.execPath,[b])));let h=await g.findPackageLocation(o,u),p=new _t(h,{baseFs:a}),m=await At.find(Ke.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:m,binFolder:r,env:f,cwd:i}},{libzip:await fn()})}async function l6(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o}){return await AB(t.anchoredLocator,e,r,{cwd:i,project:t.project,stdin:n,stdout:s,stderr:o})}function fD(t,e){return t.manifest.scripts.has(e)}async function c6(t,e,{cwd:r,report:i}){let{configuration:n}=t.project,s=null;await K.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${H.fromPortablePath(t.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Bt(n,t.anchoredLocator),header:l});i.reportInfo($.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await l6(t,e,[],{cwd:r,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw K.detachTemp(o),new ct($.LIFECYCLE_SCRIPT,`${(0,n6.default)(e)} script failed (exit code ${et(n,g,Ye.NUMBER)}, logs can be found here: ${et(n,a,Ye.PATH)}); run ${et(n,`yarn ${e}`,Ye.CODE)} to investigate`)})}async function _Re(t,e,r){fD(t,e)&&await c6(t,e,r)}async function lB(t,{project:e}){let r=e.configuration,i=new Map,n=e.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${Bt(r,t)} not found in the project`);let s=new Wc.Writable,o=r.getLinkers(),a={project:e,report:new Je({configuration:r,stdout:s})},l=new Set([t.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${sr(r,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return qo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return qo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return qo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===qo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,H.fromPortablePath(x.resolve(f,p))])}return i}async function A6(t){return await lB(t.anchoredLocator,{project:t.project})}async function u6(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await lB(t,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Bt(n.configuration,t)}`);return await K.mktempPromise(async g=>{let[,f]=u,h=await qd({project:n,locator:t,binFolder:g});await Promise.all(Array.from(c,([m,[,y]])=>sA(h.BERRY_BIN_FOLDER,Jr(m),process.execPath,[y])));let p;try{p=await $o(process.execPath,[...l,f,...r],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await K.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function VRe(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await u6(t.anchoredLocator,e,r,{project:t.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var wi={};ft(wi,{convertToZip:()=>oLe,extractArchiveTo:()=>ALe,makeArchiveFromDirectory:()=>sLe});var i7=ge(require("stream")),n7=ge(X9());var Z9=ge(require("os")),$9=ge(lg()),e7=ge(require("worker_threads")),vl=Symbol("kTaskInfo"),SR=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,$9.default)(Math.max(1,(0,Z9.cpus)().length));this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let r=this.workers.pop();r?r.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new e7.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[vl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[vl].resolve(r),e[vl]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{var i;(i=e[vl])==null||i.reject(r),e[vl]=null}),e.on("exit",r=>{var i;r!==0&&((i=e[vl])==null||i.reject(new Error(`Worker exited with code ${r}`))),e[vl]=null}),e}run(e){return this.limit(()=>{var i;let r=(i=this.workers.pop())!=null?i:this.createWorker();return r.ref(),new Promise((n,s)=>{r[vl]={resolve:n,reject:s},r.postMessage(e)})})}};var s7=ge(r7());async function sLe(t,{baseFs:e=new ar,prefixPath:r=Ke.root,compressionLevel:i,inMemory:n=!1}={}){let s=await fn(),o;if(n)o=new Ai(null,{libzip:s,level:i});else{let l=await K.mktempPromise(),c=x.join(l,"archive.zip");o=new Ai(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Ke.root,r);return await o.copyPromise(a,t,{baseFs:e,stableTime:!0,stableSort:!0}),o}var o7;async function oLe(t,e){let r=await K.mktempPromise(),i=x.join(r,"archive.zip");return o7||(o7=new SR((0,s7.getContent)())),await o7.run({tmpFile:i,tgz:t,opts:e}),new Ai(i,{libzip:await fn(),level:e.compressionLevel})}async function*aLe(t){let e=new n7.default.Parse,r=new i7.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{r.write(i)}),e.on("error",i=>{r.destroy(i)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let i of r){let n=i;yield n,n.resume()}}async function ALe(t,e,{stripComponents:r=0,prefixPath:i=Ke.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=r)}for await(let a of aLe(t)){if(n(a))continue;let l=x.normalize(H.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let c=l.slice(r).join("/"),u=x.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,Dr.SAFE_TIME,Dr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.writeFileSync(u,await Fg(a),{mode:g}),e.utimesSync(u,Dr.SAFE_TIME,Dr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,Dr.SAFE_TIME,Dr.SAFE_TIME);break}}return e}var As={};ft(As,{emitList:()=>lLe,emitTree:()=>g7,treeNodeToJson:()=>u7,treeNodeToTreeify:()=>c7});var l7=ge(A7());function c7(t,{configuration:e}){let r={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Ty(e,l,Dc.BOLD)),typeof c!="undefined"&&g.push(et(e,c[0],c[1])),g.length===0&&g.push(Ty(e,`${a}`,Dc.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof t.children=="undefined")throw new Error("The root node must only contain children");return i(t.children,r),r}function u7(t){let e=r=>{var s;if(typeof r.children=="undefined"){if(typeof r.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Rc(r.value[0],r.value[1])}let i=Array.isArray(r.children)?r.children.entries():Object.entries((s=r.children)!=null?s:{}),n=Array.isArray(r.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof r.value=="undefined"?n:{value:Rc(r.value[0],r.value[1]),children:n}};return e(t)}function lLe(t,{configuration:e,stdout:r,json:i}){let n=t.map(s=>({value:s}));g7({children:n},{configuration:e,stdout:r,json:i})}function g7(t,{configuration:e,stdout:r,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(t.children)?t.children.values():Object.values((o=t.children)!=null?o:{});for(let l of a)r.write(`${JSON.stringify(u7(l))} -`);return}let s=(0,l7.asTree)(c7(t,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(s)}var f7=ge(require("crypto")),PR=ge(require("fs"));var cLe=8,Nt=class{constructor(e,{configuration:r,immutable:i=r.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,f7.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=i,this.check=n;let s=r.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=r.get("compressionLevel"),a=o!==nc?`c${o}`:"";this.cacheKey=[cLe,a].join("")}}static async find(e,{immutable:r,check:i}={}){let n=new Nt(e.get("cacheFolder"),{configuration:e,immutable:r,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${jg(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let n=uLe(r).slice(0,10);return`${jg(e)}-${n}.zip`}getLocatorPath(e,r,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):r===null||DR(r)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?x.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await K.existsPromise(this.cwd))throw new ct($.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await K.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await K.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await K.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=Tr(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new ar,g=()=>{let oe=new Ai(null,{libzip:Y}),le=x.join(Ke.root,gx(e));return oe.mkdirSync(le,{recursive:!0}),oe.writeJsonSync(x.join(le,Pt.manifest),{name:Ot(e),mocked:!0}),oe},f=async(oe,le=null)=>{var O;if(le===null&&((O=o.unstablePackages)==null?void 0:O.has(e.locatorHash)))return null;let X=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await lw(oe)}`:r;if(le!==null){let L=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await lw(le)}`:r;if(X!==L)throw new ct($.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&X!==r){let L;switch(this.check?L="throw":DR(r)!==DR(X)?L="update":L=this.configuration.get("checksumBehavior"),L){case"ignore":return r;case"update":return X;default:case"throw":throw new ct($.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return X},h=async oe=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Bt(this.configuration,e)}`);let le=await s(),X=le.getRealPath();return le.saveAndClose(),await K.chmodPromise(X,420),await f(oe,X)},p=async()=>{if(c===null||!await K.existsPromise(c)){let oe=await s(),le=oe.getRealPath();return oe.saveAndClose(),{source:"loader",path:le}}return{source:"mirror",path:c}},m=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Bt(this.configuration,e)}`);if(this.immutable)throw new ct($.IMMUTABLE_CACHE,`Cache entry required but missing for ${Bt(this.configuration,e)}`);let{path:oe,source:le}=await p(),X=await f(oe),O=this.getLocatorPath(e,X,o);if(!O)throw new Error("Assertion failed: Expected the cache path to be available");let L=[];le!=="mirror"&&c!==null&&L.push(async()=>{let Ce=`${c}${this.cacheId}`;await K.copyFilePromise(oe,Ce,PR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Ce,420),await K.renamePromise(Ce,c)}),(!o.mirrorWriteOnly||c===null)&&L.push(async()=>{let Ce=`${O}${this.cacheId}`;await K.copyFilePromise(oe,Ce,PR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Ce,420),await K.renamePromise(Ce,O)});let pe=o.mirrorWriteOnly&&c!=null?c:O;return await Promise.all(L.map(Ce=>Ce())),[!1,pe,X]},y=async()=>{let le=(async()=>{var Oe;let X=this.getLocatorPath(e,r,o),O=X!==null?await u.existsPromise(X):!1,L=!!((Oe=o.mockedPackages)==null?void 0:Oe.has(e.locatorHash))&&(!this.check||!O),pe=L||O,Ce=pe?i:n;if(Ce&&Ce(),pe){let te=null,se=X;return L||(te=this.check?await h(se):await f(se)),[L,se,te]}else return m()})();this.mutexes.set(e.locatorHash,le);try{return await le}finally{this.mutexes.delete(e.locatorHash)}};for(let oe;oe=this.mutexes.get(e.locatorHash);)await oe;let[b,S,k]=await y();this.markedFiles.add(S);let T,Y=await fn(),j=b?()=>g():()=>new Ai(S,{baseFs:u,libzip:Y,readOnly:!0}),Z=new Vh(()=>YS(()=>T=j(),oe=>`Failed to open the cache entry for ${Bt(this.configuration,e)}: ${oe}`),x),J=new Da(S,{baseFs:Z,pathUtils:x}),re=()=>{T==null||T.discardAndClose()},ee=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:k;return[J,re,ee]}};function DR(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function uLe(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var ls;(function(r){r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE"})(ls||(ls={}));var gA=class extends Ji{constructor({configuration:e,stdout:r,suggestInstall:i=!0}){super();this.errorCount=0;sd(this,{configuration:e}),this.configuration=e,this.stdout=r,this.suggestInstall=i}static async start(e,r){let i=new this(e);try{await r(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){this.errorCount+=1,this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${r} -`)}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return ie(N({},r),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${et(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(e){return gD(e,{configuration:this.configuration,json:!1})}};var p0=ge(require("crypto")),n$=ge(V7()),d0=ge(r$()),s$=ge(lg()),o$=ge(ri()),sF=ge(require("util")),oF=ge(require("v8")),aF=ge(require("zlib"));var WKe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,i)=>`${r}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>hw({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],rF=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!K.existsSync(i))return;let n=await K.readFilePromise(i,"utf8"),s=Qi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=dd(a);if(!l){r.reportWarning($.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}ho(l.range)&&(l=rr(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of WKe){let m=u.match(h);if(m){g=p(c,...m);break}}if(!g){r.reportWarning($.YARN_IMPORT_FAILED,`${sr(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=Gg(l.range),p=dd(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,cn(f,g))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(ax(n),r,i)}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var iF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(gw(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){let n=i.project.originalPackages.get(gw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var nF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.resolver.bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,i){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new ct($.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var pi=class extends Ji{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return ie(N({},r),{stop:i})}reportJson(e){}async finalize(){}};var i$=ge(sx());var bC=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=r,this.cwd=e}async setup(){var s;this.manifest=(s=await At.tryFind(this.cwd))!=null?s:new At,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||Ke.dot;let e=this.manifest.name?this.manifest.name:Vo(null,`${this.computeCandidateName()}-${ln(this.relativeCwd).substring(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=cn(e,r),this.anchoredDescriptor=rr(this.locator,`${oi.protocol}${this.relativeCwd}`),this.anchoredLocator=cn(this.locator,`${oi.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o),n=await(0,i$.default)(i,{cwd:H.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let o of n){let a=x.resolve(this.cwd,H.toPortablePath(o));K.existsSync(x.join(a,"package.json"))&&this.workspacesCwds.add(a)}}accepts(e){var o;let r=e.indexOf(":"),i=r!==-1?e.slice(0,r+1):null,n=r!==-1?e.slice(r+1):e;if(i===oi.protocol&&x.normalize(n)===this.relativeCwd||i===oi.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=ho(n);return s?i===oi.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${x.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=At.hardDependencies}={}){let r=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||r.has(a)||(r.add(a),i(a))}};return i(this),r}getRecursiveWorkspaceDependents({dependencies:e=At.hardDependencies}={}){let r=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&pd(c.anchoredLocator,n.anchoredLocator)}))&&!r.has(s)&&(r.add(s),i(s))};return i(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let i=this.project.workspacesByCwd.get(r);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=x.join(this.cwd,At.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await K.changeFilePromise(r,i,{automaticNewlines:!0}),this.manifest.raw=e}};var a$=6,zKe=1,_Ke=/ *, */g,A$=/\/$/,VKe=32,XKe=(0,sF.promisify)(aF.default.gzip),ZKe=(0,sF.promisify)(aF.default.gunzip),di;(function(r){r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build"})(di||(di={}));var AF={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},l$=t=>ln(`${zKe}`,t),ze=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var p,m,y;if(!e.projectCwd)throw new Pe(`No project found in ${r}`);let i=e.projectCwd,n=r,s=null;for(;s!==e.projectCwd;){if(s=n,K.existsSync(x.join(s,Pt.manifest))){i=s;break}n=x.dirname(s)}let o=new ze(e.projectCwd,{configuration:e});(p=we.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=we.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=we.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((b,S)=>b+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=et(e,o.cwd,Ye.PATH),u=et(e,x.relative(o.cwd,i),Ye.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Pe(`The nearest package directory (${et(e,i,Ye.PATH)}) doesn't seem to be part of the project declared in ${et(e,o.cwd,Ye.PATH)}. - -${[g,f,h].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(K.existsSync(e)){let n=await K.readFilePromise(e,"utf8");this.lockFileChecksum=l$(n);let s=Qi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let r=e;e=[];for(let i of r){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let r=new bC(e,{project:this});await r.setup();let i=this.workspacesByIdent.get(r.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${gi(this.configuration,r.locator)}: ${H.fromPortablePath(e)} conflicts with ${H.fromPortablePath(i.cwd)}`);return this.workspaces.push(r),this.workspacesByCwd.set(e,r),this.workspacesByIdent.set(r.locator.identHash,r),r}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||r&&r.cwd.length>=i.cwd.length||(r=i);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r=="undefined"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${gi(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){let r=this.tryWorkspaceByIdent(e);return r===null||(nl(e)&&(e=gd(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${sr(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Xo(e)&&(e=fd(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${Bt(this.configuration,e)})`);return r}refreshWorkspaceDependencies(){for(let e of this.workspaces){let r=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!r)throw new Error(`Assertion failed: Expected workspace ${md(this.configuration,e)} (${et(this.configuration,x.join(e.cwd,Pt.manifest),Ye.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(r.dependencies)}}forgetResolution(e){let r=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);r(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&r(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let r of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(r,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(r)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,i]of e.dependencies)nl(i)&&e.dependencies.set(r,gd(i))}getDependencyMeta(e,r){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),r===null||!o$.default.valid(r))return i;for(let[a,l]of s)a!==null&&a===r&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:r=!1}={}){let i=new pi,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(r&&(await o.findPackageLocation(a,s)).replace(A$,"")!==e.replace(A$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),i=new rF(r);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new nF(r)]:[i,r],s=new Bd([new iF(r),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],b=wx(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ji.progressViaTitle(),async re=>{let ee=async O=>{let L=await Rg(async()=>await s.resolve(O,a),Oe=>`${Bt(this.configuration,O)}: ${Oe}`);if(!pd(O,L))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Bt(this.configuration,O)} to ${Bt(this.configuration,L)})`);g.set(L.locatorHash,L);let pe=this.configuration.normalizePackage(L);for(let[Oe,te]of pe.dependencies){let se=await this.configuration.reduceHook(he=>he.reduceDependency,te,this,pe,te,{resolver:s,resolveOptions:a});if(!hd(te,se))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let be=s.bindDescriptor(se,O,a);pe.dependencies.set(Oe,be)}let Ce=uo([...pe.dependencies.values()].map(Oe=>X(Oe)));return y.push(Ce),Ce.catch(()=>{}),c.set(pe.locatorHash,pe),pe},A=async O=>{let L=f.get(O.locatorHash);if(typeof L!="undefined")return L;let pe=Promise.resolve().then(()=>ee(O));return f.set(O.locatorHash,pe),pe},oe=async(O,L)=>{let pe=await X(L);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,pe.locatorHash),pe},le=async O=>{re.setTitle(sr(this.configuration,O));let L=this.resolutionAliases.get(O.descriptorHash);if(typeof L!="undefined")return oe(O,this.storedDescriptors.get(L));let pe=s.getResolutionDependencies(O,a),Ce=new Map(await uo(pe.map(async se=>{let be=s.bindDescriptor(se,p,a),he=await X(be);return m.add(he.locatorHash),[se.descriptorHash,he]}))),te=(await Rg(async()=>await s.getCandidates(O,Ce,a),se=>`${sr(this.configuration,O)}: ${se}`))[0];if(typeof te=="undefined")throw new Error(`${sr(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,te.locatorHash),A(te)},X=O=>{let L=h.get(O.descriptorHash);if(typeof L!="undefined")return L;l.set(O.descriptorHash,O);let pe=Promise.resolve().then(()=>le(O));return h.set(O.descriptorHash,pe),pe};for(let O of this.workspaces){let L=O.anchoredDescriptor;y.push(X(L))}for(;y.length>0;){let O=[...y];y.length=0,await uo(O)}});let k=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),Y=new Set,j=new Map;$Ke({project:this,report:e.report,accessibleLocators:Y,volatileDescriptors:k,optionalBuilds:T,peerRequirements:j,allDescriptors:l,allResolutions:u,allPackages:c});for(let re of m)T.delete(re);for(let re of k)l.delete(re),u.delete(re);let Z=new Set,J=new Set;for(let re of c.values())re.conditions!=null&&(!T.has(re.locatorHash)||(dw(re,S)||(dw(re,b)&&e.report.reportWarningOnce($.GHOST_ARCHITECTURE,`${Bt(this.configuration,re)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${et(this.configuration,"supportedArchitectures",Di.SETTING)} setting`),J.add(re.locatorHash)),Z.add(re.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=Y,this.conditionalLocators=Z,this.disabledLocators=J,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=j,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:r,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,cacheOptions:s},l=Array.from(new Set(xn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Ds(h)}])));n===di.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Ji.progressViaCounter(l.length);r.reportProgress(u);let g=(0,s$.default)(VKe);if(await r.startCacheReport(async()=>{await uo(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(Xo(h))return;let p;try{p=await o.fetch(h,a)}catch(m){m.message=`${Bt(this.configuration,h)}: ${m.message}`,r.reportExceptionOnce(m),c=m;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:r,fetcher:i,mode:n}){var A,oe,le;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:r},u=new Map(l.map(X=>{let O=X.makeInstaller(c),L=O.getCustomDataKey(),pe=this.installersCustomData.get(L);return typeof pe!="undefined"&&O.attachCustomData(pe),[X,O]})),g=new Map,f=new Map,h=new Map,p=new Map(await uo([...this.accessibleLocators].map(async X=>{let O=this.storedPackages.get(X);if(!O)throw new Error("Assertion failed: The locator should have been registered");return[X,await o.fetch(O,a)]}))),m=[];for(let X of this.accessibleLocators){let O=this.storedPackages.get(X);if(typeof O=="undefined")throw new Error("Assertion failed: The locator should have been registered");let L=p.get(O.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let pe=[],Ce=te=>{pe.push(te)},Oe=this.tryWorkspaceByLocator(O);if(Oe!==null){let te=[],{scripts:se}=Oe.manifest;for(let he of["preinstall","install","postinstall"])se.has(he)&&te.push([ls.SCRIPT,he]);try{for(let[he,Fe]of u)if(he.supportsPackage(O,c)&&(await Fe.installPackage(O,L,{holdFetchResult:Ce})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{pe.length===0?(A=L.releaseFs)==null||A.call(L):m.push(uo(pe).catch(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}let be=x.join(L.packageFs.getRealPath(),L.prefixPath);f.set(O.locatorHash,be),!Xo(O)&&te.length>0&&h.set(O.locatorHash,{directives:te,buildLocations:[be]})}else{let te=l.find(he=>he.supportsPackage(O,c));if(!te)throw new ct($.LINKER_NOT_FOUND,`${Bt(this.configuration,O)} isn't supported by any available linker`);let se=u.get(te);if(!se)throw new Error("Assertion failed: The installer should have been registered");let be;try{be=await se.installPackage(O,L,{holdFetchResult:Ce})}finally{pe.length===0?(oe=L.releaseFs)==null||oe.call(L):m.push(uo(pe).then(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}g.set(O.locatorHash,te),f.set(O.locatorHash,be.packageLocation),be.buildDirective&&be.buildDirective.length>0&&be.packageLocation&&h.set(O.locatorHash,{directives:be.buildDirective,buildLocations:[be.packageLocation]})}}let y=new Map;for(let X of this.accessibleLocators){let O=this.storedPackages.get(X);if(!O)throw new Error("Assertion failed: The locator should have been registered");let L=this.tryWorkspaceByLocator(O)!==null,pe=async(Ce,Oe)=>{let te=f.get(O.locatorHash);if(typeof te=="undefined")throw new Error(`Assertion failed: The package (${Bt(this.configuration,O)}) should have been registered`);let se=[];for(let be of O.dependencies.values()){let he=this.storedResolutions.get(be.descriptorHash);if(typeof he=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,be)}, from ${Bt(this.configuration,O)})should have been registered`);let Fe=this.storedPackages.get(he);if(typeof Fe=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);let Ue=this.tryWorkspaceByLocator(Fe)===null?g.get(he):null;if(typeof Ue=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);Ue===Ce||Ue===null?f.get(Fe.locatorHash)!==null&&se.push([be,Fe]):!L&&te!==null&&Pg(y,he).push(te)}te!==null&&await Oe.attachInternalDependencies(O,se)};if(L)for(let[Ce,Oe]of u)Ce.supportsPackage(O,c)&&await pe(Ce,Oe);else{let Ce=g.get(O.locatorHash);if(!Ce)throw new Error("Assertion failed: The linker should have been found");let Oe=u.get(Ce);if(!Oe)throw new Error("Assertion failed: The installer should have been registered");await pe(Ce,Oe)}}for(let[X,O]of y){let L=this.storedPackages.get(X);if(!L)throw new Error("Assertion failed: The package should have been registered");let pe=g.get(L.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let Ce=u.get(pe);if(!Ce)throw new Error("Assertion failed: The installer should have been registered");await Ce.attachExternalDependents(L,O)}let b=new Map;for(let X of u.values()){let O=await X.finalizeInstall();for(let L of(le=O==null?void 0:O.records)!=null?le:[])h.set(L.locatorHash,{directives:L.buildDirective,buildLocations:L.buildLocations});typeof(O==null?void 0:O.customData)!="undefined"&&b.set(X.getCustomDataKey(),O.customData)}if(this.installersCustomData=b,await uo(m),n===di.SkipBuild)return;let S=new Set(this.storedPackages.keys()),k=new Set(h.keys());for(let X of k)S.delete(X);let T=(0,p0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(X=>X.globalHashGeneration,this,X=>{T.update("\0"),T.update(X)});let Y=T.digest("hex"),j=new Map,Z=X=>{let O=j.get(X.locatorHash);if(typeof O!="undefined")return O;let L=this.storedPackages.get(X.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The package should have been registered");let pe=(0,p0.createHash)("sha512");pe.update(X.locatorHash),j.set(X.locatorHash,"");for(let Ce of L.dependencies.values()){let Oe=this.storedResolutions.get(Ce.descriptorHash);if(typeof Oe=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,Ce)}) should have been registered`);let te=this.storedPackages.get(Oe);if(typeof te=="undefined")throw new Error("Assertion failed: The package should have been registered");pe.update(Z(te))}return O=pe.digest("hex"),j.set(X.locatorHash,O),O},J=(X,O)=>{let L=(0,p0.createHash)("sha512");L.update(Y),L.update(Z(X));for(let pe of O)L.update(pe);return L.digest("hex")},re=new Map,ee=!1;for(;k.size>0;){let X=k.size,O=[];for(let L of k){let pe=this.storedPackages.get(L);if(!pe)throw new Error("Assertion failed: The package should have been registered");let Ce=!0;for(let se of pe.dependencies.values()){let be=this.storedResolutions.get(se.descriptorHash);if(!be)throw new Error(`Assertion failed: The resolution (${sr(this.configuration,se)}) should have been registered`);if(k.has(be)){Ce=!1;break}}if(!Ce)continue;k.delete(L);let Oe=h.get(pe.locatorHash);if(!Oe)throw new Error("Assertion failed: The build directive should have been registered");let te=J(pe,Oe.buildLocations);if(this.storedBuildState.get(pe.locatorHash)===te){re.set(pe.locatorHash,te);continue}ee||(await this.persistInstallStateFile(),ee=!0),this.storedBuildState.has(pe.locatorHash)?r.reportInfo($.MUST_REBUILD,`${Bt(this.configuration,pe)} must be rebuilt because its dependency tree changed`):r.reportInfo($.MUST_BUILD,`${Bt(this.configuration,pe)} must be built because it never has been before or the last one failed`);for(let se of Oe.buildLocations){if(!x.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);O.push((async()=>{for(let[be,he]of Oe.directives){let Fe=`# This file contains the result of Yarn building a package (${Ds(pe)}) -`;switch(be){case ls.SCRIPT:Fe+=`# Script name: ${he} -`;break;case ls.SHELLCODE:Fe+=`# Script code: ${he} -`;break}let Ue=null;if(!await K.mktempPromise(async Se=>{let de=x.join(Se,"build.log"),{stdout:V,stderr:Qe}=this.configuration.getSubprocessStreams(de,{header:Fe,prefix:Bt(this.configuration,pe),report:r}),ce;try{switch(be){case ls.SCRIPT:ce=await AB(pe,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break;case ls.SHELLCODE:ce=await hD(pe,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break}}catch(gt){Qe.write(gt.stack),ce=1}if(V.end(),Qe.end(),ce===0)return re.set(pe.locatorHash,te),!0;K.detachTemp(Se);let fe=`${Bt(this.configuration,pe)} couldn't be built successfully (exit code ${et(this.configuration,ce,Ye.NUMBER)}, logs can be found here: ${et(this.configuration,de,Ye.PATH)})`;return this.optionalBuilds.has(pe.locatorHash)?(r.reportInfo($.BUILD_FAILED,fe),re.set(pe.locatorHash,te),!0):(r.reportError($.BUILD_FAILED,fe),!1)}))return}})())}}if(await uo(O),X===k.size){let L=Array.from(k).map(pe=>{let Ce=this.storedPackages.get(pe);if(!Ce)throw new Error("Assertion failed: The package should have been registered");return Bt(this.configuration,Ce)}).join(", ");r.reportError($.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${L})`);break}}this.storedBuildState=re}async install(e){var a,l;let r=this.configuration.get("nodeLinker");(a=we.telemetry)==null||a.reportInstall(r),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=qi.Inactive;let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await K.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new ct($.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=et(this.configuration,g,Ye.PACKAGE_EXTENSION);switch(g.status){case qi.Inactive:e.report.reportWarning($.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case qi.Redundant:e.report.reportWarning($.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=ec(n,this.generateLockfile());if(c!==n){let u=(0,n$.structuredPatch)(i,i,n,c);e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION,et(this.configuration,f,Ye.ADDED)):f.startsWith("-")?e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION,et(this.configuration,f,Ye.REMOVED)):e.report.reportInfo(null,et(this.configuration,f,"grey"))}throw e.report.reportSeparator(),new ct($.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===qi.Active&&((l=we.telemetry)==null||l.reportPackageExtension(Rc(g,Ye.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==di.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>cw(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===di.UpdateLockfile){e.report.reportWarning($.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${et(this.configuration,"mode=update-lockfile",Ye.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>cw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let r={};r.__metadata={version:a$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Pn(f)).sort().join(", "),c=new At;c.version=o.linkType===Qt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof r.__metadata.cacheKey=="undefined"&&(r.__metadata.cacheKey=h),h===r.__metadata.cacheKey?u=p:u=g}r[l]=ie(N({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:Ds(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+La(r)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await K.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=ec(r,i);n!==r&&(await K.writeFilePromise(e,n),this.lockFileChecksum=l$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(AF))e.push(...o);let r=(0,d0.default)(this,e),i=oF.default.serialize(r),n=ln(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await K.mkdirPromise(x.dirname(s),{recursive:!0}),await K.writeFilePromise(s,await XKe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await ZKe(await K.readFilePromise(n));s=oF.default.deserialize(o),this.installStateChecksum=ln(o)}catch{r&&await this.applyLightResolution();return}e&&typeof s.installersCustomData!="undefined"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,d0.default)(s,AF.restoreBuildState)),r&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,d0.default)(s,AF.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new pi}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Ix(e.cwd,this.cwd)||!await K.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await K.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?r.reportError($.IMMUTABLE_CACHE,`${et(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:r.reportInfo($.UNUSED_CACHE_ENTRY,`${et(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await K.removePromise(l)))}n&&s!==0&&r.reportInfo($.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function $Ke({project:t,allDescriptors:e,allResolutions:r,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l,tolerateMissingPackages:c=!1}){var re;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,m=new Map,y=new Map,b=new Map(t.workspaces.map(ee=>{let A=ee.anchoredLocator.locatorHash,oe=i.get(A);if(typeof oe=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ud(oe)]})),S=()=>{let ee=K.mktempSync(),A=x.join(ee,"stacktrace.log"),oe=String(g.length+1).length,le=g.map((X,O)=>`${`${O+1}.`.padStart(oe," ")} ${Ds(X)} -`).join("");throw K.writeFileSync(A,le),K.detachTemp(ee),new ct($.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${H.fromPortablePath(A)}`)},k=ee=>{let A=r.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let oe=i.get(A);if(!oe)throw new Error("Assertion failed: The package could not be found");return oe},T=(ee,A,oe,{top:le,optional:X})=>{g.length>1e3&&S(),g.push(A);let O=Y(ee,A,oe,{top:le,optional:X});return g.pop(),O},Y=(ee,A,oe,{top:le,optional:X})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),X||s.delete(A.locatorHash);let O=i.get(A.locatorHash);if(!O){if(c)return;throw new Error(`Assertion failed: The package (${Bt(t.configuration,A)}) should have been registered`)}let L=[],pe=[],Ce=[],Oe=[],te=[];for(let be of Array.from(O.dependencies.values())){if(O.peerDependencies.has(be.identHash)&&O.locatorHash!==le)continue;if(nl(be))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(be.descriptorHash);let he=X;if(!he){let Qe=O.dependenciesMeta.get(Ot(be));if(typeof Qe!="undefined"){let ce=Qe.get(null);typeof ce!="undefined"&&ce.optional&&(he=!0)}}let Fe=r.get(be.descriptorHash);if(!Fe){if(c)continue;throw new Error(`Assertion failed: The resolution (${sr(t.configuration,be)}) should have been registered`)}let Ue=b.get(Fe)||i.get(Fe);if(!Ue)throw new Error(`Assertion failed: The package (${Fe}, resolved from ${sr(t.configuration,be)}) should have been registered`);if(Ue.peerDependencies.size===0){T(be,Ue,new Map,{top:le,optional:he});continue}let xe,Se,de=new Set,V;pe.push(()=>{xe=Ax(be,A.locatorHash),Se=lx(Ue,A.locatorHash),O.dependencies.delete(be.identHash),O.dependencies.set(xe.identHash,xe),r.set(xe.descriptorHash,Se.locatorHash),e.set(xe.descriptorHash,xe),i.set(Se.locatorHash,Se),L.push([Ue,xe,Se])}),Ce.push(()=>{var Qe;V=new Map;for(let ce of Se.peerDependencies.values()){let fe=O.dependencies.get(ce.identHash);if(!fe&&hd(A,ce)&&(ee.identHash===A.identHash?fe=ee:(fe=rr(A,ee.range),e.set(fe.descriptorHash,fe),r.set(fe.descriptorHash,A.locatorHash),a.delete(fe.descriptorHash))),(!fe||fe.range==="missing:")&&Se.dependencies.has(ce.identHash)){Se.peerDependencies.delete(ce.identHash);continue}fe||(fe=rr(ce,"missing:")),Se.dependencies.set(fe.identHash,fe),nl(fe)&&xc(p,fe.descriptorHash).add(Se.locatorHash),f.set(fe.identHash,fe),fe.range==="missing:"&&de.add(fe.identHash),V.set(ce.identHash,(Qe=oe.get(ce.identHash))!=null?Qe:Se.locatorHash)}Se.dependencies=new Map(xn(Se.dependencies,([ce,fe])=>Ot(fe)))}),Oe.push(()=>{if(!i.has(Se.locatorHash))return;let Qe=u.get(Ue.locatorHash);typeof Qe=="number"&&Qe>=2&&S();let ce=u.get(Ue.locatorHash),fe=typeof ce!="undefined"?ce+1:1;u.set(Ue.locatorHash,fe),T(xe,Se,V,{top:le,optional:he}),u.set(Ue.locatorHash,fe-1)}),te.push(()=>{let Qe=O.dependencies.get(be.identHash);if(typeof Qe=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let ce=r.get(Qe.descriptorHash);if(typeof ce=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(xc(y,ce).add(A.locatorHash),!!i.has(Se.locatorHash)){for(let fe of Se.peerDependencies.values()){let gt=V.get(fe.identHash);if(typeof gt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Pg(Dg(m,gt),Ot(fe)).push(Se.locatorHash)}for(let fe of de)Se.dependencies.delete(fe)}})}for(let be of[...pe,...Ce])be();let se;do{se=!0;for(let[be,he,Fe]of L){let Ue=Dg(h,be.locatorHash),xe=ln(...[...Fe.dependencies.values()].map(Qe=>{let ce=Qe.range!=="missing:"?r.get(Qe.descriptorHash):"missing:";if(typeof ce=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${sr(t.configuration,Qe)} to have been registered`);return ce===le?`${ce} (top)`:ce}),he.identHash),Se=Ue.get(xe);if(typeof Se=="undefined"){Ue.set(xe,he);continue}if(Se===he)continue;i.delete(Fe.locatorHash),e.delete(he.descriptorHash),r.delete(he.descriptorHash),n.delete(Fe.locatorHash);let de=p.get(he.descriptorHash)||[],V=[O.locatorHash,...de];p.delete(he.descriptorHash);for(let Qe of V){let ce=i.get(Qe);typeof ce!="undefined"&&(ce.dependencies.get(he.identHash).descriptorHash!==Se.descriptorHash&&(se=!1),ce.dependencies.set(he.identHash,Se))}}}while(!se);for(let be of[...Oe,...te])be()};for(let ee of t.workspaces){let A=ee.anchoredLocator;a.delete(ee.anchoredDescriptor.descriptorHash),T(ee.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var j;(function(oe){oe[oe.NotProvided=0]="NotProvided",oe[oe.NotCompatible=1]="NotCompatible"})(j||(j={}));let Z=[];for(let[ee,A]of y){let oe=i.get(ee);if(typeof oe=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let le=m.get(ee);if(typeof le!="undefined")for(let X of A){let O=i.get(X);if(typeof O!="undefined")for(let[L,pe]of le){let Ce=An(L);if(O.peerDependencies.has(Ce.identHash))continue;let Oe=`p${ln(X,L,ee).slice(0,5)}`;o.set(Oe,{subject:X,requested:Ce,rootRequester:ee,allRequesters:pe});let te=oe.dependencies.get(Ce.identHash);if(typeof te!="undefined"){let se=k(te),be=(re=se.version)!=null?re:"0.0.0",he=new Set;for(let Ue of pe){let xe=i.get(Ue);if(typeof xe=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let Se=xe.peerDependencies.get(Ce.identHash);if(typeof Se=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");he.add(Se.range)}[...he].every(Ue=>{if(Ue.startsWith(oi.protocol)){if(!t.tryWorkspaceByLocator(se))return!1;Ue=Ue.slice(oi.protocol.length),(Ue==="^"||Ue==="~")&&(Ue="*")}return Uc(be,Ue)})||Z.push({type:1,subject:O,requested:Ce,requester:oe,version:be,hash:Oe,requirementCount:pe.length})}else{let se=oe.peerDependenciesMeta.get(L);(se==null?void 0:se.optional)||Z.push({type:0,subject:O,requested:Ce,requester:oe,hash:Oe})}}}}let J=[ee=>ux(ee.subject),ee=>Ot(ee.requested),ee=>`${ee.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning($.UNNAMED,`Some peer dependencies are incorrectly met; run ${et(t.configuration,"yarn explain peer-requirements ",Ye.CODE)} for details, where ${et(t.configuration,"",Ye.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ee of xn(Z,J))switch(ee.type){case 0:l.reportWarning($.MISSING_PEER_DEPENDENCY,`${Bt(t.configuration,ee.subject)} doesn't provide ${gi(t.configuration,ee.requested)} (${et(t.configuration,ee.hash,Ye.CODE)}), requested by ${gi(t.configuration,ee.requester)}`);break;case 1:{let A=ee.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning($.INCOMPATIBLE_PEER_DEPENDENCY,`${Bt(t.configuration,ee.subject)} provides ${gi(t.configuration,ee.requested)} (${et(t.configuration,ee.hash,Ye.CODE)}) with version ${Cd(t.configuration,ee.version)}, which doesn't satisfy what ${gi(t.configuration,ee.requester)} ${A}`)}break}})}var aa;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(aa||(aa={}));var QC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!K.existsSync(i),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue(aa.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(aa.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(aa.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(aa.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(aa.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(aa.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(aa.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(aa.DEPENDENCY_COUNT,String(e))}reportValue(e,r){xc(this.values,e).add(r)}reportEnumerator(e,r){xc(this.enumerators,e).add(ln(r))}reportHit(e,r="*"){let i=Dg(this.hits,e),n=Ja(i,r,()=>0);i.set(r,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return x.join(e,"telemetry.json")}sendReport(e){var u,g,f;let r=this.getRegistryPath(),i;try{i=K.readJsonSync(r)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{K.mkdirSync(x.dirname(r),{recursive:!0}),K.writeJsonSync(r,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>$P(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let m=p;m.userId=h,m.reportType="primary";for(let S of Object.keys((f=m.enumerators)!=null?f:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,b=20;for(let[S,k]of Object.entries(m.values))k.length>0&&y.set(S,k.slice(0,b));for(;y.size>0;){let S={};S.userId=h,S.reportType="secondary",S.metrics={};for(let[k,T]of y)S.metrics[k]=T.shift(),T.length===0&&y.delete(k);c(S)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),r;try{r=K.readJsonSync(e)}catch{r={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=r.blocks=(a=r.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},b=y[m]=(u=y[m])!=null?u:{};for(let[S,k]of this.hits.get(m))b[S]=((g=b[S])!=null?g:0)+k}for(let m of["values","enumerators"])for(let y of this[m].keys()){let b=s[m]=(f=s[m])!=null?f:{};b[y]=[...new Set([...(h=b[y])!=null?h:[],...(p=this[m].get(y))!=null?p:[]])]}K.mkdirSync(x.dirname(e),{recursive:!0}),K.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var lF=ge(require("child_process")),c$=ge(pc());var cF=ge(require("fs"));var Tf=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function e1e(t){let e=H.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,lF.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:ie(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,lF.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:ie(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function C0({binaryVersion:t,pluginConfiguration:e}){async function r(){let n=new ys({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,b,S,k;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!ve.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Wt.satisfiesWithPrereleases(s,o))throw new Pe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await we.find(H.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=H.toPortablePath(H.resolve(process.argv[1])),h=T=>K.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!K.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{e1e(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!c$.isCI&&process.stdout.isTTY&&(we.telemetry=new QC(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=we.telemetry)==null||m.reportVersion(t);for(let[Z,J]of l.plugins.entries()){Tf.has((b=(y=Z.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?b:"")&&((S=we.telemetry)==null||S.reportPluginName(Z));for(let re of J.commands||[])n.register(re)}let Y=n.process(process.argv.slice(2));Y.help||(k=we.telemetry)==null||k.reportCommandName(Y.path.join(" "));let j=Y.cwd;if(typeof j!="undefined"&&!g){let Z=(0,cF.realpathSync)(process.cwd()),J=(0,cF.realpathSync)(j);if(Z!==J){process.chdir(j),await r();return}}await n.runExit(Y,{cwd:H.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return r().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>K.rmtempPromise())}function u$(t){t.Command.Path=(...e)=>r=>{r.paths=r.paths||[],r.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])t.Command[e]=(...r)=>(i,n)=>{let s=t.Option[e](...r);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return t}var VC={};ft(VC,{BaseCommand:()=>Le,WorkspaceRequiredError:()=>ht,getDynamicLibs:()=>Qie,getPluginConfiguration:()=>W0,main:()=>C0,openWorkspace:()=>zf,pluginCommands:()=>Tf});var Le=class extends Re{constructor(){super(...arguments);this.cwd=W.String("--cwd",{hidden:!0})}};var ht=class extends Pe{constructor(e,r){let i=x.relative(e,r),n=x.join(e,At.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var oqe=ge(ri());Is();var aqe=ge(AN()),Qie=()=>new Map([["@yarnpkg/cli",VC],["@yarnpkg/core",vC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Kd],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",mp],["semver",oqe],["typanion",ag],["yup",aqe]]);async function zf(t,e){let{project:r,workspace:i}=await ze.find(t,e);if(!i)throw new ht(r.cwd,e);return i}var v9e=ge(ri());Is();var S9e=ge(AN());var uL={};ft(uL,{dedupeUtils:()=>YN,default:()=>E4e,suggestUtils:()=>DN});var SAe=ge(pc());var Nse=ge(em());Is();var DN={};ft(DN,{Modifier:()=>ga,Strategy:()=>Vr,Target:()=>Hr,WorkspaceModifier:()=>Zf,applyModifier:()=>Pse,extractDescriptorFromPath:()=>NN,extractRangeModifier:()=>xse,fetchDescriptorFrom:()=>FN,findProjectDescriptors:()=>Fse,getModifier:()=>tm,getSuggestedDescriptors:()=>rm,makeWorkspaceDescriptor:()=>Rse,toWorkspaceModifier:()=>Dse});var RN=ge(ri()),QJe="workspace:",Hr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(Hr||(Hr={}));var ga;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(ga||(ga={}));var Zf;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(Zf||(Zf={}));var Vr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Vr||(Vr={}));function tm(t,e){return t.exact?ga.EXACT:t.caret?ga.CARET:t.tilde?ga.TILDE:e.configuration.get("defaultSemverRangePrefix")}var vJe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function xse(t,{project:e}){let r=t.match(vJe);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Pse(t,e){let{protocol:r,source:i,params:n,selector:s}=P.parseRange(t.range);return RN.default.valid(s)&&(s=`${e}${t.range}`),P.makeDescriptor(t,P.makeRange({protocol:r,source:i,params:n,selector:s}))}function Dse(t){switch(t){case ga.CARET:return Zf.CARET;case ga.TILDE:return Zf.TILDE;case ga.EXACT:return Zf.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function Rse(t,e){return P.makeDescriptor(t.anchoredDescriptor,`${QJe}${Dse(e)}`)}async function Fse(t,{project:e,target:r}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(r===Hr.PEER){let o=s.manifest.peerDependencies.get(t.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(t.identHash),a=s.manifest.devDependencies.get(t.identHash);r===Hr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function NN(t,{cwd:e,workspace:r}){return await SJe(async i=>{x.isAbsolute(t)||(t=x.relative(r.cwd,x.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:n}=r,s=await FN(P.makeIdent(null,"archive"),t,{project:r.project,cache:i,workspace:r});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new pi,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,r.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await At.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,t)})}async function rm(t,{project:e,workspace:r,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(t.range!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${P.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof r!="undefined"&&r!==null&&r.manifest[n].get(t.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Vr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Vr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await Fse(t,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===r.anchoredLocator.locatorHash&&o.includes(Vr.KEEP))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;m+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:m})}});break;case Vr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===t.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Vr.PROJECT:await g(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(t);if(h===null)return;let p=Rse(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${Ae.pretty(e.configuration,h.relativeCwd,Ae.Type.PATH)})`})});break;case Vr.LATEST:await g(async()=>{if(t.range!=="unknown")c.push({descriptor:t,name:`Use ${P.prettyRange(e.configuration,t.range)}`,reason:"(explicit range requested)"});else if(n===Hr.PEER)c.push({descriptor:P.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:Ae.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await FN(t,"latest",{project:e,cache:i,workspace:r,preserveModifier:!1});h&&(h=Pse(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function FN(t,e,{project:r,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(t,e),a=new pi,l=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),u={project:r,fetcher:l,cache:i,checksums:r.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=ie(N({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:m,source:y,params:b,selector:S}=P.parseRange(P.convertToManifestRange(p.reference));if(m===r.configuration.get("defaultProtocol")&&(m=null),RN.default.valid(S)&&s!==!1){let k=typeof s=="string"?s:o.range;S=xse(k,{project:r})+S}return P.makeDescriptor(p,P.makeRange({protocol:m,source:y,params:b,selector:S}))}async function SJe(t){return await K.mktempPromise(async e=>{let r=we.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Nt(e,{configuration:r,check:!1,immutable:!1}))})}var im=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=W.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=W.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=W.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=W.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=W.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=W.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=W.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=W.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=W.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.silent=W.Boolean("--silent",{hidden:!0});this.packages=W.Rest()}async execute(){var m;let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=tm(this,r),a=[...s?[Vr.REUSE]:[],Vr.PROJECT,...this.cached?[Vr.CACHE]:[],Vr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async y=>{let b=y.match(/^\.{0,2}\//)?await NN(y,{cwd:this.context.cwd,workspace:i}):P.tryParseDescriptor(y),S=y.match(/^(https?:|git@github)/);if(S)throw new Pe(`It seems you are trying to add a package using a ${Ae.pretty(e,`${S[0]}...`,Di.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${Ae.pretty(e,"yarn add",Di.CODE)} ${Ae.pretty(e,P.makeDescriptor(P.makeIdent(null,"my-package"),`${S[0]}...`),Di.DESCRIPTOR)}`);if(!b)throw new Pe(`The ${Ae.pretty(e,y,Di.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let k=kJe(i,b,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),T=await rm(b,{project:r,workspace:i,cache:n,target:k,modifier:o,strategies:a,maxResults:l});return[b,T,k]})),u=await gA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[b,{suggestions:S,rejections:k}]of c)if(S.filter(Y=>Y.descriptor!==null).length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range`):y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),y.reportSeparator(),y.reportExceptionOnce(Y)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:y},b]of c){let S,k=y.filter(Z=>Z.descriptor!==null),T=k[0].descriptor,Y=k.every(Z=>P.areDescriptorsEqual(Z.descriptor,T));k.length===1||Y?S=T:(g=!0,{answer:S}=await(0,Nse.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:y.map(({descriptor:Z,name:J,reason:re})=>Z?{name:J,hint:re,descriptor:Z}:{name:J,hint:re,disabled:!0}),onCancel:()=>process.exit(130),result(Z){return this.find(Z,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let j=i.manifest[b].get(S.identHash);(typeof j=="undefined"||j.descriptorHash!==S.descriptorHash)&&(i.manifest[b].set(S.identHash,S),this.optional&&(b==="dependencies"?i.manifest.ensureDependencyMeta(ie(N({},S),{range:"unknown"})).optional=!0:b==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(ie(N({},S),{range:"unknown"})).optional=!0)),typeof j=="undefined"?f.push([i,b,S,a]):h.push([i,b,j,S]))}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` -`),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async y=>{await r.install({cache:n,report:y,mode:this.mode})})).exitCode()}};im.paths=[["add"]],im.usage=Re.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var Lse=im;function kJe(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[Hr.REGULAR].has(e.identHash),a=t.manifest[Hr.DEVELOPMENT].has(e.identHash),l=t.manifest[Hr.PEER].has(e.identHash);if((r||i)&&o)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new Pe(`Package "${P.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?Hr.PEER:r||n?Hr.DEVELOPMENT:o?Hr.REGULAR:a?Hr.DEVELOPMENT:Hr.REGULAR}var nm=class extends Le{constructor(){super(...arguments);this.verbose=W.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=W.String({required:!1})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await ze.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Zt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new Pe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} -`),0}return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Zt.getPackageAccessibleBinaries(i,{project:r}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:P.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${P.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};nm.paths=[["bin"]],nm.usage=Re.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var Tse=nm;var sm=class extends Le{constructor(){super(...arguments);this.mirror=W.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=W.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=await Nt.find(e);return(await Je.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&r.mirrorCwd!==null,s=!this.mirror;n&&(await K.removePromise(r.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await K.removePromise(r.cwd)})).exitCode()}};sm.paths=[["cache","clean"],["cache","clear"]],sm.usage=Re.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Ose=sm;var Mse=ge(x0()),LN=ge(require("util")),om=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=W.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(r)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${r}"`);let s=e.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=ve.convertMapsToIndexableObjects(s),a=i?(0,Mse.default)(o,i):o,l=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} -`),l.exitCode();LN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,LN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} -`)}return l.exitCode()}};om.paths=[["config","get"]],om.usage=Re.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Kse=om;var Xoe=ge(HN()),Zoe=ge(x0()),$oe=ge(Voe()),GN=ge(require("util")),Am=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=W.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=W.String();this.value=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new Pe("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>we.updateHomeConfiguration(h):h=>we.updateConfiguration(r(),h))(h=>{if(n){let p=(0,Xoe.default)(h);return(0,$oe.default)(p,this.name,o),p}else return ie(N({},h),{[i]:o})});let c=(await we.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=ve.convertMapsToIndexableObjects(c),g=n?(0,Zoe.default)(u,n):u;return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{GN.inspect.styles.name="cyan",h.reportInfo($.UNNAMED,`Successfully set ${this.name} to ${(0,GN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};Am.paths=[["config","set"]],Am.usage=Re.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var eae=Am;var lae=ge(HN()),cae=ge(kC()),uae=ge(Aae()),lm=class extends Le{constructor(){super(...arguments);this.home=W.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>we.updateHomeConfiguration(l):l=>we.updateConfiguration(r(),l);return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,cae.default)(u,this.name))return l.reportWarning($.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,lae.default)(u):N({},u);return(0,uae.default)(g,this.name),g}),c||l.reportInfo($.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};lm.paths=[["config","unset"]],lm.usage=Re.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var gae=lm;var jN=ge(require("util")),cm=class extends Le{constructor(){super(...arguments);this.verbose=W.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=W.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError($.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=ve.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(N({key:s,effective:a,source:l},o))}}else{let n=ve.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,jN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,jN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};cm.paths=[["config"]],cm.usage=Re.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});var fae=cm;Is();var YN={};ft(YN,{Strategy:()=>yu,acceptedStrategies:()=>D8e,dedupe:()=>qN});var hae=ge(rs()),yu;(function(e){e.HIGHEST="highest"})(yu||(yu={}));var D8e=new Set(Object.values(yu)),R8e={highest:async(t,e,{resolver:r,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of t.storedResolutions){let c=t.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);ve.getSetWithDefault(o,c.identHash).add(l)}return Array.from(t.storedDescriptors.values(),async a=>{if(e.length&&!hae.default.isMatch(P.stringifyIdent(a),e))return null;let l=t.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=t.originalPackages.get(l);if(typeof c=="undefined"||!r.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let b=t.originalPackages.get(y);if(typeof b=="undefined")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return b.reference}),f=await r.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,m=t.originalPackages.get(p);if(typeof m=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function qN(t,{strategy:e,patterns:r,cache:i,report:n}){let{configuration:s}=t,o=new pi,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:t.storedChecksums,fetcher:l,project:t,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:t,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await R8e[e](t,r,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Ji.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(b=>b.then(S=>{if(S===null)return;p++;let{descriptor:k,currentPackage:T,updatedPackage:Y}=S;n.reportInfo($.UNNAMED,`${P.prettyDescriptor(s,k)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,Y)}`),n.reportJson({descriptor:P.stringifyDescriptor(k),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(Y)}),t.storedResolutions.set(k.descriptorHash,Y.locatorHash)}).finally(()=>h.tick())));let m;switch(p){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${p} packages`}let y=Ae.pretty(s,e,Ae.Type.CODE);return n.reportInfo($.UNNAMED,`${m} can be deduped using the ${y} strategy`),p})}var um=class extends Le{constructor(){super(...arguments);this.strategy=W.String("-s,--strategy",yu.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:nn(yu)});this.check=W.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=await Nt.find(e);await r.restoreInstallState({restoreResolutions:!1});let n=0,s=await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await qN(r,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await r.install({cache:i,report:a,mode:this.mode})})).exitCode()}};um.paths=[["dedupe"]],um.usage=Re.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var pae=um;var nb=class extends Le{async execute(){let{plugins:e}=await we.find(this.context.cwd,this.context.plugins),r=[];for(let o of e){let{commands:a}=o[1];if(a){let c=ys.from(a).definitions();r.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Cae()["@yarnpkg/builder"].bundles.standard;for(let o of r){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};nb.paths=[["--clipanion=definitions"]];var mae=nb;var sb=class extends Le{async execute(){this.context.stdout.write(this.cli.usage(null))}};sb.paths=[["help"],["--help"],["-h"]];var Eae=sb;var JN=class extends Le{constructor(){super(...arguments);this.leadingArgument=W.String();this.args=W.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let e=x.resolve(this.context.cwd,H.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Iae=JN;var ob=class extends Le{async execute(){this.context.stdout.write(`${Kr||""} -`)}};ob.paths=[["-v"],["--version"]];var yae=ob;var gm=class extends Le{constructor(){super(...arguments);this.commandName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await ze.find(e,this.context.cwd);return await r.restoreInstallState(),await Zt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};gm.paths=[["exec"]],gm.usage=Re.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var wae=gm;Is();var fm=class extends Le{constructor(){super(...arguments);this.hash=W.String({required:!1,validator:hp(fp(),[pp(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash!="undefined"?await F8e(this.hash,r,{stdout:this.context.stdout}):(await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>P.stringifyLocator(r.storedPackages.get(a.subject)),([,a])=>P.stringifyIdent(a.requested)];for(let[a,l]of ve.sortMap(r.peerRequirements,s)){let c=r.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=r.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=Ae.pretty(e,a,Ae.Type.CODE),h=P.prettyLocator(e,c),p=P.prettyIdent(e,l.requested),m=P.prettyIdent(e,u),y=l.allRequesters.length-1,b=`descendant${y===1?"":"s"}`,S=y>0?` and ${y} ${b}`:"",k=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${k} ${p} to ${m}${S}`)}})).exitCode()}};fm.paths=[["explain","peer-requirements"]],fm.usage=Re.Usage({description:"explain a set of peer requirements",details:` - A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. - - When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. - - When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var Bae=fm;async function F8e(t,e,r){let{configuration:i}=e,n=e.peerRequirements.get(t);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Je.start({configuration:i,stdout:r.stdout,includeFooter:!1},async o=>{var b,S;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(b=a.dependencies.get(n.requested.identHash))!=null?b:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(k=>{let T=e.storedPackages.get(k);if(typeof T=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let Y=P.devirtualizeLocator(T),j=e.storedPackages.get(Y.locatorHash);if(typeof j=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let Z=j.peerDependencies.get(n.requested.identHash);if(typeof Z=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:Z}});if(g!==null){let k=f.every(({peerDependency:T})=>Wt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo($.UNNAMED,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(S=g.version)!=null?S:"")}, which ${k?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo($.UNNAMED,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=Ae.mark(i),p=[];for(let{pkg:k,peerDependency:T}of ve.sortMap(f,Y=>P.stringifyLocator(Y.pkg))){let j=(g!==null?Wt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(k),prettyLocator:P.prettyLocator(i,k),prettyRange:P.prettyRange(i,T.range),mark:j})}let m=Math.max(...p.map(({stringifiedLocator:k})=>k.length)),y=Math.max(...p.map(({prettyRange:k})=>k.length));for(let{stringifiedLocator:k,prettyLocator:T,prettyRange:Y,mark:j}of ve.sortMap(p,({stringifiedLocator:Z})=>Z))o.reportInfo(null,`${T.padEnd(m+(T.length-k.length)," ")} \u2192 ${Y.padEnd(y," ")} ${j}`);p.length>1&&(o.reportSeparator(),o.reportInfo($.UNNAMED,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}Is();var bae=ge(ri()),hm=class extends Le{constructor(){super(...arguments);this.onlyIfNeeded=W.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let r=()=>{if(typeof Kr=="undefined")throw new Pe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=r();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await pm(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await pm(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))i=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.version))i=`file://${H.resolve(this.version)}`;else if(Wt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Wt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Wt.validRange(this.version))i=`https://repo.yarnpkg.com/${await N8e(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Pe(`Invalid version descriptor "${this.version}"`);return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo($.UNNAMED,`Downloading ${Ae.pretty(e,i,Di.URL)}`),a=await K.readFilePromise(H.toPortablePath(i.slice(o.length)))):(s.reportInfo($.UNNAMED,`Retrieving ${Ae.pretty(e,i,Di.PATH)}`),a=await ir.get(i,{configuration:e})),await WN(e,null,a,{report:s})})).exitCode()}};hm.paths=[["set","version"]],hm.usage=Re.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});var Qae=hm;async function N8e(t,e){let i=(await ir.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(n=>Wt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Pe(`No matching release found for range ${Ae.pretty(t,e,Ae.Type.RANGE)}.`);return i[0]}async function pm(t,e){let r=await ir.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new Pe(`Tag ${Ae.pretty(t,e,Ae.Type.RANGE)} not found`);return r.latest[e]}async function WN(t,e,r,{report:i}){var g;e===null&&await K.mktempPromise(async f=>{let h=x.join(f,"yarn.cjs");await K.writeFilePromise(h,r);let{stdout:p}=await Fr.execvp(process.execPath,[H.fromPortablePath(h),"--version"],{cwd:f,env:ie(N({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!bae.default.valid(e))throw new Error(`Invalid semver version. ${Ae.pretty(t,"yarn --version",Ae.Type.CODE)} returned: -${e}`)});let n=(g=t.projectCwd)!=null?g:t.startingCwd,s=x.resolve(n,".yarn/releases"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(t.startingCwd,o),l=x.relative(n,o),c=t.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo($.UNNAMED,`Saving the new release in ${Ae.pretty(t,a,"magenta")}`),await K.removePromise(x.dirname(o)),await K.mkdirPromise(x.dirname(o),{recursive:!0}),await K.writeFilePromise(o,r,{mode:493}),u){await we.updateConfiguration(n,{yarnPath:l});let f=await At.tryFind(n)||new At;f.packageManager=`yarn@${e&&ve.isTaggedYarnVersion(e)?e:await pm(t,"stable")}`;let h={};f.exportTo(h);let p=x.join(n,At.fileName),m=`${JSON.stringify(h,null,f.indent)} -`;await K.changeFilePromise(p,m,{automaticNewlines:!0})}}function vae(t){return $[bI(t)]}var L8e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
    (?:.(?!##))+)/gs;async function T8e(t){let r=`https://repo.yarnpkg.com/${ve.isTaggedYarnVersion(Kr)?Kr:await pm(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await ir.get(r,{configuration:t});return new Map(Array.from(i.toString().matchAll(L8e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=vae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var dm=class extends Le{constructor(){super(...arguments);this.code=W.String({required:!1,validator:hp(fp(),[pp(/^YN[0-9]{4}$/)])});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);if(typeof this.code!="undefined"){let r=vae(this.code),i=Ae.pretty(e,r,Ae.Type.CODE),n=this.cli.format().header(`${this.code} - ${i}`),o=(await T8e(e)).get(this.code),a=typeof o!="undefined"?Ae.jsonOrPretty(this.json,e,Ae.tuple(Ae.Type.MARKDOWN,{text:o,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. - -You can help us by editing this page on GitHub \u{1F642}: -${Ae.jsonOrPretty(this.json,e,Ae.tuple(Ae.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} -`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:r,details:a})} -`):this.context.stdout.write(`${n} - -${a} -`)}else{let r={children:ve.mapAndFilter(Object.entries($),([i,n])=>Number.isNaN(Number(i))?ve.mapAndFilter.skip:{label:qA(Number(i)),value:Ae.tuple(Ae.Type.CODE,n)})};As.emitTree(r,{configuration:e,stdout:this.context.stdout,json:this.json})}}};dm.paths=[["explain"]],dm.usage=Re.Usage({description:"explain an error code",details:` - When the code argument is specified, this command prints its name and its details. - - When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Sae=dm;var kae=ge(rs()),Cm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=W.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=W.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=W.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=W.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=W.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=W.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i&&!this.all)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(k,{recursive:T})=>{let Y=k.anchoredLocator.locatorHash,j=new Map,Z=[Y];for(;Z.length>0;){let J=Z.shift();if(j.has(J))continue;let re=r.storedPackages.get(J);if(typeof re=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(j.set(J,re),P.isVirtualLocator(re)&&Z.push(P.devirtualizeLocator(re).locatorHash),!(!T&&J!==Y))for(let ee of re.dependencies.values()){let A=r.storedResolutions.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");Z.push(A)}}return j.values()},a=({recursive:k})=>{let T=new Map;for(let Y of r.workspaces)for(let j of o(Y,{recursive:k}))T.set(j.locatorHash,j);return T.values()},l=({all:k,recursive:T})=>k&&T?r.storedPackages.values():k?a({recursive:T}):o(i,{recursive:T}),c=({all:k,recursive:T})=>{let Y=l({all:k,recursive:T}),j=this.patterns.map(re=>{let ee=P.parseLocator(re),A=kae.default.makeRe(P.stringifyIdent(ee)),oe=P.isVirtualLocator(ee),le=oe?P.devirtualizeLocator(ee):ee;return X=>{let O=P.stringifyIdent(X);if(!A.test(O))return!1;if(ee.reference==="unknown")return!0;let L=P.isVirtualLocator(X),pe=L?P.devirtualizeLocator(X):X;return!(oe&&L&&ee.reference!==X.reference||le.reference!==pe.reference)}}),Z=ve.sortMap([...Y],re=>P.stringifyLocator(re));return{selection:Z.filter(re=>j.length===0||j.some(ee=>ee(re))),sortedLookup:Z}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new Pe("No package matched your request");let f=new Map;if(this.dependents)for(let k of g)for(let T of k.dependencies.values()){let Y=r.storedResolutions.get(T.descriptorHash);if(typeof Y=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");ve.getArrayWithDefault(f,Y).push(k)}let h=new Map;for(let k of g){if(!P.isVirtualLocator(k))continue;let T=P.devirtualizeLocator(k);ve.getArrayWithDefault(h,T.locatorHash).push(k)}let p={},m={children:p},y=e.makeFetcher(),b={project:r,fetcher:y,cache:n,checksums:r.storedChecksums,report:new pi,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},S=[async(k,T,Y)=>{var J,re;if(!T.has("manifest"))return;let j=await y.fetch(k,b),Z;try{Z=await At.find(j.prefixPath,{baseFs:j.packageFs})}finally{(J=j.releaseFs)==null||J.call(j)}Y("Manifest",{License:Ae.tuple(Ae.Type.NO_HINT,Z.license),Homepage:Ae.tuple(Ae.Type.URL,(re=Z.raw.homepage)!=null?re:null)})},async(k,T,Y)=>{var A;if(!T.has("cache"))return;let j={mockedPackages:r.disabledLocators,unstablePackages:r.conditionalLocators},Z=(A=r.storedChecksums.get(k.locatorHash))!=null?A:null,J=n.getLocatorPath(k,Z,j),re;if(J!==null)try{re=K.statSync(J)}catch{}let ee=typeof re!="undefined"?[re.size,Ae.Type.SIZE]:void 0;Y("Cache",{Checksum:Ae.tuple(Ae.Type.NO_HINT,Z),Path:Ae.tuple(Ae.Type.PATH,J),Size:ee})}];for(let k of u){let T=P.isVirtualLocator(k);if(!this.virtuals&&T)continue;let Y={},j={value:[k,Ae.Type.LOCATOR],children:Y};if(p[P.stringifyLocator(k)]=j,this.nameOnly){delete j.children;continue}let Z=h.get(k.locatorHash);typeof Z!="undefined"&&(Y.Instances={label:"Instances",value:Ae.tuple(Ae.Type.NUMBER,Z.length)}),Y.Version={label:"Version",value:Ae.tuple(Ae.Type.NO_HINT,k.version)};let J=(ee,A)=>{let oe={};if(Y[ee]=oe,Array.isArray(A))oe.children=A.map(le=>({value:le}));else{let le={};oe.children=le;for(let[X,O]of Object.entries(A))typeof O!="undefined"&&(le[X]={label:X,value:O})}};if(!T){for(let ee of S)await ee(k,s,J);await e.triggerHook(ee=>ee.fetchPackageInfo,k,s,J)}k.bin.size>0&&!T&&J("Exported Binaries",[...k.bin.keys()].map(ee=>Ae.tuple(Ae.Type.PATH,ee)));let re=f.get(k.locatorHash);typeof re!="undefined"&&re.length>0&&J("Dependents",re.map(ee=>Ae.tuple(Ae.Type.LOCATOR,ee))),k.dependencies.size>0&&!T&&J("Dependencies",[...k.dependencies.values()].map(ee=>{var le;let A=r.storedResolutions.get(ee.descriptorHash),oe=typeof A!="undefined"&&(le=r.storedPackages.get(A))!=null?le:null;return Ae.tuple(Ae.Type.RESOLUTION,{descriptor:ee,locator:oe})})),k.peerDependencies.size>0&&T&&J("Peer dependencies",[...k.peerDependencies.values()].map(ee=>{var X,O;let A=k.dependencies.get(ee.identHash),oe=typeof A!="undefined"&&(X=r.storedResolutions.get(A.descriptorHash))!=null?X:null,le=oe!==null&&(O=r.storedPackages.get(oe))!=null?O:null;return Ae.tuple(Ae.Type.RESOLUTION,{descriptor:ee,locator:le})}))}As.emitTree(m,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Cm.paths=[["info"]],Cm.usage=Re.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var xae=Cm;var ab=ge(pc());Is();var mm=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=W.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=W.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=W.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=W.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.cacheFolder=W.String("--cache-folder",{hidden:!0});this.frozenLockfile=W.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=W.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=W.Boolean("--non-interactive",{hidden:!0});this.preferOffline=W.Boolean("--prefer-offline",{hidden:!0});this.production=W.Boolean("--production",{hidden:!0});this.registry=W.String("--registry",{hidden:!0});this.silent=W.Boolean("--silent",{hidden:!0});this.networkTimeout=W.String("--network-timeout",{hidden:!0})}async execute(){var g;let e=await we.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(f,{error:h})=>{let p=await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async m=>{h?m.reportError($.DEPRECATED_CLI_SETTINGS,f):m.reportWarning($.DEPRECATED_CLI_SETTINGS,f)});return p.hasErrors()?p.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let f=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!ab.default.VERCEL});if(f!==null)return f}if(typeof this.registry!="undefined"){let f=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(f!==null)return f}if(typeof this.preferOffline!="undefined"){let f=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!ab.default.VERCEL});if(f!==null)return f}if(typeof this.production!="undefined"){let f=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(f!==null)return f}if(typeof this.nonInteractive!="undefined"){let f=await i("The --non-interactive option is deprecated",{error:!r});if(f!==null)return f}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let f=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!ab.default.NETLIFY});if(f!==null)return f}let n=this.mode===di.UpdateLockfile;if(n&&(this.immutable||this.immutableCache))throw new Pe(`${Ae.pretty(e,"--immutable",Ae.Type.CODE)} and ${Ae.pretty(e,"--immutable-cache",Ae.Type.CODE)} cannot be used with ${Ae.pretty(e,"--mode=update-lockfile",Ae.Type.CODE)}`);let s=((g=this.immutable)!=null?g:e.get("enableImmutableInstalls"))&&!n,o=this.immutableCache&&!n;if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{await O8e(e,s)&&(h.reportInfo($.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let f=e.projectCwd,h;try{h=await K.readFilePromise(x.join(f,Pt.lockfile),"utf8")}catch{}if(h==null?void 0:h.includes("yarn lockfile v1")){let p=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async m=>{m.reportInfo($.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),m.reportSeparator(),e.use("",{nodeLinker:"node-modules"},f,{overwrite:!0}),await we.updateConfiguration(f,{nodeLinker:"node-modules"})});if(p.hasErrors())return p.exitCode()}}if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{var p;((p=we.telemetry)==null?void 0:p.isNew)&&(h.reportInfo($.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),h.reportInfo($.TELEMETRY_NOTICE,`Run ${Ae.pretty(e,"yarn config set --home enableTelemetry 0",Ae.Type.CODE)} to disable`),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}let{project:a,workspace:l}=await ze.find(e,this.context.cwd),c=await Nt.find(e,{immutable:o,check:this.checkCache});if(!l)throw new ht(a.cwd,this.context.cwd);return await a.restoreInstallState({restoreResolutions:!1}),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async f=>{await a.install({cache:c,report:f,immutable:s,mode:this.mode})})).exitCode()}};mm.paths=[["install"],Re.Default],mm.usage=Re.Usage({description:"install the project dependencies",details:` - This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - - - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). - - - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). - - - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). - - - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. - - Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. - - If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. - - If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). - - If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. - - If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var Pae=mm,M8e="|||||||",K8e=">>>>>>>",U8e="=======",Dae="<<<<<<<";async function O8e(t,e){if(!t.projectCwd)return!1;let r=x.join(t.projectCwd,t.get("lockfileFilename"));if(!await K.existsPromise(r))return!1;let i=await K.readFilePromise(r,"utf8");if(!i.includes(Dae))return!1;if(e)throw new ct($.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=H8e(i),o,a;try{o=Qi(n),a=Qi(s)}catch(c){throw new ct($.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=N(N({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await K.changeFilePromise(r,La(l),{automaticNewlines:!0}),!0}function H8e(t){let e=[[],[]],r=t.split(/\r?\n/g),i=!1;for(;r.length>0;){let n=r.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Dae)){for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===U8e){i=!1;break}else if(i||s.startsWith(M8e)){i=!0;continue}else e[0].push(s)}for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(K8e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` -`),e[1].join(` -`)]}var Em=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=W.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=W.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=x.resolve(this.context.cwd,H.toPortablePath(this.destination)),o=await we.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await ze.find(o,s);if(r.cwd===a.cwd)throw new Pe("Invalid destination; Can't link the project to itself");if(!l)throw new ht(a.cwd,s);let c=r.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new Pe("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new Pe("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=P.stringifyIdent(f.locator),p=this.relative?x.relative(r.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Je.start({configuration:e,stdout:this.context.stdout},async f=>{await r.install({cache:n,report:f})})).exitCode()}};Em.paths=[["link"]],Em.usage=Re.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Rae=Em;var Im=class extends Le{constructor(){super(...arguments);this.args=W.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Im.paths=[["node"]],Im.usage=Re.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Fae=Im;var Gae=ge(require("os"));var Lae=ge(require("os"));var G8e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function wu(t){let e=await ir.get(G8e,{configuration:t});return Qi(e.toString())}var ym=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await wu(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=Tr(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(N({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};ym.paths=[["plugin","list"]],ym.usage=Re.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Nae=ym;var j8e=/^[0-9]+$/;function Tae(t){return j8e.test(t)?`pull/${t}/head`:t}var Y8e=({repository:t,branch:e},r)=>[["git","init",H.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",Tae(e)],["git","reset","--hard","FETCH_HEAD"]],q8e=({branch:t})=>[["git","fetch","origin","--depth=1",Tae(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],J8e=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(i=>["--plugin",x.resolve(r,i)])),...e?["--no-minify"]:[],"|"]],wm=class extends Le{constructor(){super(...arguments);this.installPath=W.String("--path",{description:"The path where the repository should be cloned to"});this.repository=W.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=W.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=W.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=W.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=W.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=W.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,Lae.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{await _N(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo($.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await Bm(J8e(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=x.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await K.readFilePromise(o);await WN(e,"sources",a,{report:s}),this.skipPlugins||await W8e(this,{project:r,report:s,target:i})})).exitCode()}};wm.paths=[["set","version","from","sources"]],wm.usage=Re.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]});var Oae=wm;async function Bm(t,{configuration:e,context:r,target:i}){for(let[n,...s]of t){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Fr.pipevp(n,s,{cwd:i,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${Ae.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await Fr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw r.stdout.write(a.stdout||a.stack),a}}}}async function _N(t,{configuration:e,report:r,target:i}){let n=!1;if(!t.force&&K.existsSync(x.join(i,".git"))){r.reportInfo($.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await Bm(q8e(t),{configuration:e,context:t.context,target:i}),n=!0}catch(s){r.reportSeparator(),r.reportWarning($.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(r.reportInfo($.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await K.removePromise(i),await K.mkdirPromise(i,{recursive:!0}),await Bm(Y8e(t,i),{configuration:e,context:t.context,target:i}))}async function W8e(t,{project:e,report:r,target:i}){let n=await wu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await zN(o,t,{project:e,report:r,target:i})}var Mae=ge(ri()),Kae=ge(require("url")),Uae=ge(require("vm"));var bm=class extends Le{constructor(){super(...arguments);this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await ze.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.name)){let a=x.resolve(this.context.cwd,H.toPortablePath(this.name));i.reportInfo($.UNNAMED,`Reading ${Ae.pretty(e,a,Ae.Type.PATH)}`),s=x.relative(n.cwd,a),o=await K.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new Kae.URL(this.name)}catch{throw new ct($.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!Mae.default.valid(l.reference))throw new ct($.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=P.stringifyIdent(l),u=await wu(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new ct($.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Kr!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Kr}/`))}i.reportInfo($.UNNAMED,`Downloading ${Ae.pretty(e,a,"green")}`),o=await ir.get(a,{configuration:e})}await VN(s,o,{project:n,report:i})})).exitCode()}};bm.paths=[["plugin","import"]],bm.usage=Re.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var Hae=bm;async function VN(t,e,{project:r,report:i}){let{configuration:n}=r,s={},o={exports:s};(0,Uae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(r.cwd,l);i.reportInfo($.UNNAMED,`Saving the new plugin in ${Ae.pretty(n,l,"magenta")}`),await K.mkdirPromise(x.dirname(c),{recursive:!0}),await K.writeFilePromise(c,e);let u={path:l,spec:t};await we.updateConfiguration(r.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let m=typeof p!="string"?p.path:p,y=x.resolve(r.cwd,H.toPortablePath(m)),{name:b}=ve.dynamicRequire(y);b!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),ie(N({},g),{plugins:f})})}var z8e=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],Qm=class extends Le{constructor(){super(...arguments);this.installPath=W.String("--path",{description:"The path where the repository should be cloned to"});this.repository=W.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=W.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=W.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=W.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,Gae.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await ze.find(e,this.context.cwd),o=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=P.stringifyIdent(o),l=await wu(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new ct($.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await _N(this,{configuration:e,report:n,target:r}),await zN(c,this,{project:s,report:n,target:r})})).exitCode()}};Qm.paths=[["plugin","import","from","sources"]],Qm.usage=Re.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var jae=Qm;async function zN(t,{context:e,noMinify:r},{project:i,report:n,target:s}){let o=t.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo($.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await Bm(z8e({pluginName:o,noMinify:r},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${t}.js`),c=await K.readFilePromise(l);await VN(t,c,{project:i,report:n})}var vm=class extends Le{constructor(){super(...arguments);this.name=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=P.parseIdent(s);if(!e.plugins.has(s))throw new Pe(`${P.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=x.resolve(r.cwd,a);K.existsSync(l)&&(n.reportInfo($.UNNAMED,`Removing ${Ae.pretty(e,a,Ae.Type.PATH)}...`),await K.removePromise(l)),n.reportInfo($.UNNAMED,"Updating the configuration..."),await we.updateConfiguration(r.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:ie(N({},c),{plugins:u})})})).exitCode()}};vm.paths=[["plugin","remove"]],vm.usage=Re.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Yae=vm;var Sm=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};Sm.paths=[["plugin","runtime"]],Sm.usage=Re.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var qae=Sm;var km=class extends Le{constructor(){super(...arguments);this.idents=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(P.parseIdent(a).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:n,report:new pi}),s.size>0)for(let a of r.storedPackages.values())s.has(a.identHash)&&r.storedBuildState.delete(a.locatorHash);else r.storedBuildState.clear();return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await r.install({cache:n,report:a})})).exitCode()}};km.paths=[["rebuild"]],km.usage=Re.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var Jae=km;var XN=ge(rs());Is();var xm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=this.all?r.workspaces:[i],o=[Hr.REGULAR,Hr.DEVELOPMENT,Hr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,m=P.parseIdent(h);for(let y of s){let b=[...y.manifest.peerDependenciesMeta.keys()];for(let S of(0,XN.default)(b,h))y.manifest.peerDependenciesMeta.delete(S),l=!0,p=!0;for(let S of o){let k=y.manifest.getForScope(S),T=[...k.values()].map(Y=>P.stringifyIdent(Y));for(let Y of(0,XN.default)(T,P.stringifyIdent(m))){let{identHash:j}=P.parseIdent(Y),Z=k.get(j);if(typeof Z=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");y.manifest[S].delete(j),c.push([y,S,Z]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new Pe(`${u} ${Ae.prettyList(e,a,Di.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Je.start({configuration:e,stdout:this.context.stdout},async p=>{await r.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};xm.paths=[["remove"]],xm.usage=Re.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Wae=xm;var zae=ge(require("util")),Ab=class extends Le{async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=ve.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,zae.inspect)(g,l)}`)})).exitCode()}};Ab.paths=[["run"]];var _ae=Ab;var Pm=class extends Le{constructor(){super(...arguments);this.inspect=W.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=W.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=W.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=W.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=W.Boolean("--silent",{hidden:!0});this.scriptName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i,locator:n}=await ze.find(e,this.context.cwd);await r.restoreInstallState();let s=this.topLevel?r.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Zt.hasPackageScript(s,this.scriptName,{project:r}))return await Zt.executePackageScript(s,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Zt.getPackageAccessibleBinaries(s,{project:r});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Zt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(r.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Zt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new Pe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Tf)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new Pe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new Pe(`Couldn't find a script named "${this.scriptName}".`)}}};Pm.paths=[["run"]],Pm.usage=Re.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Vae=Pm;var Dm=class extends Le{constructor(){super(...arguments);this.save=W.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=W.String();this.resolution=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(await r.restoreInstallState({restoreResolutions:!1}),!i)throw new ht(r.cwd,this.context.cwd);let s=P.parseDescriptor(this.descriptor,!0),o=P.makeDescriptor(s,this.resolution);return r.storedDescriptors.set(s.descriptorHash,s),r.storedDescriptors.set(o.descriptorHash,o),r.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};Dm.paths=[["set","resolution"]],Dm.usage=Re.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Xae=Dm;var Zae=ge(rs()),Rm=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);let s=r.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=x.resolve(this.context.cwd,H.toPortablePath(l));if(ve.isPathLike(l)){let u=await we.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await ze.find(u,c);if(!f)throw new ht(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(P.stringifyIdent(h.locator));if(o.size===0)throw new Pe("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be unlinked");o.add(P.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,Zae.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};Rm.paths=[["unlink"]],Rm.usage=Re.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var $ae=Rm;var eAe=ge(em()),ZN=ge(rs());Is();var rh=class extends Le{constructor(){super(...arguments);this.interactive=W.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=W.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=W.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=W.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=W.String("--mode",{description:"Change what artifacts installs generate",validator:nn(di)});this.patterns=W.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=[...r.storedDescriptors.values()],o=s.map(u=>P.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(P.parseDescriptor(u).range!=="unknown")throw new Pe("Ranges aren't allowed when using --recursive");for(let g of(0,ZN.default)(o,u)){let f=P.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)r.storedDescriptors.delete(u.descriptorHash),r.storedResolutions.delete(u.descriptorHash);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{await r.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var m;let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=tm(this,r),a=s?[Vr.KEEP,Vr.REUSE,Vr.PROJECT,Vr.LATEST]:[Vr.PROJECT,Vr.LATEST],l=[],c=[];for(let y of this.patterns){let b=!1,S=P.parseDescriptor(y);for(let k of r.workspaces)for(let T of[Hr.REGULAR,Hr.DEVELOPMENT]){let j=[...k.manifest.getForScope(T).values()].map(Z=>P.stringifyIdent(Z));for(let Z of(0,ZN.default)(j,P.stringifyIdent(S))){let J=P.parseIdent(Z),re=k.manifest[T].get(J.identHash);if(typeof re=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let ee=P.makeDescriptor(J,S.range);l.push(Promise.resolve().then(async()=>[k,T,re,await rm(ee,{project:r,workspace:k,cache:n,target:T,modifier:o,strategies:a})])),b=!0}}b||c.push(y)}if(c.length>1)throw new Pe(`Patterns ${Ae.prettyList(e,c,Di.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new Pe(`Pattern ${Ae.prettyList(e,c,Di.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await gA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[,,b,{suggestions:S,rejections:k}]of u){let T=S.filter(Y=>Y.descriptor!==null);if(T.length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let j=this.cli.error(Y);r.configuration.get("enableNetwork")?y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range - -${j}`):y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${j}`)}else T.length>1&&!s&&y.reportError($.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[y,b,,{suggestions:S}]of u){let k,T=S.filter(J=>J.descriptor!==null),Y=T[0].descriptor,j=T.every(J=>P.areDescriptorsEqual(J.descriptor,Y));T.length===1||j?k=Y:(f=!0,{answer:k}=await(0,eAe.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(e,y)} \u276F ${b}?`,choices:S.map(({descriptor:J,name:re,reason:ee})=>J?{name:re,hint:ee,descriptor:J}:{name:re,hint:ee,disabled:!0}),onCancel:()=>process.exit(130),result(J){return this.find(J,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Z=y.manifest[b].get(k.identHash);if(typeof Z=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Z.descriptorHash!==k.descriptorHash)y.manifest[b].set(k.identHash,k),h.push([y,b,Z,k]);else{let J=e.makeResolver(),re={project:r,resolver:J},ee=J.bindDescriptor(Z,y.anchoredLocator,re);r.forgetResolution(ee)}}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` -`),(await Je.start({configuration:e,stdout:this.context.stdout},async y=>{await r.install({cache:n,report:y,mode:this.mode})})).exitCode()}};rh.paths=[["up"]],rh.usage=Re.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),rh.schema=[gv("recursive",mc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var tAe=rh;var Fm=class extends Le{constructor(){super(...arguments);this.recursive=W.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=W.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=P.parseIdent(this.package).identHash,s=this.recursive?V8e(r,n,{configuration:e,peers:this.peers}):_8e(r,n,{configuration:e,peers:this.peers});As.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};Fm.paths=[["why"]],Fm.usage=Re.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var rAe=Fm;function _8e(t,e,{configuration:r,peers:i}){let n=ve.sortMap(t.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=t.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=t.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=P.stringifyLocator(a);s[p]={value:[a,Ae.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},Ae.Type.DEPENDENT]}}}return o}function V8e(t,e,{configuration:r,peers:i}){let n=ve.sortMap(t.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let m=t.storedResolutions.get(p.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=t.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let m=p!==null?Ae.tuple(Ae.Type.DEPENDENT,{locator:f,descriptor:p}):Ae.tuple(Ae.Type.LOCATOR,f),y={},b={value:m,children:y},S=P.stringifyLocator(f);if(h[S]=b,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&t.tryWorkspaceByLocator(f))))for(let k of f.dependencies.values()){if(!i&&f.peerDependencies.has(k.identHash))continue;let T=t.storedResolutions.get(k.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let Y=t.storedPackages.get(T);if(!Y)throw new Error("Assertion failed: The package should have been registered");g(Y,y,k)}};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var cL={};ft(cL,{default:()=>C4e,gitUtils:()=>Bu});var Bu={};ft(Bu,{TreeishProtocols:()=>On,clone:()=>aL,fetchBase:()=>BAe,fetchChangedFiles:()=>bAe,fetchChangedWorkspaces:()=>p4e,fetchRoot:()=>wAe,isGitUrl:()=>nh,lsRemote:()=>yAe,normalizeLocator:()=>nL,normalizeRepoUrl:()=>Nm,resolveUrl:()=>oL,splitRepoUrl:()=>Lm});var rL=ge(CAe()),mAe=ge(rB()),ih=ge(require("querystring")),iL=ge(ri()),EAe=ge(require("url"));function IAe(){return ie(N({},process.env),{GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`})}var h4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],On;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(On||(On={}));function nh(t){return t?h4e.some(e=>!!t.match(e)):!1}function Lm(t){t=Nm(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:On.Head,request:"HEAD"},extra:{}};let r=t.slice(0,e),i=t.slice(e+1);if(i.match(/^[a-z]+=/)){let n=ih.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(On).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=On.Head,a="HEAD");for(let l of Object.values(On))delete n[l];return{repo:r,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:r,treeish:{protocol:s,request:o},extra:{}}}}function Nm(t,{git:e=!1}={}){var r;if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){t=t.replace(/^git\+([^:]+):/,"$1:");let i;try{i=EAe.default.parse(t)}catch{i=null}i&&i.protocol==="ssh:"&&((r=i.path)==null?void 0:r.startsWith("/:"))&&(t=t.replace(/^ssh:\/\//,""))}return t}function nL(t){return P.makeLocator(t,Nm(t.reference))}async function yAe(t,e){let r=Nm(t,{git:!0});if(!ir.getNetworkSettings(`https://${(0,rL.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${r}' has been blocked because of your configuration settings`);let n=await sL("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:IAe()},{configuration:e,normalizedRepoUrl:r}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function oL(t,e){let{repo:r,treeish:{protocol:i,request:n},extra:s}=Lm(t),o=await yAe(r,e),a=(c,u)=>{switch(c){case On.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return ih.default.stringify(ie(N({},s),{commit:u}))}case On.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:g}))}case On.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:g}))}case On.Semver:{let g=Wt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,m])=>[iL.default.parse(p.slice(10)),m]).filter(p=>p[0]!==null)),h=iL.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return ih.default.stringify(ie(N({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(On.Commit,u))!==null||(g=l(On.Tag,u))!==null||(g=l(On.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${r}#${a(i,n)}`}async function aL(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:i,request:n}}=Lm(t);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=Nm(r,{git:!0});if(ir.getNetworkSettings(`https://${(0,rL.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await K.mktempPromise(),a={cwd:o,env:IAe()};return await sL("cloning the repository",["clone","-c core.autocrlf=false",s,H.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await sL("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function wAe(t){let e=null,r,i=t;do r=i,await K.existsPromise(x.join(r,".git"))&&(e=r),i=x.dirname(r);while(e===null&&i!==r);return e}async function BAe(t,{baseRefs:e}){if(e.length===0)throw new Pe("Can't run this command with zero base refs specified.");let r=[];for(let a of e){let{code:l}=await Fr.execvp("git",["merge-base",a,"HEAD"],{cwd:t});l===0&&r.push(a)}if(r.length===0)throw new Pe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Fr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),n=i.trim(),{stdout:s}=await Fr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:t,strict:!0}),o=s.trim();return{hash:n,title:o}}async function bAe(t,{base:e,project:r}){let i=ve.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Fr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(t,H.toPortablePath(c))),{stdout:o}=await Fr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(t,H.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(r.cwd,c).match(i)):l}async function p4e({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new Pe("This command can only be run from within a Yarn project");let r=[x.resolve(e.cwd,e.configuration.get("cacheFolder")),x.resolve(e.cwd,e.configuration.get("installStatePath")),x.resolve(e.cwd,e.configuration.get("lockfileFilename")),x.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&r.push(o)});let i=await wAe(e.configuration.projectCwd);if(i==null)throw new Pe("This command can only be run on Git repositories");let n=await BAe(i,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),s=await bAe(i,{base:n.hash,project:e});return new Set(ve.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?ve.mapAndFilter.skip:r.some(l=>o.startsWith(l))?ve.mapAndFilter.skip:a}))}async function sL(t,e,r,{configuration:i,normalizedRepoUrl:n}){try{return await Fr.execvp("git",e,ie(N({},r),{strict:!0}))}catch(s){if(!(s instanceof Fr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new ct($.EXCEPTION,`Failed ${t}`,l=>{l.reportError($.EXCEPTION,` ${Ae.prettyField(i,{label:"Repository URL",value:Ae.tuple(Ae.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,mAe.default)(u)} Error`;l.reportError($.EXCEPTION,` ${Ae.prettyField(i,{label:f,value:Ae.tuple(Ae.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var AL=class{supports(e,r){return nh(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,n=nL(e),s=new Map(r.checksums);s.set(n.locatorHash,i);let o=ie(N({},r),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,r){return r.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let i=await aL(e.reference,r.project.configuration),n=Lm(e.reference),s=x.join(i,"package.tgz");await Zt.prepareExternalProject(i,s,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:e});let o=await K.readFilePromise(s);return await ve.releaseAfterUseAsync(async()=>await wi.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var lL=class{supportsDescriptor(e,r){return nh(e.range)}supportsLocator(e,r){return nh(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=await oL(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var d4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:ye.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:ye.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:ye.NUMBER,default:2}},fetchers:[AL],resolvers:[lL]};var C4e=d4e;var Tm=class extends Le{constructor(){super(...arguments);this.since=W.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=W.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Bu.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of At.hardDependencies)for(let[h,p]of l.getForScope(f)){let m=r.tryWorkspaceByDescriptor(p);m===null?r.workspacesByIdent.has(h)&&g.add(p):u.add(m)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>P.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(N({location:a.relativeCwd,name:l.name?P.stringifyIdent(l.name):null},c))}})).exitCode()}};Tm.paths=[["workspaces","list"]],Tm.usage=Re.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var QAe=Tm;var Om=class extends Le{constructor(){super(...arguments);this.workspaceName=W.String();this.commandName=W.String();this.args=W.Proxy()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=r.workspaces,s=new Map(n.map(a=>{let l=P.convertToIdent(a.locator);return[P.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new Pe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${a.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};Om.paths=[["workspace"]],Om.usage=Re.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var vAe=Om;var m4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:ye.BOOLEAN,default:SAe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:ye.STRING,values:["^","~",""],default:ga.CARET}},commands:[Ose,Kse,eae,gae,Xae,Oae,Qae,QAe,mae,Eae,Iae,yae,Lse,Tse,fae,pae,wae,Bae,Sae,xae,Pae,Rae,$ae,Fae,jae,Hae,Yae,Nae,qae,Jae,Wae,_ae,Vae,tAe,rAe,vAe]},E4e=m4e;var pL={};ft(pL,{default:()=>y4e});var qe={optional:!0},kAe=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:qe,zenObservable:qe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:qe,zenObservable:qe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:qe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:qe,["postcss-jsx"]:qe,["postcss-less"]:qe,["postcss-markdown"]:qe,["postcss-scss"]:qe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:qe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:qe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@*",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:qe,"vue-template-compiler":qe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:qe,"utf-8-validate":qe}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":qe,"vuetify-loader":qe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":qe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":qe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":qe}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:qe,tinyliquid:qe,"liquid-node":qe,jade:qe,"then-jade":qe,dust:qe,"dustjs-helpers":qe,"dustjs-linkedin":qe,swig:qe,"swig-templates":qe,"razor-tmpl":qe,atpl:qe,liquor:qe,twig:qe,ejs:qe,eco:qe,jazz:qe,jqtpl:qe,hamljs:qe,hamlet:qe,whiskers:qe,"haml-coffee":qe,"hogan.js":qe,templayed:qe,handlebars:qe,underscore:qe,lodash:qe,pug:qe,"then-pug":qe,qejs:qe,walrus:qe,mustache:qe,just:qe,ect:qe,mote:qe,toffee:qe,dot:qe,"bracket-template":qe,ractive:qe,nunjucks:qe,htmling:qe,"babel-core":qe,plates:qe,"react-dom":qe,react:qe,"arc-templates":qe,vash:qe,slm:qe,marko:qe,teacup:qe,"coffee-script":qe,squirrelly:qe,twing:qe}}],["vue-loader@<=16.3.1",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:qe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:qe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":qe,"webpack-command":qe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":qe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":qe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:qe,jimp:qe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":qe,"eslint-import-resolver-typescript":qe,"eslint-import-resolver-webpack":qe,"@typescript-eslint/parser":qe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":qe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":qe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:qe}}],["@vue/eslint-config-typescript@*",{peerDependenciesMeta:{typescript:qe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}]];var gL;function xAe(){return typeof gL=="undefined"&&(gL=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),gL}var fL;function PAe(){return typeof fL=="undefined"&&(fL=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),fL}var hL;function DAe(){return typeof hL=="undefined"&&(hL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),hL}var RAe=new Map([[P.makeIdent(null,"fsevents").identHash,xAe],[P.makeIdent(null,"resolve").identHash,PAe],[P.makeIdent(null,"typescript").identHash,DAe]]),I4e={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,i]of kAe)e(P.parseDescriptor(r,!0),i)},getBuiltinPatch:async(t,e)=>{var s;let r="compat/";if(!e.startsWith(r))return;let i=P.parseIdent(e.slice(r.length)),n=(s=RAe.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(t,e,r,i)=>typeof RAe.get(t.identHash)=="undefined"?t:P.makeDescriptor(t,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(t),selector:`~builtin`,params:null}))}},y4e=I4e;var dL={};ft(dL,{default:()=>B4e});var lb=class extends Le{constructor(){super(...arguments);this.pkg=W.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=W.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=W.String();this.args=W.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let r=P.parseIdent(this.command),i=P.makeIdent(r.scope,`create-${r.name}`);return this.cli.run(["dlx",...e,P.stringifyIdent(i),...this.args])}};lb.paths=[["create"]];var FAe=lb;var Mm=class extends Le{constructor(){super(...arguments);this.packages=W.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=W.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=W.String();this.args=W.Proxy()}async execute(){return we.telemetry=null,await K.mktempPromise(async e=>{var p;let r=x.join(e,`dlx-${process.pid}`);await K.mkdirPromise(r),await K.writeFilePromise(x.join(r,"package.json"),`{} -`),await K.writeFilePromise(x.join(r,"yarn.lock"),"");let i=x.join(r,".yarnrc.yml"),n=await we.findProjectCwd(this.context.cwd,Pt.lockfile),s=!(await we.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?x.join(n,".yarnrc.yml"):null;o!==null&&K.existsSync(o)?(await K.copyFilePromise(o,i),await we.updateConfiguration(r,m=>{let y=ie(N({},m),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(m.plugins)&&(y.plugins=m.plugins.map(b=>{let S=typeof b=="string"?b:b.path,k=H.isAbsolute(S)?S:H.resolve(H.fromPortablePath(n),S);return typeof b=="string"?k:{path:k,spec:b.spec}})),y})):await K.writeFilePromise(i,`enableGlobalCache: ${s} -enableTelemetry: false -`);let a=(p=this.packages)!=null?p:[this.command],l=P.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:r,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` -`);let u=await we.find(r,this.context.plugins),{project:g,workspace:f}=await ze.find(u,r);if(f===null)throw new ht(g.cwd,r);await g.restoreInstallState();let h=await Zt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Zt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Mm.paths=[["dlx"]],Mm.usage=Re.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var NAe=Mm;var w4e={commands:[FAe,NAe]},B4e=w4e;var QL={};ft(QL,{default:()=>v4e,fileUtils:()=>CL});var sh=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Km=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Xr="file:";var CL={};ft(CL,{makeArchiveFromLocator:()=>cb,makeBufferFromLocator:()=>IL,makeLocator:()=>EL,makeSpec:()=>LAe,parseSpec:()=>mL});function mL(t){let{params:e,selector:r}=P.parseRange(t),i=H.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function LAe({parentLocator:t,path:e,folderHash:r,protocol:i}){let n=t!==null?{locator:P.stringifyLocator(t)}:{},s=typeof r!="undefined"?{hash:r}:{};return P.makeRange({protocol:i,source:e,selector:e,params:N(N({},s),n)})}function EL(t,{parentLocator:e,path:r,folderHash:i,protocol:n}){return P.makeLocator(t,LAe({parentLocator:e,path:r,folderHash:i,protocol:n}))}async function cb(t,{protocol:e,fetchOptions:r,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(t.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(n,r),a=o.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await ve.releaseAfterUseAsync(async()=>await wi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function IL(t,{protocol:e,fetchOptions:r}){return(await cb(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var yL=class{supports(e,r){return!!e.reference.startsWith(Xr)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async fetchFromDisk(e,r){return cb(e,{protocol:Xr,fetchOptions:r})}};var b4e=2,wL=class{supportsDescriptor(e,r){return e.range.match(sh)?!0:!!e.range.startsWith(Xr)}supportsLocator(e,r){return!!e.reference.startsWith(Xr)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=mL(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await IL(P.makeLocator(e,P.makeRange({protocol:Xr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Xr,fetchOptions:i.fetchOptions}),a=Dn.makeHash(`${b4e}`,o).slice(0,6);return[EL(e,{parentLocator:s,path:n,folderHash:a,protocol:Xr})]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var BL=class{supports(e,r){return Km.test(e.reference)?!!e.reference.startsWith(Xr):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await ve.releaseAfterUseAsync(async()=>await wi.convertToZip(c,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var bL=class{supportsDescriptor(e,r){return Km.test(e.range)?!!(e.range.startsWith(Xr)||sh.test(e.range)):!1}supportsLocator(e,r){return Km.test(e.reference)?!!e.reference.startsWith(Xr):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range;return n.startsWith(Xr)&&(n=n.slice(Xr.length)),[P.makeLocator(e,`${Xr}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Q4e={fetchers:[BL,yL],resolvers:[bL,wL]},v4e=Q4e;var SL={};ft(SL,{default:()=>x4e});var TAe=ge(require("querystring")),OAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function MAe(t){return t?OAe.some(e=>!!t.match(e)):!1}function KAe(t){let e;for(let a of OAe)if(e=t.match(a),e)break;if(!e)throw new Error(S4e(t));let[,r,i,n,s="master"]=e,{commit:o}=TAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:r,username:i,reponame:n,treeish:s}}function S4e(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var vL=class{supports(e,r){return!!MAe(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await ir.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await K.mktempPromise(async n=>{let s=new _t(n);await wi.extractArchiveTo(i,s,{stripComponents:1});let o=Bu.splitRepoUrl(e.reference),a=x.join(n,"package.tgz");await Zt.prepareExternalProject(n,a,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let l=await K.readFilePromise(a);return await wi.convertToZip(l,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:i,username:n,reponame:s,treeish:o}=KAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var k4e={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let i=new vL;if(!i.supports(e,r))return null;try{return await i.fetch(e,r)}catch(n){return null}}}},x4e=k4e;var PL={};ft(PL,{default:()=>D4e});var Um=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,Hm=/^https?:/;var kL=class{supports(e,r){return Um.test(e.reference)?!!Hm.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await ir.get(e.reference,{configuration:r.project.configuration});return await wi.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var xL=class{supportsDescriptor(e,r){return Um.test(e.range)?!!Hm.test(e.range):!1}supportsLocator(e,r){return Um.test(e.reference)?!!Hm.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var P4e={fetchers:[kL],resolvers:[xL]},D4e=P4e;var NL={};ft(NL,{default:()=>Rze});var gle=ge(ule()),FL=ge(require("util")),Gm=class extends Le{constructor(){super(...arguments);this.private=W.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=W.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=W.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=W.Boolean("-2",!1,{hidden:!0});this.yes=W.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=W.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(e,r):await this.executeRegular(e)}async executeProxy(e,r){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new Pe("Cannot use the --install flag from within a project subdirectory");K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=x.join(this.context.cwd,e.get("lockfileFilename"));K.existsSync(i)||await K.writeFilePromise(i,"");let n=await this.cli.run(["set","version",r],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await K.mktempPromise(async o=>{let{code:a}=await Fr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Zt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let r=null;try{r=(await ze.find(e,this.context.cwd)).project}catch{r=null}K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=await At.tryFind(this.context.cwd)||new At,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:P.makeIdent(e.get("initScope"),x.basename(this.context.cwd)),i.packageManager=Kr&&ve.isTaggedYarnVersion(Kr)?`yarn@${Kr}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await K.mkdirPromise(x.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),FL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,FL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} -`);let o=x.join(this.context.cwd,At.fileName);await K.changeFilePromise(o,`${JSON.stringify(s,null,2)} -`,{automaticNewlines:!0});let a=x.join(this.context.cwd,"README.md");if(K.existsSync(a)||await K.writeFilePromise(a,`# ${P.stringifyIdent(i.name)} -`),!r||r.cwd===this.context.cwd){let c=x.join(this.context.cwd,Pt.lockfile);K.existsSync(c)||await K.writeFilePromise(c,"");let g=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(y=>`${y} -`).join(""),f=x.join(this.context.cwd,".gitignore");K.existsSync(f)||await K.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,gle.default)(h,e.get("initEditorConfig"));let p=`root = true -`;for(let[y,b]of Object.entries(h)){p+=` -[${y}] -`;for(let[S,k]of Object.entries(b))p+=`${S.replace(/[A-Z]/g,Y=>`_${Y.toLowerCase()}`)} = ${k} -`}let m=x.join(this.context.cwd,".editorconfig");K.existsSync(m)||await K.writeFilePromise(m,p),K.existsSync(x.join(this.context.cwd,".git"))||await Fr.execvp("git",["init"],{cwd:this.context.cwd})}}};Gm.paths=[["init"]],Gm.usage=Re.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var fle=Gm;var Dze={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:ye.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:ye.MAP,valueDefinition:{description:"",type:ye.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:ye.MAP,valueDefinition:{description:"",type:ye.ANY}}},commands:[fle]},Rze=Dze;var KL={};ft(KL,{default:()=>Nze});var EA="portal:",IA="link:";var LL=class{supports(e,r){return!!e.reference.startsWith(EA)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:EA});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:EA}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath),localPath:Ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,localPath:l}:{packageFs:new Ra(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot}}};var TL=class{supportsDescriptor(e,r){return!!e.range.startsWith(EA)}supportsLocator(e,r){return!!e.reference.startsWith(EA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(EA.length);return[P.makeLocator(e,`${EA}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await ve.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return ie(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var OL=class{supports(e,r){return!!e.reference.startsWith(IA)}getLocalPath(e,r){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:IA});if(x.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:x.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:IA}),s=x.isAbsolute(n)?{packageFs:new _t(Ke.root),prefixPath:Ke.dot,localPath:Ke.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,s.localPath),localPath:Ke.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Ra(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ke.dot,discardFromLookup:!0}}};var ML=class{supportsDescriptor(e,r){return!!e.range.startsWith(IA)}supportsLocator(e,r){return!!e.reference.startsWith(IA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(IA.length);return[P.makeLocator(e,`${IA}${H.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){return ie(N({},e),{version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var Fze={fetchers:[OL,LL],resolvers:[ML,TL]},Nze=Fze;var fT={};ft(fT,{default:()=>j5e});var Mn;(function(i){i[i.REGULAR=0]="REGULAR",i[i.WORKSPACE=1]="WORKSPACE",i[i.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(Mn||(Mn={}));var yA;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(yA||(yA={}));var UL=(t,e)=>`${t}@${e}`,hle=(t,e)=>{let r=e.indexOf("#"),i=r>=0?e.substring(r+1):e;return UL(t,i)},Io;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(Io||(Io={}));var dle=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||r>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:r,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Lze(t,s),l=!1,c=0;do l=HL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=jm(a);if(HL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${u}, next tree: -${jm(a)}`);let f=ple(a);if(f)throw new Error(`${f}, after hoisting finished: -${jm(a)}`)}return s.debugLevel>=2&&console.log(jm(a)),Tze(a)},Oze=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())r.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),r},Mze=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of t)u=g.dependencies.get(c.name),u&&r.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),r},Cle=(t,e)=>{if(e.decoupled)return e;let{name:r,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:m}=e,y={name:r,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(m)},b=y.dependencies.get(r);return b&&b.ident==y.ident&&y.dependencies.set(r,y),t.dependencies.set(y.name,y),y},Kze=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let n of t.dependencies.values())t.peerNames.has(n.name)||r.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!t.peerNames.has(s)){let a=r.get(s);a||(a=[],r.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return r},GL=t=>{let e=new Set,r=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!t.peerNames.has(s)){let o=t.dependencies.get(s);o&&!e.has(o)&&r(o,n)}e.add(i)}};for(let i of t.dependencies.values())t.peerNames.has(i.name)||r(i);return e},HL=(t,e,r,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=Hze(o),l=Kze(o,a),c=t==o?new Map:n.fastLookupPossible?Oze(e):Mze(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),p=new Map;do{let m=Uze(t,e,r,c,h,l,i,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,b]of l)b.length>1&&!o.dependencies.has(y)&&(h.delete(y),b.shift(),h.set(y,b[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!r.has(m.locator)){r.add(m.locator);let y=HL(t,[...e,m],r,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),r.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},Gze=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},jze=(t,e,r,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>Ni(y)).join("\u2192")}`);let h=r[r.length-1],m=!(i.ident===h.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!Gze(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=h.reasons.get(i.name))),m&&(m=!t.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Ni(t.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,b=n.get(i.name);if(y=!b||b.ident===i.ident,l&&!y&&(g=`- filled by: ${Ni(b.locator)} at ${u}`),y)for(let S=r.length-1;S>=1;S--){let T=r[S].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let Y=a.get(h);Y||(Y=new Set,a.set(h,Y)),Y.add(i.name),l&&(g=`- filled by ${Ni(T.locator)} at ${r.slice(0,S).map(j=>Ni(j.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Ni(o.get(i.name)[0])} at ${u}`)),m){let y=!0,b=new Set(i.peerNames);for(let S=r.length-1;S>=1;S--){let k=r[S];for(let T of b){if(k.peerNames.has(T)&&k.originalDependencies.has(T))continue;let Y=k.dependencies.get(T);Y&&t.dependencies.get(T)!==Y&&(S===r.length-1?f.add(Y):(f=null,y=!1,l&&(g=`- peer dependency ${Ni(Y.locator)} from parent ${Ni(k.locator)} was not hoisted to ${u}`))),b.delete(T)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let b=n.get(y.name)||t.dependencies.get(y.name);if(!b||y.ident!==b.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Ni(y.locator)}, available: ${Ni(b==null?void 0:b.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:m?0:1,reason:g}},ub=t=>`${t.name}@${t.locator}`,Uze=(t,e,r,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(b,S,k,T,Y)=>{if(u.has(T))return;let j=[...S,ub(T)],Z=[...k,ub(T)],J=new Map,re=new Map;for(let X of GL(T)){let O=jze(c,r,[c,...b,T],X,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(re.set(X,O),O.isHoistable===2)for(let L of O.dependsOn){let pe=J.get(L.name)||new Set;pe.add(X.name),J.set(L.name,pe)}}let ee=new Set,A=(X,O,L)=>{if(!ee.has(X)){ee.add(X),re.set(X,{isHoistable:1,reason:L});for(let pe of J.get(X.name)||[])A(T.dependencies.get(pe),O,l.debugLevel>=2?`- peer dependency ${Ni(X.locator)} from parent ${Ni(T.locator)} was not hoisted`:"")}};for(let[X,O]of re)O.isHoistable===1&&A(X,O,O.reason);let oe=!1;for(let X of re.keys())if(!ee.has(X)){f=!0;let O=o.get(T);O&&O.has(X.name)&&(g=!0),oe=!0,T.dependencies.delete(X.name),T.hoistedDependencies.set(X.name,X),T.reasons.delete(X.name);let L=c.dependencies.get(X.name);if(l.debugLevel>=2){let pe=Array.from(S).concat([T.locator]).map(Oe=>Ni(Oe)).join("\u2192"),Ce=c.hoistedFrom.get(X.name);Ce||(Ce=[],c.hoistedFrom.set(X.name,Ce)),Ce.push(pe),T.hoistedTo.set(X.name,Array.from(e).map(Oe=>Ni(Oe.locator)).join("\u2192"))}if(!L)c.ident!==X.ident&&(c.dependencies.set(X.name,X),Y.add(X));else for(let pe of X.references)L.references.add(pe)}if(T.dependencyKind===2&&oe&&(g=!0),l.check){let X=ple(t);if(X)throw new Error(`${X}, after hoisting dependencies of ${[c,...b,T].map(O=>Ni(O.locator)).join("\u2192")}: -${jm(t)}`)}let le=GL(T);for(let X of le)if(ee.has(X)){let O=re.get(X);if((n.get(X.name)===X.ident||!T.reasons.has(X.name))&&O.isHoistable!==0&&T.reasons.set(X.name,O.reason),!X.isHoistBorder&&Z.indexOf(ub(X))<0){u.add(T);let pe=Cle(T,X);h([...b,T],j,Z,pe,m),u.delete(T)}}},p,m=new Set(GL(c)),y=Array.from(e).map(b=>ub(b));do{p=m,m=new Set;for(let b of p){if(b.locator===c.locator||b.isHoistBorder)continue;let S=Cle(c,b);h([],Array.from(r),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},ple=t=>{let e=[],r=new Set,i=new Set,n=(s,o,a)=>{if(r.has(s)||(r.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>Ni(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,m=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(t,t.dependencies,t),e.join(` -`)},Lze=(t,e)=>{let{identName:r,name:i,reference:n,peerNames:s}=t,o={name:i,references:new Set([n]),locator:UL(r,n),ident:hle(r,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[t,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:m,peerNames:y,hoistPriority:b,dependencyKind:S}=c,k=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([m]),locator:UL(p,m),ident:hle(p,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:k?k.has(h):!1,hoistPriority:b||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=m=>{if(!h.has(m)){h.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of t.dependencies)l(c,o);return o},jL=t=>t.substring(0,t.indexOf("@",1)),Tze=t=>{let e={name:t.name,identName:jL(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),i=(n,s,o)=>{let a=r.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:jL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){r.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);r.delete(n)}};for(let n of t.dependencies.values())i(n,t,e);return e},Hze=t=>{let e=new Map,r=new Set([t]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!r.has(a);if(n(a).dependents.add(o.ident),!l){r.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||s(t,o);return e},Ni=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let i=t.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(r=`v:${r}`),n.startsWith("workspace")&&(r=`w:${r}`,n=""),`${r}${n?`@${n}`:""}`}else return`${r}`},mle=5e4,jm=t=>{let e=0,r=(n,s,o="")=>{if(e>mle||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+Ni(u.locator)+(g?` ${g}`:"")} -`,l+=r(u,s,`${o}${cmle?` -Tree is too large, part of the tree has been dunped -`:"")};var yo;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(yo||(yo={}));var Kn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Kn||(Kn={}));var Ele="node_modules",bu="$wsroot$";var Ym=(t,e)=>{let{packageTree:r,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=Yze(t,e),o=null;if(n.length===0){let a=dle(r,{hoistingLimits:i});o=qze(t,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},fa=t=>`${t.name}@${t.reference}`,YL=t=>{let e=new Map;for(let[r,i]of t.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},Ile=(t,e)=>{let r=P.isVirtualLocator(t)?P.devirtualizeLocator(t):t,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(r,i)},qL=(t,e,r,i)=>{if(t.linkType!==yo.SOFT)return!1;let n=H.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return x.contains(i,n)===null},Jze=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=H.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=t.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=fa(f);if(l.has(p))return;l.add(p);let m=t.getPackageInformation(f);if(m){let y=h?fa(h):"";if(fa(f)!==y&&m.linkType===yo.SOFT&&!qL(m,f,t,i)){let b=yle(m,f,t);(!a.get(b)||f.reference.startsWith("workspace:"))&&a.set(b,f)}for(let[b,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(b)||c(t.getLocator(b,S),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=t.getPackageInformation(f),m=H.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let b of m){let S=y.children.get(b);S||(S={children:new Map},y.children.set(b,S)),y=S}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=fa(h),m=n.get(p);m||(m=new Set,n.set(p,m)),m.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},Yze=(t,e)=>{let r=[],i=!1,n=new Map,s=Jze(t),o=t.getPackageInformation(t.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=t.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=H.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:Mn.WORKSPACE},u=new Map,g=(h,p)=>`${fa(p)}:${h}`,f=(h,p,m,y,b,S,k,T)=>{var X,O;let Y=g(h,m),j=u.get(Y),Z=!!j;!Z&&m.name===a.name&&m.reference===a.reference&&(j=c,u.set(Y,c));let J=qL(p,m,t,l);if(!j){let L=Mn.REGULAR;J?L=Mn.EXTERNAL_SOFT_LINK:p.linkType===yo.SOFT&&m.name.endsWith(bu)&&(L=Mn.WORKSPACE),j={name:h,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:L===Mn.WORKSPACE?new Set:p.packagePeers,dependencyKind:L},u.set(Y,j)}let re;if(J?re=2:b.linkType===yo.SOFT?re=1:re=0,j.hoistPriority=Math.max(j.hoistPriority||0,re),T&&!J){let L=fa({name:y.identName,reference:y.reference}),pe=n.get(L)||new Set;n.set(L,pe),pe.add(j.name)}let ee=new Map(p.packageDependencies);if(e.project){let L=e.project.workspacesByCwd.get(H.toPortablePath(p.packageLocation.slice(0,-1)));if(L){let pe=new Set([...Array.from(L.manifest.peerDependencies.values(),Ce=>P.stringifyIdent(Ce)),...Array.from(L.manifest.peerDependenciesMeta.keys())]);for(let Ce of pe)ee.has(Ce)||(ee.set(Ce,S.get(Ce)||null),j.peerNames.add(Ce))}}let A=fa({name:m.name.replace(bu,""),reference:m.reference}),oe=s.get(A);if(oe)for(let L of oe)ee.set(`${L.name}${bu}`,L.reference);(p!==b||p.linkType!==yo.SOFT||!J&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(k)))&&y.dependencies.add(j);let le=m!==a&&p.linkType===yo.SOFT&&!m.name.endsWith(bu)&&!J;if(!Z&&!le){let L=new Map;for(let[pe,Ce]of ee)if(Ce!==null){let Oe=t.getLocator(pe,Ce),te=t.getLocator(pe.replace(bu,""),Ce),se=t.getPackageInformation(te);if(se===null)throw new Error("Assertion failed: Expected the package to have been registered");let be=qL(se,Oe,t,l);if(e.validateExternalSoftLinks&&e.project&&be){se.packageDependencies.size>0&&(i=!0);for(let[Se,de]of se.packageDependencies)if(de!==null){let V=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Se}@${de}`);if(fa(V)!==fa(Oe)){let Qe=ee.get(Se);if(Qe){let ce=P.parseLocator(Array.isArray(Qe)?`${Qe[0]}@${Qe[1]}`:`${Se}@${Qe}`);Ile(ce,V)||r.push({messageName:$.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,ce)}`})}else{let ce=L.get(Se);if(ce){let fe=ce.target,gt=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Se}@${fe}`);Ile(gt,V)||r.push({messageName:$.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with dependency ${P.prettyLocator(e.project.configuration,gt)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(ce.portal.name))}`})}else L.set(Se,{target:V.reference,portal:Oe})}}}}let he=(X=e.hoistingLimitsByCwd)==null?void 0:X.get(k),Fe=be?k:x.relative(l,H.toPortablePath(se.packageLocation))||Ke.dot,Ue=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(Fe),xe=he===Kn.DEPENDENCIES||Ue===Kn.DEPENDENCIES||Ue===Kn.WORKSPACES;f(pe,se,Oe,j,p,ee,Fe,xe)}}};return f(a.name,o,a,c,o,o.packageDependencies,Ke.dot,!1),{packageTree:c,hoistingLimits:n,errors:r,preserveSymlinksRequired:i}};function yle(t,e,r){let i=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return H.toPortablePath(i||t.packageLocation)}function Wze(t,e,r){let i=e.getLocator(t.name.replace(bu,""),t.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return r.pnpifyFs?(o=H.toPortablePath(n.packageLocation),s=yo.SOFT):(o=yle(n,t,e),s=n.linkType),{linkType:s,target:o}}var qze=(t,e,r)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=Wze(u,t,r);return{locator:fa(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Jr(g),name:Jr(f)}:{scope:null,name:Jr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),m={name:h.identName,reference:p[0]},{name:y,scope:b}=s(h.name),S=b?[b,y]:[y],k=x.join(g,Ele),T=x.join(k,...S),Y=`${f}/${m.name}`,j=n(m,f,p.slice(1)),Z=!1;if(j.linkType===yo.SOFT&&r.project){let J=r.project.workspacesByCwd.get(j.target.slice(0,-1));Z=!!(J&&!J.manifest.name)}if(!h.name.endsWith(bu)&&!Z){let J=i.get(T);if(J){if(J.dirList)throw new Error(`Assertion failed: ${T} cannot merge dir node with leaf node`);{let oe=P.parseLocator(J.locator),le=P.parseLocator(j.locator);if(J.linkType!==j.linkType)throw new Error(`Assertion failed: ${T} cannot merge nodes with different link types ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/${P.stringifyLocator(le)}`);if(oe.identHash!==le.identHash)throw new Error(`Assertion failed: ${T} cannot merge nodes with different idents ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/s${P.stringifyLocator(le)}`);j.aliases=[...j.aliases,...J.aliases,P.parseLocator(J.locator).reference]}}i.set(T,j);let re=T.split("/"),ee=re.indexOf(Ele),A=re.length-1;for(;ee>=0&&A>ee;){let oe=H.toPortablePath(re.slice(0,A).join(x.sep)),le=Jr(re[A]),X=i.get(oe);if(!X)i.set(oe,{dirList:new Set([le])});else if(X.dirList){if(X.dirList.has(le))break;X.dirList.add(le)}A--}}a(h,j.linkType===yo.SOFT?j.target:T,Y)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var rT={};ft(rT,{PnpInstaller:()=>ah,PnpLinker:()=>vu,default:()=>C5e,getPnpPath:()=>Dl,jsInstallUtils:()=>ha,pnpUtils:()=>eT,quotePathIfNeeded:()=>qle});var jle=ge(ri()),Yle=ge(require("url"));var wle;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(wle||(wle={}));var er;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(er||(er={}));var Ble={[er.DEFAULT]:{collapsed:!1,next:{["*"]:er.DEFAULT}},[er.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:er.FALLBACK_EXCLUSION_LIST,packageRegistryData:er.PACKAGE_REGISTRY_DATA,["*"]:er.DEFAULT}},[er.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:er.FALLBACK_EXCLUSION_ENTRIES}},[er.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:er.FALLBACK_EXCLUSION_DATA}},[er.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:er.DEFAULT}},[er.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_REGISTRY_ENTRIES}},[er.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_STORE_DATA}},[er.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_STORE_ENTRIES}},[er.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_INFORMATION_DATA}},[er.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:er.PACKAGE_DEPENDENCIES,["*"]:er.DEFAULT}},[er.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:er.PACKAGE_DEPENDENCY}},[er.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:er.DEFAULT}}};function zze(t,e,r){let i="";i+="[";for(let n=0,s=t.length;ns(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function Zze(t){let e=new Map,r=qm(t.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of r){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function $ze(t){return qm(t.fallbackPool||[],([e])=>e)}function e5e(t){let e=[];for(let[r,i]of qm(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([r,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of qm(i,([g])=>g===null?"0":`1${g}`)){let g=[];r!==null&&s!==null&&!a.has(r)&&g.push([r,s]);for(let[p,m]of qm(a.entries(),([y])=>y))g.push([p,m]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function Jm(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:Zze(t),fallbackPool:$ze(t),packageRegistryData:e5e(t)}}var kle=ge(Sle());function xle(t,e){return[t?`${t} -`:"",`/* eslint-disable */ - -`,`try { -`,` Object.freeze({}).detectStrictMode = true; -`,`} catch (error) { -`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} -`,` -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,e.replace(/^/gm," "),`} -`,` -`,(0,kle.default)()].join("")}function t5e(t){return JSON.stringify(t,null,2)}function r5e(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function i5e(t){return[`return hydrateRuntimeState(JSON.parse(${r5e(Qle(t))}), {basePath: basePath || __dirname}); -`].join("")}function n5e(t){return[`var path = require('path'); -`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(t)}); -`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function Ple(t){let e=Jm(t),r=i5e(e);return xle(t.shebang,r)}function Dle(t){let e=Jm(t),r=n5e(t.dataLocation),i=xle(t.shebang,r);return{dataFile:t5e(e),loaderFile:i}}var Nle=ge(require("fs")),c5e=ge(require("path")),Lle=ge(require("util"));function WL(t,{basePath:e}){let r=H.toPortablePath(e),i=x.resolve(r),n=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,s=new Map,o=new Map(t.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var k;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(k=p.discardFromLookup)!=null?k:!1,y={name:g,reference:h},b=s.get(p.packageLocation);b?(b.discardFromLookup=b.discardFromLookup&&m,m||(b.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:m,get packageLocation(){return S||(S=x.join(i,p.packageLocation))}}]}))])),a=new Map(t.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(t.fallbackPool),c=t.dependencyTreeRoots,u=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var Wm=ge(require("module"));function oh(t,e){if(typeof t=="string")return t;if(t){let r,i;if(Array.isArray(t)){for(r=0;r0)return(f=oh(n[g],u))?f.replace("*",c.substring(g.length-1)):Qu(i,c,1)}return Qu(i,c)}}var zL=ge(require("util"));var ur;(function(c){c.API_ERROR="API_ERROR",c.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",c.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",c.MISSING_DEPENDENCY="MISSING_DEPENDENCY",c.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",c.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",c.INTERNAL="INTERNAL",c.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",c.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var o5e=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ai(t,e,r={},i){i!=null||(i=o5e.has(t)?"MODULE_NOT_FOUND":t);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:ie(N({},n),{value:i}),pnpCode:ie(N({},n),{value:t}),data:ie(N({},n),{value:r})})}function wo(t){return H.normalize(H.fromPortablePath(t))}var a5e=ge(require("fs")),Fle=ge(require("module")),A5e=ge(require("path")),l5e=new Set(Fle.Module.builtinModules||Object.keys(process.binding("natives"))),fb=t=>t.startsWith("node:")||l5e.has(t);function _L(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(t.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let te of["react-scripts","gatsby"]){let se=t.packageRegistry.get(te);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:te,reference:be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=t;function p(te,se){return{fn:te,args:se,error:null,result:null}}function m(te){var Ue,xe,Se,de,V,Qe;let se=(Se=(xe=(Ue=process.stderr)==null?void 0:Ue.hasColors)==null?void 0:xe.call(Ue))!=null?Se:process.stdout.isTTY,be=(ce,fe)=>`[${ce}m${fe}`,he=te.error;console.error(he?be("31;1",`\u2716 ${(de=te.error)==null?void 0:de.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),te.args.length>0&&console.error();for(let ce of te.args)console.error(` ${be("37;1","In \u2190")} ${(0,zL.inspect)(ce,{colors:se,compact:!0})}`);te.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,zL.inspect)(te.result,{colors:se,compact:!0})}`));let Fe=(Qe=(V=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:V.slice(2))!=null?Qe:[];if(Fe.length>0){console.error();for(let ce of Fe)console.error(` ${be("38;5;244",ce)}`)}console.error()}function y(te,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let he=p(te,be);try{return he.result=se(...be)}catch(Fe){throw he.error=Fe}finally{m(he)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(he){let Fe=p(te,be);throw Fe.error=he,m(Fe),he}}}return se}function b(te){let se=A(te);if(!se)throw ai(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function S(te){if(te.name===null)return!0;for(let se of t.dependencyTreeRoots)if(se.name===te.name&&se.reference===te.reference)return!0;return!1}let k=new Set(["default","node","require"]);function T(te,se=k){let be=X(x.join(te,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ai(ur.INTERNAL,`The locator that owns the "${te}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:he}=b(be),Fe=x.join(he,Pt.manifest);if(!e.fakeFs.existsSync(Fe))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(Fe,"utf8")),xe=x.contains(he,te);if(xe===null)throw ai(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");a.test(xe)||(xe=`./${xe}`);let Se;try{Se=Rle(Ue,x.normalize(xe),{conditions:se,unsafe:!0})}catch(de){throw ai(ur.EXPORTS_RESOLUTION_FAILED,de.message,{unqualifiedPath:wo(te),locator:be,pkgJson:Ue,subpath:wo(xe),conditions:se},"ERR_PACKAGE_PATH_NOT_EXPORTED")}return typeof Se=="string"?x.join(he,Se):null}function Y(te,se,{extensions:be}){let he;try{se.push(te),he=e.fakeFs.statSync(te)}catch(Fe){}if(he&&!he.isDirectory())return e.fakeFs.realpathSync(te);if(he&&he.isDirectory()){let Fe;try{Fe=JSON.parse(e.fakeFs.readFileSync(x.join(te,Pt.manifest),"utf8"))}catch(xe){}let Ue;if(Fe&&Fe.main&&(Ue=x.resolve(te,Fe.main)),Ue&&Ue!==te){let xe=Y(Ue,se,{extensions:be});if(xe!==null)return xe}}for(let Fe=0,Ue=be.length;Fe{let Se=JSON.stringify(xe.name);if(he.has(Se))return;he.add(Se);let de=oe(xe);for(let V of de)if(b(V).packagePeers.has(te))Fe(V);else{let ce=be.get(V.name);typeof ce=="undefined"&&be.set(V.name,ce=new Set),ce.add(V.reference)}};Fe(se);let Ue=[];for(let xe of[...be.keys()].sort())for(let Se of[...be.get(xe)].sort())Ue.push({name:xe,reference:Se});return Ue}function X(te,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(J(te)&&!se)return null;let he=x.relative(t.basePath,te);he.match(s)||(he=`./${he}`),he.endsWith("/")||(he=`${he}/`);do{let Fe=h.get(he);if(typeof Fe=="undefined"||Fe.discardFromLookup&&!be){he=he.substring(0,he.lastIndexOf("/",he.length-2)+1);continue}return Fe.locator}while(he!=="");return null}function O(te,se,{considerBuiltins:be=!0}={}){if(te==="pnpapi")return H.toPortablePath(e.pnpapiResolution);if(be&&fb(te))return null;let he=wo(te),Fe=se&&wo(se);if(se&&J(se)&&(!x.isAbsolute(te)||X(te)===null)){let Se=Z(te,se);if(Se===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${he}" -Required by: ${Fe} -`,{request:he,issuer:Fe});return H.toPortablePath(Se)}let Ue,xe=te.match(n);if(xe){if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let[,Se,de]=xe,V=X(se);if(!V){let Gt=Z(te,se);if(Gt===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${he}" -Required by: ${Fe} -`,{request:he,issuer:Fe});return H.toPortablePath(Gt)}let ce=b(V).packageDependencies.get(Se),fe=null;if(ce==null&&V.name!==null){let Gt=t.fallbackExclusionList.get(V.name);if(!Gt||!Gt.has(V.reference)){for(let Ti=0,Vs=c.length;TiS(Qr))?gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -${Gt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} -`).join("")} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se,brokenAncestors:Gt}):gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) - -${Gt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} -`).join("")} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se,brokenAncestors:Gt})}else ce===void 0&&(!be&&fb(te)?S(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,dependencyName:Se}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in ${V.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se}):S(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${Se}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,dependencyName:Se}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${Se}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${Se}${Se!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:Se}));if(ce==null){if(fe===null||gt===null)throw gt||new Error("Assertion failed: Expected an error to have been set");ce=fe;let Gt=gt.message.replace(/\n.*/g,"");gt.message=Gt,!u.has(Gt)&&i!==0&&(u.add(Gt),process.emitWarning(gt))}let Ht=Array.isArray(ce)?{name:ce[0],reference:ce[1]}:{name:Se,reference:ce},Mt=b(Ht);if(!Mt.packageLocation)throw ai(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${Ht.name}@${Ht.reference}${Ht.name!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -`,{request:he,issuer:Fe,dependencyLocator:Object.assign({},Ht)});let mi=Mt.packageLocation;de?Ue=x.join(mi,de):Ue=mi}else if(x.isAbsolute(te))Ue=x.normalize(te);else{if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let Se=x.resolve(se);se.match(o)?Ue=x.normalize(x.join(Se,te)):Ue=x.normalize(x.join(x.dirname(Se),te))}return x.normalize(Ue)}function L(te,se,be=k){if(s.test(te))return se;let he=T(se,be);return he?x.normalize(he):se}function pe(te,{extensions:se=Object.keys(Wm.Module._extensions)}={}){var Fe,Ue;let be=[],he=Y(te,be,{extensions:se});if(he)return x.normalize(he);{let xe=wo(te),Se=X(te);if(Se){let{packageLocation:de}=b(Se),V=!0;try{e.fakeFs.accessSync(de)}catch(Qe){if((Qe==null?void 0:Qe.code)==="ENOENT")V=!1;else{let ce=((Ue=(Fe=Qe==null?void 0:Qe.message)!=null?Fe:Qe)!=null?Ue:"empty exception thrown").replace(/^[A-Z]/,fe=>fe.toLowerCase());throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Required package exists but could not be accessed (${ce}). - -Missing package: ${Se.name}@${Se.reference} -Expected package location: ${wo(de)} -`,{unqualifiedPath:xe,extensions:se})}}if(!V){let Qe=de.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${Qe} - -Missing package: ${Se.name}@${Se.reference} -Expected package location: ${wo(de)} -`,{unqualifiedPath:xe,extensions:se})}}throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${xe} -${be.map(de=>`Not found: ${wo(de)} -`).join("")}`,{unqualifiedPath:xe,extensions:se})}}function Ce(te,se,{considerBuiltins:be,extensions:he,conditions:Fe}={}){try{let Ue=O(te,se,{considerBuiltins:be});if(te==="pnpapi")return Ue;if(Ue===null)return null;let xe=()=>se!==null?J(se):!1,Se=(!be||!fb(te))&&!xe()?L(te,Ue,Fe):Ue;return pe(Se,{extensions:he})}catch(Ue){throw Object.prototype.hasOwnProperty.call(Ue,"pnpCode")&&Object.assign(Ue.data,{request:wo(te),issuer:se&&wo(se)}),Ue}}function Oe(te){let se=x.normalize(te),be=Wr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:re,topLevel:ee,getLocator:(te,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:te,reference:se},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let te=[];for(let[se,be]of f)for(let he of be.keys())se!==null&&he!==null&&te.push({name:se,reference:he});return te},getPackageInformation:te=>{let se=A(te);if(se===null)return null;let be=H.fromPortablePath(se.packageLocation);return ie(N({},se),{packageLocation:be})},findPackageLocator:te=>X(H.toPortablePath(te)),resolveToUnqualified:y("resolveToUnqualified",(te,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=O(H.toPortablePath(te),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveUnqualified:y("resolveUnqualified",(te,se)=>H.fromPortablePath(pe(H.toPortablePath(te),se))),resolveRequest:y("resolveRequest",(te,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=Ce(H.toPortablePath(te),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveVirtual:y("resolveVirtual",te=>{let se=Oe(H.toPortablePath(te));return se!==null?H.fromPortablePath(se):null})}}var YQt=(0,Lle.promisify)(Nle.readFile);var Tle=(t,e,r)=>{let i=Jm(t),n=WL(i,{basePath:e}),s=H.join(e,Pt.pnpCjs);return _L(n,{fakeFs:r,pnpapiResolution:s})};var XL=ge(Mle());var ha={};ft(ha,{checkAndReportManifestCompatibility:()=>Ule,checkManifestCompatibility:()=>Kle,extractBuildScripts:()=>hb,getExtractHint:()=>ZL,hasBindingGyp:()=>$L});function Kle(t){return P.isPackageCompatible(t,Wg.getArchitectureSet())}function Ule(t,e,{configuration:r,report:i}){return Kle(t)?!0:(i==null||i.reportWarningOnce($.INCOMPATIBLE_ARCHITECTURE,`${P.prettyLocator(r,t)} The ${Wg.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function hb(t,e,r,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([ls.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([ls.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:t.linkType!==Qt.HARD?(n==null||n.reportWarningOnce($.SOFT_LINK_BUILD,`${P.prettyLocator(i,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(n==null||n.reportInfoOnce($.BUILD_DISABLED,`${P.prettyLocator(i,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!r.built?(n==null||n.reportWarningOnce($.DISABLED_BUILD_SCRIPTS,`${P.prettyLocator(i,t)} lists build scripts, but all build scripts have been disabled.`),[]):Ule(t,"build",{configuration:i,report:n})?s:[]}var u5e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function ZL(t){return t.packageFs.getExtractHint({relevantExtensions:u5e})}function $L(t){let e=x.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var eT={};ft(eT,{getUnpluggedPath:()=>zm});function zm(t,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(t))}var g5e=new Set([P.makeIdent(null,"nan").identHash,P.makeIdent(null,"node-gyp").identHash,P.makeIdent(null,"node-pre-gyp").identHash,P.makeIdent(null,"node-addon-api").identHash,P.makeIdent(null,"fsevents").identHash]),vu=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Dl(r.project).cjs;if(!K.existsSync(i))throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=ve.getFactoryWithDefault(this.pnpCache,i,()=>ve.dynamicRequire(i,{cachingStrategy:ve.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return H.toPortablePath(o.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=Dl(r.project).cjs;if(!K.existsSync(i))return null;let s=ve.getFactoryWithDefault(this.pnpCache,i,()=>ve.dynamicRequire(i,{cachingStrategy:ve.CachingStrategy.FsTime})).findPackageLocator(H.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new ah(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},ah=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new ve.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!==Qt.SOFT,g,f;if(c||u){let k=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(k.locatorHash),typeof g=="undefined"&&(g=await f5e(r),e.linkType===Qt.HARD&&this.customData.store.set(k.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(k,e.version)}let h=c?hb(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,r,f,i):r.packageFs;if(x.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let m=x.resolve(p.getRealPath(),r.prefixPath),y=tT(this.opts.project.cwd,m),b=new Map,S=new Set;if(a){for(let k of e.peerDependencies.values())b.set(P.stringifyIdent(k),null),S.add(P.stringifyIdent(k));if(!o){let k=P.devirtualizeLocator(e);this.virtualTemplates.set(k.locatorHash,{location:tT(this.opts.project.cwd,Wr.resolveVirtual(m)),locator:k})}}return ve.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:b,packagePeers:S,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:m,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,r){let i=this.getPackageInformation(e);for(let[n,s]of r){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,r){for(let i of r)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Dl(this.opts.project);if(K.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning($.UNNAMED,`Removing the old ${Ae.pretty(this.opts.project.configuration,Pt.pnpJs,Ae.Type.PATH)} file. You might need to manually update existing references to reference the new ${Ae.pretty(this.opts.project.configuration,Pt.pnpCjs,Ae.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${Ae.pretty(this.opts.project.configuration,"yarn sdks",Ae.Type.CODE)}.`),await K.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await K.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await K.removePromise(e.cjs),await K.removePromise(this.opts.project.configuration.get("pnpDataPath")),await K.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())ve.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=r!=="none",s=[],o=new Map,a=ve.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=Dl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning($.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await K.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=Ple(e);await K.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await K.removePromise(i)}else{let o=x.relative(x.dirname(r.cjs),i),{dataFile:a,loaderFile:l}=Dle(ie(N({},e),{dataLocation:o}));await K.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await K.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning($.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await K.changeFilePromise(r.esmLoader,(0,XL.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await K.removePromise(s);else for(let o of await K.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await K.removePromise(a)}}async locateNodeModules(e){let r=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,"node_modules");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!K.existsSync(s))continue;let o=await K.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)r.push(s);else for(let l of a)r.push(x.join(s,l.name))}return r}async unplugPackageIfNeeded(e,r,i,n,s){return this.shouldBeUnplugged(e,r,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,r,i){return typeof i.unplugged!="undefined"?i.unplugged:g5e.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(hb(e,r,i,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r,i){let n=zm(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Da(n,{baseFs:r.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,r.prefixPath,".ready");await K.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,Ke.dot,{baseFs:r.packageFs,overwrite:!1}),await K.writeFilePromise(s,""))})),new _t(n))}getPackageInformation(e){let r=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(r);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let r=ve.getMapWithDefault(this.packageRegistry,"@@disk"),i=tT(this.opts.project.cwd,e);return ve.getFactoryWithDefault(r,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1}))}};function tT(t,e){let r=x.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function f5e(t){var i;let e=(i=await At.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?i:new At,r=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())r.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:ZL(t),hasBindingGyp:$L(t)}}}var Hle=ge(rs());var _m=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new Pe("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=P.parseDescriptor(f),p=h.range!=="unknown"?h:P.makeDescriptor(h,"*");if(!Wt.validRange(p.range))throw new Pe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(e,p)})`);return m=>{let y=P.stringifyIdent(m);return!Hle.default.isMatch(y,P.stringifyIdent(p))||m.version&&!Wt.satisfiesWithPrereleases(m.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of r.storedPackages.values())!r.tryWorkspaceByLocator(h)&&!P.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],m=(y,b)=>{if(!h.has(y.locatorHash)&&(h.add(y.locatorHash),!r.tryWorkspaceByLocator(y)&&o.some(S=>S(y))&&p.push(y),!(b>0&&!this.recursive)))for(let S of y.dependencies.values()){let k=r.storedResolutions.get(S.descriptorHash);if(!k)throw new Error("Assertion failed: The resolution should have been registered");let T=r.storedPackages.get(k);if(!T)throw new Error("Assertion failed: The package should have been registered");m(T,b+1)}};for(let y of f){let b=r.storedPackages.get(y.anchoredLocator.locatorHash);if(!b)throw new Error("Assertion failed: The package should have been registered");m(b,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(r.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new Pe(`Patterns ${Ae.prettyList(e,s,Ae.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new Pe(`Pattern ${Ae.prettyList(e,s,Ae.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=ve.sortMap(c,f=>P.stringifyLocator(f)),(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let m=(h=p.version)!=null?h:"unknown",y=r.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(p,m));y.unplugged=!0,f.reportInfo($.UNNAMED,`Will unpack ${P.prettyLocator(e,p)} to ${Ae.pretty(e,zm(p,{configuration:e}),Ae.Type.PATH)}`),f.reportJson({locator:P.stringifyLocator(p),version:m})}await r.topLevelWorkspace.persistManifest(),f.reportSeparator(),await r.install({cache:n,report:f})})).exitCode()}};_m.paths=[["unplug"]],_m.usage=Re.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Gle=_m;var Dl=t=>({cjs:x.join(t.cwd,Pt.pnpCjs),cjsLegacy:x.join(t.cwd,Pt.pnpJs),esmLoader:x.join(t.cwd,".pnp.loader.mjs")}),qle=t=>/\s/.test(t)?JSON.stringify(t):t;async function h5e(t,e,r){let i=Dl(t),n=`--require ${qle(H.fromPortablePath(i.cjs))}`;if(K.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,Yle.pathToFileURL)(H.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&jle.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(K.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function p5e(t,e){let r=Dl(t);e(r.cjs),e(r.esmLoader),e(t.configuration.get("pnpDataPath")),e(t.configuration.get("pnpUnpluggedFolder"))}var d5e={hooks:{populateYarnPaths:p5e,setupScriptEnvironment:h5e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:ye.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:ye.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:ye.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:ye.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:ye.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:ye.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:ye.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:ye.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:ye.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[vu],commands:[Gle]},C5e=d5e;var Xle=ge(Vle());var aT=ge(require("crypto")),Zle=ge(require("fs")),$le=1,Gr="node_modules",pb=".bin",ece=".yarn-state.yml",Li;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Li||(Li={}));var AT=class{constructor(){this.installStateCache=new Map}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=r.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await ve.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lT(r.project,{unrollAliases:!0}));if(n===null)throw new Pe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let a=new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=r.project.configuration.startingCwd;return s.locations.find(a=>x.contains(o,a))||s.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=await ve.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await lT(r.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=db(x.resolve(e),{skipPrefix:r.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new tce(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},tce=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r){var u;let i=x.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await N5e(e,r),e.linkType===Qt.HARD&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${H.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=r.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,r){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of r){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Wr({baseFs:new Es({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),r=await lT(this.opts.project),i=this.opts.project.configuration.get("nmMode");(r===null||i!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=ve.validateEnum(Kn,(m=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?m:h)}catch(y){let b=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning($.INVALID_MANIFEST,`${b}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Kn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(m=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?m:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(H.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>H.fromPortablePath(Wr.resolveVirtual(H.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=Ym(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=YL(a);await L5e(r,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(rce(f))continue;let p=P.parseLocator(f),m=this.localStore.get(p.locatorHash);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=ha.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning($.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${Ae.pretty(this.opts.project.configuration,"--preserve-symlinks",Ae.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function N5e(t,e){var n;let r=(n=await At.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new At,i=new Set(["preinstall","install","postinstall"]);for(let s of r.scripts.keys())i.has(s)||r.scripts.delete(s);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{extractHint:ha.getExtractHint(e),hasBindingGyp:ha.hasBindingGyp(e)}}}async function T5e(t,e,r,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,s+=`# cause your node_modules installation to become invalidated. -`,s+=` -`,s+=`__metadata: -`,s+=` version: ${$le} -`,s+=` nmMode: ${i.value} -`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` -`,s+=`${JSON.stringify(u)}: -`,s+=` locations: -`;for(let f of g.locations){let h=x.contains(t.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)} -`}if(g.aliases.length>0){s+=` aliases: -`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)} -`}if(u===a&&r.size>0){s+=` bin: -`;for(let[f,h]of r){let p=x.contains(t.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}: -`;for(let[m,y]of h){let b=x.relative(x.join(f,Gr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(b)} -`}}}}let l=t.cwd,c=x.join(l,Gr,ece);n&&await K.removePromise(c),await K.changeFilePromise(c,s,{automaticNewlines:!0})}async function lT(t,{unrollAliases:e=!1}={}){let r=t.cwd,i=x.join(r,Gr,ece),n;try{n=await K.statPromise(i)}catch(c){}if(!n)return null;let s=Qi(await K.readFilePromise(i,"utf8"));if(s.__metadata.version>$le)return null;let o=s.__metadata.nmMode||Li.CLASSIC,a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(r,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let m=x.join(r,H.toPortablePath(h)),y=ve.getMapWithDefault(l,m);for(let[b,S]of Object.entries(p))y.set(Jr(b),H.toPortablePath([m,Gr,S].join(x.sep)))}if(a.set(c,{target:Ke.dot,linkType:Qt.HARD,locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,m),h),b=P.stringifyLocator(y);a.set(b,{target:Ke.dot,linkType:Qt.HARD,locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:ice(a,{skipPrefix:t.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var lh=async(t,e)=>{if(t.split(x.sep).indexOf(Gr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let i=e.allowSymlink?await K.statPromise(t):await K.lstatPromise(t);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await K.unlinkPromise(t);return}}let r=await K.readdirPromise(t,{withFileTypes:!0});for(let i of r){let n=x.join(t,Jr(i.name));i.isDirectory()?(i.name!==Gr||e&&e.innerLoop)&&await lh(n,{innerLoop:!0,contentsOnly:!1}):await K.unlinkPromise(n)}e.contentsOnly||await K.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},nce=4,db=(t,{skipPrefix:e})=>{let r=x.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let i=r.split(x.sep).filter(l=>l!==""),n=i.indexOf(Gr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},ice=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let i=()=>({children:new Map,linkType:Qt.HARD});for(let[n,s]of t.entries()){if(s.linkType===Qt.SOFT&&x.contains(e,s.target)!==null){let a=ve.getFactoryWithDefault(r,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=db(o,{skipPrefix:e}),c=ve.getFactoryWithDefault(r,a,i);for(let u=0;u{let r;try{process.platform==="win32"&&(r=await K.lstatPromise(t))}catch(i){}process.platform=="win32"&&(!r||r.isDirectory())?await K.symlinkPromise(t,e,"junction"):await K.symlinkPromise(x.relative(x.dirname(e),t),e)};async function sce(t,e,r){let i=x.join(t,Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));try{await K.writeFilePromise(i,r);try{await K.linkPromise(i,e)}catch(n){}}finally{await K.unlinkPromise(i)}}async function O5e({srcPath:t,dstPath:e,srcMode:r,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Li.HARDLINKS_GLOBAL&&i&&o){let l=x.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await Dn.checksumFile(l,{baseFs:K,algorithm:"sha1"})!==o){let g=x.join(i,Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));await K.renamePromise(l,g);let f=await n.readFilePromise(t);await K.writeFilePromise(g,f);try{await K.linkPromise(g,l),await K.unlinkPromise(g)}catch(h){}}await K.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(t);await sce(i,l,u);try{await K.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Li.HARDLINKS_LOCAL,await n.copyFilePromise(t,e))}}}else await n.copyFilePromise(t,e);let a=r&511;a!==420&&await K.chmodPromise(e,a)}var Rl;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(Rl||(Rl={}));var M5e=async(t,e,{baseFs:r,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await K.mkdirPromise(t,{recursive:!0});let o=async(l=Ke.dot)=>{let c=x.join(e,l),u=await r.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=x.join(l,f.name),p,m=x.join(c,f.name);if(f.isFile()){if(p={kind:Rl.FILE,mode:(await r.lstatPromise(m)).mode},n.value===Li.HARDLINKS_GLOBAL){let y=await Dn.checksumFile(m,{baseFs:r,algorithm:"sha1"});p.digest=y}}else if(f.isDirectory())p={kind:Rl.DIRECTORY};else if(f.isSymbolicLink())p={kind:Rl.SYMLINK,symlinkTo:await r.readlinkPromise(m)};else throw new Error(`Unsupported file type (file: ${m}, mode: 0o${await r.statSync(m).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==Gr){let y=await o(h);for(let[b,S]of y)g.set(b,S)}}return g},a;if(n.value===Li.HARDLINKS_GLOBAL&&i&&s){let l=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await K.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await sce(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=x.join(e,l),g=x.join(t,l);c.kind===Rl.DIRECTORY?await K.mkdirPromise(g,{recursive:!0}):c.kind===Rl.FILE?await O5e({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:r,globalHardlinksStore:i}):c.kind===Rl.SYMLINK&&await cT(x.resolve(x.dirname(g),c.symlinkTo),g)}};function K5e(t,e,r,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,m=x.join(c,u),y=new Set;if(u===Gr||u.startsWith("@")){let S;try{S=K.statSync(m)}catch(T){}p=!!S,S?S.mtimeMs>r?(a=!0,y=new Set(K.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let k=e.get(c);if(k){let T=x.join(c,Gr,pb),Y;try{Y=K.statSync(T)}catch(j){}if(!Y)a=!0;else if(Y.mtimeMs>r){a=!0;let j=new Set(K.readdirSync(T)),Z=new Map;s.set(c,Z);for(let[J,re]of k)j.has(J)&&Z.set(J,re)}else s.set(c,k)}}else p=h.has(u);let b=g.children.get(u);if(p){let{linkType:S,locator:k}=b,T={children:new Map,linkType:S,locator:k};if(f.children.set(u,T),k){let Y=ve.getSetWithDefault(o,k);Y.add(m),o.set(k,Y)}for(let Y of b.children.keys())l(m,Y,b,T,y)}else b.locator&&i.storedBuildState.delete(P.parseLocator(b.locator).locatorHash)};for(let[c,u]of t){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=ve.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(Gr)&&l(c,Gr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function rce(t){let e=P.parseDescriptor(t);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function U5e(t,e,r,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of t){let c=rce(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==""&&K.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(r,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let m=x.join(a,H.toPortablePath(p));u.set(Jr(h),m)}for(let[h,p]of c.children){let m=x.join(a,h),y=o(m,m,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[m,y]of p)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var oce=(t,e)=>{if(!t||!e)return t===e;let r=P.parseLocator(t);P.isVirtualLocator(r)&&(r=P.devirtualizeLocator(r));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(r,i)};function uT(t){return x.join(t.get("globalFolder"),"store")}async function L5e(t,e,{baseFs:r,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,Gr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=K5e(t.locationTree,t.binSymlinks,t.mtimeMs,i),f=ice(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:J,dstDir:re,linkType:ee,globalHardlinksStore:A,nmMode:oe,packageChecksum:le})=>{let X=(async()=>{try{ee===Qt.SOFT?(await K.mkdirPromise(x.dirname(re),{recursive:!0}),await cT(x.resolve(J),re)):await M5e(re,J,{baseFs:r,globalHardlinksStore:A,nmMode:oe,packageChecksum:le})}catch(O){throw O.message=`While persisting ${J} -> ${re} ${O.message}`,O}finally{T.tick()}})().then(()=>h.splice(h.indexOf(X),1));h.push(X),h.length>nce&&await Promise.race(h)},m=async(J,re,ee)=>{let A=(async()=>{let oe=async(le,X,O)=>{try{O.innerLoop||await K.mkdirPromise(X,{recursive:!0});let L=await K.readdirPromise(le,{withFileTypes:!0});for(let pe of L){if(!O.innerLoop&&pe.name===pb)continue;let Ce=x.join(le,pe.name),Oe=x.join(X,pe.name);pe.isDirectory()?(pe.name!==Gr||O&&O.innerLoop)&&(await K.mkdirPromise(Oe,{recursive:!0}),await oe(Ce,Oe,ie(N({},O),{innerLoop:!0}))):Z.value===Li.HARDLINKS_LOCAL||Z.value===Li.HARDLINKS_GLOBAL?await K.linkPromise(Ce,Oe):await K.copyFilePromise(Ce,Oe,Zle.default.constants.COPYFILE_FICLONE)}}catch(L){throw O.innerLoop||(L.message=`While cloning ${le} -> ${X} ${L.message}`),L}finally{O.innerLoop||T.tick()}};await oe(J,re,ee)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>nce&&await Promise.race(h)},y=async(J,re,ee)=>{if(ee)for(let[A,oe]of re.children){let le=ee.children.get(A);await y(x.join(J,A),oe,le)}else{re.children.has(Gr)&&await lh(x.join(J,Gr),{contentsOnly:!1});let A=x.basename(J)===Gr&&f.has(x.join(x.dirname(J),x.sep));await lh(J,{contentsOnly:J===a,allowSymlink:A})}};for(let[J,re]of l){let ee=f.get(J);for(let[A,oe]of re.children){if(A===".")continue;let le=ee&&ee.children.get(A),X=x.join(J,A);await y(X,oe,le)}}let b=async(J,re,ee)=>{if(ee){oce(re.locator,ee.locator)||await lh(J,{contentsOnly:re.linkType===Qt.HARD});for(let[A,oe]of re.children){let le=ee.children.get(A);await b(x.join(J,A),oe,le)}}else{re.children.has(Gr)&&await lh(x.join(J,Gr),{contentsOnly:!0});let A=x.basename(J)===Gr&&f.has(x.join(x.dirname(J),x.sep));await lh(J,{contentsOnly:re.linkType===Qt.HARD,allowSymlink:A})}};for(let[J,re]of f){let ee=l.get(J);for(let[A,oe]of re.children){if(A===".")continue;let le=ee&&ee.children.get(A);await b(x.join(J,A),oe,le)}}let S=new Map,k=[];for(let[J,re]of u)for(let ee of re){let{locationRoot:A,segments:oe}=db(ee,{skipPrefix:i.cwd}),le=f.get(A),X=A;if(le){for(let O of oe)if(X=x.join(X,O),le=le.children.get(O),!le)break;if(le){let O=oce(le.locator,J),L=e.get(le.locator),pe=L.target,Ce=X,Oe=L.linkType;if(O)S.has(pe)||S.set(pe,Ce);else if(pe!==Ce){let te=P.parseLocator(le.locator);P.isVirtualLocator(te)&&(te=P.devirtualizeLocator(te)),k.push({srcDir:pe,dstDir:Ce,linkType:Oe,realLocatorHash:te.locatorHash})}}}}for(let[J,{locations:re}]of e.entries())for(let ee of re){let{locationRoot:A,segments:oe}=db(ee,{skipPrefix:i.cwd}),le=l.get(A),X=f.get(A),O=A,L=e.get(J),pe=P.parseLocator(J);P.isVirtualLocator(pe)&&(pe=P.devirtualizeLocator(pe));let Ce=pe.locatorHash,Oe=L.target,te=ee;if(Oe===te)continue;let se=L.linkType;for(let be of oe)X=X.children.get(be);if(!le)k.push({srcDir:Oe,dstDir:te,linkType:se,realLocatorHash:Ce});else for(let be of oe)if(O=x.join(O,be),le=le.children.get(be),!le){k.push({srcDir:Oe,dstDir:te,linkType:se,realLocatorHash:Ce});break}}let T=Ji.progressViaCounter(k.length),Y=n.reportProgress(T),j=i.configuration.get("nmMode"),Z={value:j};try{let J=Z.value===Li.HARDLINKS_GLOBAL?`${uT(i.configuration)}/v1`:null;if(J&&!await K.existsPromise(J)){await K.mkdirpPromise(J);for(let ee=0;ee<256;ee++)await K.mkdirPromise(x.join(J,ee.toString(16).padStart(2,"0")))}for(let ee of k)(ee.linkType===Qt.SOFT||!S.has(ee.srcDir))&&(S.set(ee.srcDir,ee.dstDir),await p(ie(N({},ee),{globalHardlinksStore:J,nmMode:Z,packageChecksum:o.get(ee.realLocatorHash)||null})));await Promise.all(h),h.length=0;for(let ee of k){let A=S.get(ee.srcDir);ee.linkType!==Qt.SOFT&&ee.dstDir!==A&&await m(A,ee.dstDir,{nmMode:Z})}await Promise.all(h),await K.mkdirPromise(a,{recursive:!0});let re=await U5e(e,f,i.cwd,{loadManifest:s});await H5e(c,re,i.cwd),await T5e(i,e,re,Z,{installChangedByUser:g}),j==Li.HARDLINKS_GLOBAL&&Z.value==Li.HARDLINKS_LOCAL&&n.reportWarningOnce($.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{Y.stop()}}async function H5e(t,e,r){for(let i of t.keys()){if(x.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,Gr,pb);await K.removePromise(n)}}for(let[i,n]of e){if(x.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,Gr,pb),o=t.get(i)||new Map;await K.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await K.removePromise(x.join(s,a)),process.platform==="win32"&&await K.removePromise(x.join(s,Jr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform==="win32"?await(0,Xle.default)(H.fromPortablePath(l),H.fromPortablePath(u),{createPwshFile:!1}):(await K.removePromise(u),await cT(l,u),x.contains(r,await K.realpathPromise(l))!==null&&await K.chmodPromise(l,493)))}}}var gT=class extends vu{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new ace(e)}},ace=class extends ah{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let r=new Wr({baseFs:new Es({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),i=Tle(e,this.opts.project.cwd,r),{tree:n,errors:s}=Ym(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=P.parseLocator(g.locator),h=P.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=x.join(this.opts.project.cwd,Pt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=x.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=x.join(g,h),m=n.get(p);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in m)a(`${u}/${h}`,m);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var G5e={hooks:{cleanGlobalArtifacts:async t=>{let e=uT(t);await K.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:ye.STRING,values:[Kn.WORKSPACES,Kn.DEPENDENCIES,Kn.NONE],default:Kn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:ye.STRING,values:[Li.CLASSIC,Li.HARDLINKS_LOCAL,Li.HARDLINKS_GLOBAL],default:Li.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:ye.BOOLEAN,default:!0}},linkers:[AT,gT]},j5e=G5e;var gO={};ft(gO,{default:()=>XVe,npmConfigUtils:()=>br,npmHttpUtils:()=>zt,npmPublishUtils:()=>Bh});var gce=ge(ri());var Cr="npm:";var zt={};ft(zt,{AuthType:()=>cs,customPackageError:()=>J5e,del:()=>_5e,get:()=>Bo,getIdentUrl:()=>Nl,handleInvalidAuthenticationError:()=>Fl,post:()=>W5e,put:()=>z5e});var cce=ge(em()),uce=ge(require("url"));var br={};ft(br,{RegistryType:()=>wA,getAuditRegistry:()=>Y5e,getAuthConfiguration:()=>pT,getDefaultRegistry:()=>Cb,getPublishRegistry:()=>Ace,getRegistryConfiguration:()=>lce,getScopeConfiguration:()=>hT,getScopeRegistry:()=>BA,normalizeRegistry:()=>pa});var wA;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(wA||(wA={}));function pa(t){return t.replace(/\/$/,"")}function Y5e(t,{configuration:e}){let r=e.get(wA.AUDIT_REGISTRY);return r!==null?pa(r):Ace(t,{configuration:e})}function Ace(t,{configuration:e}){var r;return((r=t.publishConfig)==null?void 0:r.registry)?pa(t.publishConfig.registry):t.name?BA(t.name.scope,{configuration:e,type:wA.PUBLISH_REGISTRY}):Cb({configuration:e,type:wA.PUBLISH_REGISTRY})}function BA(t,{configuration:e,type:r=wA.FETCH_REGISTRY}){let i=hT(t,{configuration:e});if(i===null)return Cb({configuration:e,type:r});let n=i.get(r);return n===null?Cb({configuration:e,type:r}):pa(n)}function Cb({configuration:t,type:e=wA.FETCH_REGISTRY}){let r=t.get(e);return pa(r!==null?r:t.get(wA.FETCH_REGISTRY))}function lce(t,{configuration:e}){let r=e.get("npmRegistries"),i=pa(t),n=r.get(i);if(typeof n!="undefined")return n;let s=r.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function hT(t,{configuration:e}){if(t===null)return null;let i=e.get("npmScopes").get(t);return i||null}function pT(t,{configuration:e,ident:r}){let i=r&&hT(r.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:lce(t,{configuration:e})||e}var cs;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(cs||(cs={}));async function Fl(t,{attemptedAs:e,registry:r,headers:i,configuration:n}){var s,o;if(mb(t))throw new ct($.AUTHENTICATION_INVALID,"Invalid OTP token");if(((s=t.originalError)==null?void 0:s.name)==="HTTPError"&&((o=t.originalError)==null?void 0:o.response.statusCode)===401)throw new ct($.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await q5e(r,i,{configuration:n})}`:`attempted as ${e}`})`)}function J5e(t){var e;return((e=t.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Nl(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function Bo(t,a){var l=a,{configuration:e,headers:r,ident:i,authType:n,registry:s}=l,o=Tr(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=BA(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Eb(s,{authType:n,configuration:e,ident:i});c&&(r=ie(N({},r),{authorization:c}));try{return await ir.get(t.charAt(0)==="/"?`${s}${t}`:t,N({configuration:e,headers:r},o))}catch(u){throw await Fl(u,{registry:s,configuration:e,headers:r}),u}}async function W5e(t,e,u){var g=u,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Tr(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=BA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Eb(a,{authType:o,configuration:i,ident:s});f&&(n=ie(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.post(a+t,e,N({configuration:i,headers:n},c))}catch(h){if(!mb(h)||l)throw await Fl(h,{attemptedAs:r,registry:a,configuration:i,headers:n}),h;l=await dT();let p=N(N({},n),ch(l));try{return await ir.post(`${a}${t}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Fl(m,{attemptedAs:r,registry:a,configuration:i,headers:n}),m}}}async function z5e(t,e,u){var g=u,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Tr(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=BA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Eb(a,{authType:o,configuration:i,ident:s});f&&(n=ie(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.put(a+t,e,N({configuration:i,headers:n},c))}catch(h){if(!mb(h))throw await Fl(h,{attemptedAs:r,registry:a,configuration:i,headers:n}),h;l=await dT();let p=N(N({},n),ch(l));try{return await ir.put(`${a}${t}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Fl(m,{attemptedAs:r,registry:a,configuration:i,headers:n}),m}}}async function _5e(t,c){var u=c,{attemptedAs:e,configuration:r,headers:i,ident:n,authType:s=3,registry:o,otp:a}=u,l=Tr(u,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(n&&typeof o=="undefined"&&(o=BA(n.scope,{configuration:r})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let g=await Eb(o,{authType:s,configuration:r,ident:n});g&&(i=ie(N({},i),{authorization:g})),a&&(i=N(N({},i),ch(a)));try{return await ir.del(o+t,N({configuration:r,headers:i},l))}catch(f){if(!mb(f)||a)throw await Fl(f,{attemptedAs:e,registry:o,configuration:r,headers:i}),f;a=await dT();let h=N(N({},i),ch(a));try{return await ir.del(`${o}${t}`,N({configuration:r,headers:h},l))}catch(p){throw await Fl(p,{attemptedAs:e,registry:o,configuration:r,headers:i}),p}}}async function Eb(t,{authType:e=2,configuration:r,ident:i}){let n=pT(t,{configuration:r,ident:i}),s=V5e(n,e);if(!s)return null;let o=await r.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new ct($.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function V5e(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function q5e(t,e,{configuration:r}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await ir.get(new uce.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function dT(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:t}=await(0,cce.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return t}function mb(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function ch(t){return{["npm-otp"]:t}}var CT=class{supports(e,r){if(!e.reference.startsWith(Cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!gce.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await Bo(i.__archiveUrl,{configuration:r.project.configuration,ident:e});return await wi.convertToZip(n,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var mT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Cr)||!P.tryParseDescriptor(e.range.slice(Cr.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){let i=P.parseDescriptor(e.range.slice(Cr.length),!0);return r.resolver.getResolutionDependencies(i,r)}async getCandidates(e,r,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return await i.resolver.getCandidates(n,r,i)}async getSatisfying(e,r,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return i.resolver.getSatisfying(n,r,i)}resolve(e,r){throw new Error("Unreachable")}};var fce=ge(ri()),hce=ge(require("url"));var bo=class{supports(e,r){if(!e.reference.startsWith(Cr))return!1;let i=new hce.URL(e.reference);return!(!fce.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i;try{i=await Bo(bo.getLocatorUrl(e),{configuration:r.project.configuration,ident:e})}catch(n){i=await Bo(bo.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:r.project.configuration,ident:e})}return await wi.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:i}){let n=BA(e.scope,{configuration:i}),s=bo.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===n+s||r===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Wt.clean(e.reference.slice(Cr.length));if(r===null)throw new ct($.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${Nl(e)}/-/${e.name}-${r}.tgz`}};var pce=ge(ri());var Ib=P.makeIdent(null,"node-gyp"),X5e=/\b(node-gyp|prebuild-install)\b/,ET=class{supportsDescriptor(e,r){return e.range.startsWith(Cr)?!!Wt.validRange(e.range.slice(Cr.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!pce.default.valid(i)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);let s=await Bo(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=ve.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Wt.SemVer(c);if(n.test(u))return u}catch{}return ve.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${Cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return bo.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,r,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);return ve.mapAndFilter(r,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:Cr}),a=new Wt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return ve.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,r){let{selector:i}=P.parseRange(e.reference),n=Wt.clean(i);if(n===null)throw new ct($.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await Bo(Nl(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new ct($.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new At;if(o.load(s.versions[n]),!o.dependencies.has(Ib.identHash)&&!o.peerDependencies.has(Ib.identHash)){for(let a of o.scripts.values())if(a.match(X5e)){o.dependencies.set(Ib.identHash,P.makeDescriptor(Ib,"latest")),r.report.reportWarningOnce($.NODE_GYP_INJECTED,`${P.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(r.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;r.report.reportWarningOnce($.DEPRECATED_PACKAGE,l)}return ie(N({},e),{version:n,languageName:"node",linkType:Qt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var IT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Cr)||!qg.test(e.range.slice(Cr.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Cr.length),s=await Bo(Nl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new ct($.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${Cr}${a}`),c=s.versions[a].dist.tarball;return bo.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Unreachable")}};var Bh={};ft(Bh,{getGitHead:()=>_Ve,makePublishBody:()=>zVe});var AO={};ft(AO,{default:()=>PVe,packUtils:()=>SA});var SA={};ft(SA,{genPackList:()=>Gb,genPackStream:()=>aO,genPackageManifest:()=>jue,hasPackScripts:()=>sO,prepareForPack:()=>oO});var nO=ge(rs()),Hue=ge(Uue()),Gue=ge(require("zlib")),EVe=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],IVe=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function sO(t){return!!(Zt.hasWorkspaceScript(t,"prepack")||Zt.hasWorkspaceScript(t,"postpack"))}async function oO(t,{report:e},r){await Zt.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let i=x.join(t.cwd,At.fileName);await K.existsPromise(i)&&await t.manifest.loadFile(i,{baseFs:K}),await r()}finally{await Zt.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function aO(t,e){var s,o;typeof e=="undefined"&&(e=await Gb(t));let r=new Set;for(let a of(o=(s=t.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)r.add(x.normalize(a));for(let a of t.manifest.bin.values())r.add(x.normalize(a));let i=Hue.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(t.cwd,l),u=x.join("package",l),g=await K.lstatPromise(c),f={name:u,mtime:new Date(Dr.SAFE_TIME*1e3)},h=r.has(l)?493:420,p,m,y=new Promise((S,k)=>{p=S,m=k}),b=S=>{S?m(S):p()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await jue(t),null,2)):S=await K.readFilePromise(c),i.entry(ie(N({},f),{mode:h,type:"file"}),S,b)}else g.isSymbolicLink()?i.entry(ie(N({},f),{mode:h,type:"symlink",linkname:await K.readlinkPromise(c)}),b):b(new Error(`Unsupported file type ${g.mode} for ${H.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Gue.createGzip)();return i.pipe(n),n}async function jue(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function Gb(t){var g,f,h,p,m,y,b,S;let e=t.project,r=e.configuration,i={accept:[],reject:[]};for(let k of IVe)i.reject.push(k);for(let k of EVe)i.accept.push(k);i.reject.push(r.get("rcFilename"));let n=k=>{if(k===null||!k.startsWith(`${t.cwd}/`))return;let T=x.relative(t.cwd,k),Y=x.resolve(Ke.root,T);i.reject.push(Y)};n(x.resolve(e.cwd,r.get("lockfileFilename"))),n(r.get("cacheFolder")),n(r.get("globalFolder")),n(r.get("installStatePath")),n(r.get("virtualFolder")),n(r.get("yarnPath")),await r.triggerHook(k=>k.populateYarnPaths,e,k=>{n(k)});for(let k of e.workspaces){let T=x.relative(t.cwd,k.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=t.manifest.publishConfig)==null?void 0:g.main)!=null?f:t.manifest.main,a=(p=(h=t.manifest.publishConfig)==null?void 0:h.module)!=null?p:t.manifest.module,l=(y=(m=t.manifest.publishConfig)==null?void 0:m.browser)!=null?y:t.manifest.browser,c=(S=(b=t.manifest.publishConfig)==null?void 0:b.bin)!=null?S:t.manifest.bin;o!=null&&s.accept.push(x.resolve(Ke.root,o)),a!=null&&s.accept.push(x.resolve(Ke.root,a)),typeof l=="string"&&s.accept.push(x.resolve(Ke.root,l));for(let k of c.values())s.accept.push(x.resolve(Ke.root,k));if(l instanceof Map)for(let[k,T]of l.entries())s.accept.push(x.resolve(Ke.root,k)),typeof T=="string"&&s.accept.push(x.resolve(Ke.root,T));let u=t.manifest.files!==null;if(u){s.reject.push("/*");for(let k of t.manifest.files)Yue(s.accept,k,{cwd:Ke.root})}return await yVe(t.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function yVe(t,{hasExplicitFileList:e,globalList:r,ignoreList:i}){let n=[],s=new Ra(t),o=[[Ke.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Jue(a,{globalList:r,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Ke.root)for(let m of u)g=g||m===".gitignore",f=f||m===".npmignore";let h=f?await que(s,a,".npmignore"):g?await que(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;Jue(a,{globalList:r,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([x.resolve(a,m),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(Ke.root,a))}return n.sort()}async function que(t,e,r){let i={accept:[],reject:[]},n=await t.readFilePromise(x.join(e,r),"utf8");for(let s of n.split(/\n/g))Yue(i.reject,s,{cwd:e});return i}function wVe(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=x.resolve(e,t)),r&&(t=`!${t}`),t}function Yue(t,e,{cwd:r}){let i=e.trim();i===""||i[0]==="#"||t.push(wVe(i,{cwd:r}))}var us;(function(i){i[i.None=0]="None",i[i.Match=1]="Match",i[i.NegatedMatch=2]="NegatedMatch"})(us||(us={}));function Jue(t,{globalList:e,ignoreLists:r}){let i=jb(t,e.accept);if(i!==0)return i===2;let n=jb(t,e.reject);if(n!==0)return n===1;if(r!==null)for(let s of r){let o=jb(t,s.accept);if(o!==0)return o===2;let a=jb(t,s.reject);if(a!==0)return a===1}return!1}function jb(t,e){let r=e,i=[];for(let n=0;n{await oO(i,{report:l},async()=>{l.reportJson({base:H.fromPortablePath(i.cwd)});let c=await Gb(i);for(let u of c)l.reportInfo(null,H.fromPortablePath(u)),l.reportJson({location:H.fromPortablePath(u)});if(!this.dryRun){let u=await aO(i,c),g=K.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo($.UNNAMED,`Package archive generated in ${Ae.pretty(e,s,Ae.Type.PATH)}`),l.reportJson({output:H.fromPortablePath(s)}))})).exitCode()}};lE.paths=[["pack"]],lE.usage=Re.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var zue=lE;function BVe(t,{workspace:e}){let r=t.replace("%s",bVe(e)).replace("%v",QVe(e));return H.toPortablePath(r)}function bVe(t){return t.manifest.name!==null?P.slugifyIdent(t.manifest.name):"package"}function QVe(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var vVe=["dependencies","devDependencies","peerDependencies"],SVe="workspace:",kVe=(t,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of vVe)for(let o of t.manifest.getForScope(s).values()){let a=r.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===SVe)if(a===null){if(r.tryWorkspaceByIdent(o)===null)throw new ct($.WORKSPACE_NOT_FOUND,`${P.prettyDescriptor(r.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&t.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},xVe={hooks:{beforeWorkspacePacking:kVe},commands:[zue]},PVe=xVe;var ige=ge(require("crypto")),nge=ge(rge()),sge=ge(require("url"));async function zVe(t,e,{access:r,tag:i,registry:n,gitHead:s}){let o=t.project.configuration,a=t.manifest.name,l=t.manifest.version,c=P.stringifyIdent(a),u=(0,ige.createHash)("sha1").update(e).digest("hex"),g=nge.default.fromData(e).toString();typeof r=="undefined"&&(t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?r=t.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?r=o.get("npmPublishAccess"):a.scope?r="restricted":r="public");let f=await SA.genPackageManifest(t),h=`${c}-${l}.tgz`,p=new sge.URL(`${pa(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:r,["dist-tags"]:{[i]:l},versions:{[l]:ie(N({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function _Ve(t){try{let{stdout:e}=await Fr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}var fO={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ye.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:ye.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:ye.SECRET,default:null}},oge={npmAuditRegistry:{description:"Registry to query for audit reports",type:ye.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:ye.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ye.STRING,default:"https://registry.yarnpkg.com"}},VVe={configuration:ie(N(N({},fO),oge),{npmScopes:{description:"Settings per package scope",type:ye.MAP,valueDefinition:{description:"",type:ye.SHAPE,properties:N(N({},fO),oge)}},npmRegistries:{description:"Settings per registry",type:ye.MAP,normalizeKeys:pa,valueDefinition:{description:"",type:ye.SHAPE,properties:N({},fO)}}}),fetchers:[CT,bo],resolvers:[mT,ET,IT]},XVe=VVe;var CO={};ft(CO,{default:()=>o9e});Is();var Ia;(function(i){i.All="all",i.Production="production",i.Development="development"})(Ia||(Ia={}));var vo;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(vo||(vo={}));var Yb=[vo.Info,vo.Low,vo.Moderate,vo.High,vo.Critical];function age(t,e){let r=[],i=new Set,n=o=>{i.has(o)||(i.add(o),r.push(o))};for(let o of e)n(o);let s=new Set;for(;r.length>0;){let o=r.shift(),a=t.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=t.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function ZVe(t,e){return new Set([...t].filter(r=>!e.has(r)))}function $Ve(t,e,{all:r}){let i=r?t.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=age(t,l),g=age(t,c);return ZVe(g,u)}function Age(t){let e={};for(let r of t)e[P.stringifyIdent(r)]=P.parseRange(r.range).selector;return e}function lge(t){if(typeof t=="undefined")return new Set;let e=Yb.indexOf(t),r=Yb.slice(e);return new Set(r)}function e9e(t,e){let r=lge(e),i={};for(let n of r)i[n]=t[n];return i}function cge(t,e){var i;let r=e9e(t,e);for(let n of Object.keys(r))if((i=r[n])!=null?i:0>0)return!0;return!1}function uge(t,e){var s;let r={},i={children:r},n=Object.values(t.advisories);if(e!=null){let o=lge(e);n=n.filter(a=>o.has(a.severity))}for(let o of ve.sortMap(n,a=>a.module_name))r[o.module_name]={label:o.module_name,value:Ae.tuple(Ae.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:Ae.tuple(Ae.Type.NO_HINT,o.title)},URL:{label:"URL",value:Ae.tuple(Ae.Type.URL,o.url)},Severity:{label:"Severity",value:Ae.tuple(Ae.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:Ae.tuple(Ae.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:Ae.tuple(Ae.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:Ae.tuple(Ae.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:Ae.tuple(Ae.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function gge(t,e,{all:r,environment:i}){let n=r?t.workspaces:[e],s=[Ia.All,Ia.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[Ia.All,Ia.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Age([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function fge(t,e,{all:r}){var s;let i=$Ve(t,e,{all:r}),n={};for(let o of t.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Age(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var gE=class extends Le{constructor(){super(...arguments);this.all=W.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=W.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=W.String("--environment",Ia.All,{description:"Which environments to cover",validator:nn(Ia)});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=W.String("--severity",vo.Info,{description:"Minimal severity requested for packages to be displayed",validator:nn(vo)})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=gge(r,i,{all:this.all,environment:this.environment}),s=fge(r,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=br.getAuditRegistry(i.manifest,{configuration:e}),l,c=await gA.start({configuration:e,stdout:this.context.stdout},async()=>{l=await zt.post("/-/npm/v1/security/audits/quick",o,{authType:zt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=cge(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(As.emitTree(uge(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo($.EXCEPTION,"No audit suggestions")})).exitCode()}};gE.paths=[["npm","audit"]],gE.usage=Re.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${Yb.map(e=>`\`${e}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var hge=gE;var hO=ge(ri()),pO=ge(require("util")),fE=class extends Le{constructor(){super(...arguments);this.fields=W.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=W.Rest()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r}=await ze.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let k=r.topLevelWorkspace;if(!k.manifest.name)throw new Pe(`Missing ${Ae.pretty(e,"name",Ae.Type.CODE)} field in ${H.fromPortablePath(x.join(k.cwd,Pt.manifest))}`);c=P.makeDescriptor(k.manifest.name,"unknown")}else c=P.parseDescriptor(l);let u=zt.getIdentUrl(c),g=dO(await zt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:zt.customPackageError})),f=Object.keys(g.versions).sort(hO.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],m=Wt.validRange(c.range);if(m){let k=hO.default.maxSatisfying(f,m);k!==null?p=k:(a.reportWarning($.UNNAMED,`Unmet range ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else Object.prototype.hasOwnProperty.call(g["dist-tags"],c.range)?p=g["dist-tags"][c.range]:c.range!=="unknown"&&(a.reportWarning($.UNNAMED,`Unknown tag ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let y=g.versions[p],b=ie(N(N({},g),y),{version:p,versions:f}),S;if(i!==null){S={};for(let k of i){let T=b[k];if(typeof T!="undefined")S[k]=T;else{a.reportWarning($.EXCEPTION,`The ${Ae.pretty(e,k,Ae.Type.CODE)} field doesn't exist inside ${P.prettyIdent(e,c)}'s information`),s=!0;continue}}}else this.json||(delete b.dist,delete b.readme,delete b.users),S=b;a.reportJson(S),this.json||n.push(S)}});pO.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,pO.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} -`);return o.exitCode()}};fE.paths=[["npm","info"]],fE.usage=Re.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var pge=fE;function dO(t){if(Array.isArray(t)){let e=[];for(let r of t)r=dO(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=dO(t[r]);i&&(e[r]=i)}return e}else return t||null}var dge=ge(em()),hE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await r9e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await zt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:zt.AuthType.NO_AUTH});return await t9e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo($.UNNAMED,"Successfully logged in")})).exitCode()}};hE.paths=[["npm","login"]],hE.usage=Re.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Cge=hE;async function qb({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?br.getScopeRegistry(t,{configuration:r,type:br.RegistryType.PUBLISH_REGISTRY}):t?br.getScopeRegistry(t,{configuration:r}):e?br.getPublishRegistry((await zf(r,i)).manifest,{configuration:r}):br.getDefaultRegistry({configuration:r})}async function t9e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=ve.isIndexableObject(a)?a:{},c=l[o],u=ve.isIndexableObject(c)?c:{};return ie(N({},l),{[o]:ie(N({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await we.updateHomeConfiguration(s)}async function r9e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo($.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo($.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,dge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var bh=new Set(["npmAuthIdent","npmAuthToken"]),pE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=W.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await we.find(this.context.cwd,this.context.plugins),o=P.makeIdent((l=this.scope)!=null?l:null,"pkg");return!br.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await i9e(),n.reportInfo($.UNNAMED,"Successfully logged out from everything")),this.scope){await mge("npmScopes",this.scope),await r()?n.reportInfo($.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning($.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await qb({configuration:e,cwd:this.context.cwd,publish:this.publish});await mge("npmRegistries",s),await r()?n.reportInfo($.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning($.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};pE.paths=[["npm","logout"]],pE.usage=Re.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Ege=pE;function n9e(t,e){let r=t[e];if(!ve.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...bh].every(s=>!i.has(s)))return!1;for(let s of bh)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=N({},r);for(let s of bh)delete n[s];return t[e]=n,!0}async function i9e(){let t=e=>{let r=!1,i=ve.isIndexableObject(e)?N({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))n9e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await we.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function mge(t,e){return await we.updateHomeConfiguration({[t]:r=>{let i=ve.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=ve.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...bh].every(l=>!o.has(l)))return r;for(let l of bh)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:ie(N({},i),{[e]:void 0});let a={};for(let l of bh)a[l]=void 0;return ie(N({},i),{[e]:N(N({},s),a)})}})}var dE=class extends Le{constructor(){super(...arguments);this.access=W.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=W.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=W.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=W.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);if(i.manifest.private)throw new Pe("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new Pe("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=br.getPublishRegistry(i.manifest,{configuration:e});return(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await zt.get(zt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new ct($.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning($.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Zt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await SA.prepareForPack(i,{report:l},async()=>{let g=await SA.genPackList(i);for(let y of g)l.reportInfo(null,y);let f=await SA.genPackStream(i,g),h=await ve.bufferStream(f),p=await Bh.getGitHead(i.cwd),m=await Bh.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await zt.put(zt.getIdentUrl(n),m,{configuration:e,registry:o,ident:n,otp:this.otp,jsonResponse:!0})}),l.reportInfo($.UNNAMED,"Package archive published")})).exitCode()}};dE.paths=[["npm","publish"]],dE.usage=Re.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Ige=dE;var wge=ge(ri());var CE=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=W.String({required:!1})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=P.parseIdent(this.package);else{if(!i)throw new ht(r.cwd,this.context.cwd);if(!i.manifest.name)throw new Pe(`Missing 'name' field in ${H.fromPortablePath(x.join(i.cwd,Pt.manifest))}`);n=i.manifest.name}let s=await mE(n,e),a={children:ve.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:Ae.tuple(Ae.Type.RESOLUTION,{descriptor:P.makeDescriptor(n,l),locator:P.makeLocator(n,c)})}))};return As.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};CE.paths=[["npm","tag","list"]],CE.usage=Re.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var yge=CE;async function mE(t,e){let r=`/-/package${zt.getIdentUrl(t)}/dist-tags`;return zt.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:zt.customPackageError})}var EE=class extends Le{constructor(){super(...arguments);this.package=W.String();this.tag=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=P.parseDescriptor(this.package,!0),s=n.range;if(!wge.default.valid(s))throw new Pe(`The range ${Ae.pretty(e,n.range,Ae.Type.RANGE)} must be a valid semver version`);let o=br.getPublishRegistry(i.manifest,{configuration:e}),a=Ae.pretty(e,n,Ae.Type.IDENT),l=Ae.pretty(e,s,Ae.Type.RANGE),c=Ae.pretty(e,this.tag,Ae.Type.CODE);return(await Je.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await mE(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning($.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo($.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};EE.paths=[["npm","tag","add"]],EE.usage=Re.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Bge=EE;var IE=class extends Le{constructor(){super(...arguments);this.package=W.String();this.tag=W.String()}async execute(){if(this.tag==="latest")throw new Pe("The 'latest' tag cannot be removed.");let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);let n=P.parseIdent(this.package),s=br.getPublishRegistry(i.manifest,{configuration:e}),o=Ae.pretty(e,this.tag,Ae.Type.CODE),a=Ae.pretty(e,n,Ae.Type.IDENT),l=await mE(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new Pe(`${o} is not a tag of package ${a}`);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo($.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};IE.paths=[["npm","tag","remove"]],IE.usage=Re.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var bge=IE;var yE=class extends Le{constructor(){super(...arguments);this.scope=W.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=W.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=br.getScopeRegistry(this.scope,{configuration:e,type:br.RegistryType.PUBLISH_REGISTRY}):this.scope?r=br.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=br.getPublishRegistry((await zf(e,this.context.cwd)).manifest,{configuration:e}):r=br.getDefaultRegistry({configuration:e}),(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await zt.get("/-/whoami",{configuration:e,registry:r,authType:zt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError($.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo($.UNNAMED,s.username)})).exitCode()}};yE.paths=[["npm","whoami"]],yE.usage=Re.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var Qge=yE;var s9e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ye.STRING,default:null}},commands:[hge,pge,Cge,Ege,Ige,Bge,yge,bge,Qge]},o9e=s9e;var QO={};ft(QO,{default:()=>w9e,patchUtils:()=>mO});var mO={};ft(mO,{applyPatchFile:()=>zb,diffFolders:()=>wO,extractPackageToDisk:()=>yO,extractPatchFlags:()=>Fge,isParentRequired:()=>IO,loadPatchFiles:()=>QE,makeDescriptor:()=>E9e,makeLocator:()=>EO,parseDescriptor:()=>BE,parseLocator:()=>bE,parsePatchFile:()=>Wb});var wE=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var a9e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Qh(t){return x.relative(Ke.root,x.resolve(Ke.root,H.toPortablePath(t)))}function A9e(t){let e=t.trim().match(a9e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var l9e=420,c9e=493,Zr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Zr||(Zr={}));var vge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),u9e=t=>({header:A9e(t),parts:[]}),g9e={["@"]:"header",["-"]:Zr.Deletion,["+"]:Zr.Insertion,[" "]:Zr.Context,["\\"]:"pragma",undefined:Zr.Context};function h9e(t){let e=[],r=vge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=vge()}for(let l=0;l0?"patch":"mode change",S=null;switch(b){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Qh(u),toPath:Qh(g)}),S=g}break;case"file deletion":{let k=n||p;if(!k)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Jb(l),hash:f})}break;case"file creation":{let k=s||m;if(!k)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Jb(c),hash:h})}break;case"patch":case"mode change":S=m||s;break;default:ve.assertNever(b);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Qh(S),oldMode:Jb(o),newMode:Jb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Qh(S),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Jb(t){let e=parseInt(t,8)&511;if(e!==l9e&&e!==c9e)throw new Error(`Unexpected file mode string: ${t}`);return e}function Wb(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),p9e(h9e(e))}function f9e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Zr.Context:r+=n.length,e+=n.length;break;case Zr.Deletion:e+=n.length;break;case Zr.Insertion:r+=n.length;break;default:ve.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function vh(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function zb(t,{baseFs:e=new ar,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!Wt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await vh(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await vh(e,x.dirname(n.fromPath),async()=>{await vh(e,x.dirname(n.toPath),async()=>{await vh(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` -`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[Dr.SAFE_TIME,Dr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Dr.SAFE_TIME,Dr.SAFE_TIME)}break;case"patch":await vh(e,n.path,async()=>{await d9e(n,{baseFs:e,dryRun:r})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(Sge(n.newMode)!==Sge(o))continue;await vh(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:ve.assertNever(n);break}}function Sge(t){return(t&64)>0}function kge(t){return t.replace(/\s+$/,"")}function C9e(t,e){return kge(t)===kge(e)}async function d9e({hunks:t,path:e},{baseFs:r,dryRun:i=!1}){let n=await r.statSync(e).mode,o=(await r.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of t){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),m=Math.max(h,p),y=0,b=0,S=null;for(;y<=m;){if(y<=h&&(b=f-y,S=xge(g,o,b),S!==null)){y=-y;break}if(y<=p&&(b=f+y,S=xge(g,o,b),S!==null))break;y+=1}if(S===null)throw new wE(t.indexOf(g),g);a.push(S),l+=y,c=b+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:ve.assertNever(f);break}await r.writeFilePromise(e,o.join(` -`),{mode:n})}function xge(t,e,r){let i=[];for(let n of t.parts)switch(n.type){case Zr.Context:case Zr.Deletion:{for(let s of n.lines){let o=e[r];if(o==null||!C9e(o,s))return null;r+=1}n.type===Zr.Deletion&&(i.push({type:"splice",index:r-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Zr.Insertion:i.push({type:"splice",index:r,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:ve.assertNever(n.type);break}return i}var m9e=/^builtin<([^>]+)>$/;function Pge(t,e){let{source:r,selector:i,params:n}=P.parseRange(t);if(r===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>H.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(r);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function BE(t){let i=Pge(t.range,P.parseDescriptor),{sourceItem:e}=i,r=Tr(i,["sourceItem"]);return ie(N({},r),{sourceDescriptor:e})}function bE(t){let i=Pge(t.reference,P.parseLocator),{sourceItem:e}=i,r=Tr(i,["sourceItem"]);return ie(N({},r),{sourceLocator:e})}function Dge({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:i,patchHash:n},s){let o=t!==null?{locator:P.stringifyLocator(t)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:r.join("&"),params:N(N(N({},a),l),o)})}function E9e(t,{parentLocator:e,sourceDescriptor:r,patchPaths:i}){return P.makeLocator(t,Dge({parentLocator:e,sourceItem:r,patchPaths:i},P.stringifyDescriptor))}function EO(t,{parentLocator:e,sourcePackage:r,patchPaths:i,patchHash:n}){return P.makeLocator(t,Dge({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function Rge({onAbsolute:t,onRelative:e,onBuiltin:r},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(m9e);return s!==null?r(s[1]):x.isAbsolute(i)?t(i):e(i)}function Fge(t){let e=t.startsWith("~");return e&&(t=t.slice(1)),{optional:e}}function IO(t){return Rge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},t)}async function QE(t,e,r){let i=t!==null?await r.fetcher.fetch(t,r):null,n=i&&i.localPath?{packageFs:new _t(Ke.root),prefixPath:x.relative(Ke.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await ve.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Fge(o),l=await Rge({onAbsolute:async()=>await K.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await r.project.configuration.firstHook(u=>u.getBuiltinPatch,r.project,c)},o);return ie(N({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function yO(t,{cache:e,project:r}){let i=r.storedPackages.get(t.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=r.storedChecksums,s=new pi,o=r.configuration.makeFetcher(),a=await o.fetch(t,{cache:e,project:r,fetcher:o,checksums:n,report:s}),l=await K.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([K.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),K.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),K.writeJsonPromise(g,{locator:P.stringifyLocator(t),version:i.version})]),K.detachTemp(l),u}async function wO(t,e){let r=H.fromPortablePath(t).replace(/\\/g,"/"),i=H.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Fr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--text",r,i],{cwd:H.toPortablePath(process.cwd()),env:ie(N({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${s}`);let o=r.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${ve.escapeRegExp(`/${o(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${ve.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(ve.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(ve.escapeRegExp(`${i}/`),"g"),"")}function Nge(t,{configuration:e,report:r}){for(let i of t.parts)for(let n of i.lines)switch(i.type){case Zr.Context:r.reportInfo(null,` ${Ae.pretty(e,n,"grey")}`);break;case Zr.Deletion:r.reportError($.FROZEN_LOCKFILE_EXCEPTION,`- ${Ae.pretty(e,n,Ae.Type.REMOVED)}`);break;case Zr.Insertion:r.reportError($.FROZEN_LOCKFILE_EXCEPTION,`+ ${Ae.pretty(e,n,Ae.Type.ADDED)}`);break;default:ve.assertNever(i.type)}}var BO=class{supports(e,r){return!!e.reference.startsWith("patch:")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,N({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${P.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async patchPackage(e,r){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=bE(e),a=await QE(i,o,r),l=await K.mktempPromise(),c=x.join(l,"current.zip"),u=await r.fetcher.fetch(n,r),g=P.getIdentVendorPath(e),f=await fn(),h=new Ai(c,{libzip:f,create:!0,level:r.project.configuration.get("compressionLevel")});await ve.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:m}of a){if(p===null)continue;let y=new Ai(c,{libzip:f,level:r.project.configuration.get("compressionLevel")}),b=new _t(x.resolve(Ke.root,g),{baseFs:y});try{await zb(Wb(p),{baseFs:b,version:s})}catch(S){if(!(S instanceof wE))throw S;let k=r.project.configuration.get("enableInlineHunks"),T=!k&&!m?" (set enableInlineHunks for details)":"",Y=`${P.prettyLocator(r.project.configuration,e)}: ${S.message}${T}`,j=Z=>{!k||Nge(S.hunk,{configuration:r.project.configuration,report:Z})};if(y.discardAndClose(),m){r.report.reportWarningOnce($.PATCH_HUNK_FAILED,Y,{reportExtra:j});continue}else throw new ct($.PATCH_HUNK_FAILED,Y,j)}y.saveAndClose()}return new Ai(c,{libzip:f,level:r.project.configuration.get("compressionLevel")})}};var I9e=3,bO=class{supportsDescriptor(e,r){return!!e.range.startsWith("patch:")}supportsLocator(e,r){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){let{patchPaths:n}=BE(e);return n.every(s=>!IO(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:i}=BE(e);return[i]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=BE(e),a=await QE(n,o,i.fetchOptions),l=r.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=Dn.makeHash(`${I9e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[EO(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){let{sourceLocator:i}=bE(e),n=await r.resolver.resolve(i,r);return N(N({},n),e)}};var vE=class extends Le{constructor(){super(...arguments);this.save=W.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let n=x.resolve(this.context.cwd,H.toPortablePath(this.patchFolder)),s=x.join(n,"../source"),o=x.join(n,"../.yarn-patch.json");if(!K.existsSync(s))throw new Pe("The argument folder didn't get created by 'yarn patch'");let a=await wO(s,n),l=await K.readJsonPromise(o),c=P.parseLocator(l.locator,!0);if(!r.storedPackages.has(c.locatorHash))throw new Pe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=x.join(u,`${P.slugifyLocator(c)}.patch`);await K.mkdirPromise(u,{recursive:!0}),await K.writeFilePromise(g,a);let f=x.relative(r.cwd,g);r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(c),description:l.version}},reference:`patch:${P.stringifyLocator(c)}#${f}`}),await r.persist()}};vE.paths=[["patch-commit"]],vE.usage=Re.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var Lge=vE;var SE=class extends Le{constructor(){super(...arguments);this.json=W.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=W.String()}async execute(){let e=await we.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(r.cwd,this.context.cwd);await r.restoreInstallState();let s=P.parseLocator(this.package);if(s.reference==="unknown"){let o=ve.mapAndFilter([...r.storedPackages.values()],a=>a.identHash!==s.identHash?ve.mapAndFilter.skip:P.isVirtualLocator(a)?ve.mapAndFilter.skip:a);if(o.length===0)throw new Pe("No package found in the project for the given locator");if(o.length>1)throw new Pe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): -${o.map(a=>` -- ${P.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!r.storedPackages.has(s.locatorHash))throw new Pe("No package found in the project for the given locator");await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await yO(s,{cache:n,project:r});o.reportJson({locator:P.stringifyLocator(s),path:H.fromPortablePath(a)}),o.reportInfo($.UNNAMED,`Package ${P.prettyLocator(e,s)} got extracted with success!`),o.reportInfo($.UNNAMED,`You can now edit the following folder: ${Ae.pretty(e,H.fromPortablePath(a),"magenta")}`),o.reportInfo($.UNNAMED,`Once you are done run ${Ae.pretty(e,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${H.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};SE.paths=[["patch"]],SE.usage=Re.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var Tge=SE;var y9e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:ye.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:ye.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[Lge,Tge],fetchers:[BO],resolvers:[bO]},w9e=y9e;var xO={};ft(xO,{default:()=>Q9e});var vO=class{supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=SO(),n=r.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s=="undefined")throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let i=SO(),n=r.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${Ae.pretty(r.project.configuration,`${r.project.cwd}/package.json`,Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new Oge(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Oge=class{constructor(e){this.opts=e;this.asyncActions=new ve.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return SO()}attachCustomData(e){}async installPackage(e,r,i){switch(e.linkType){case Qt.SOFT:return this.installPackageSoft(e,r,i);case Qt.HARD:return this.installPackageHard(e,r,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,i){let n=x.resolve(r.packageFs.getRealPath(),r.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,r,i){var u;let n=B9e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await At.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?u:new At,misc:{hasBindingGyp:ha.hasBindingGyp(r)}},l=this.opts.project.getDependencyMeta(o,e.version),c=ha.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,r){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Uge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,Pt.nodeModules),o=[],a=await Hge(s);for(let[l,c]of r){let u=c;Uge(c,{project:this.opts.project})||(this.opts.report.reportWarning($.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),m=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await K.readlinkPromise(h)===p)return;await K.removePromise(h)}await K.mkdirpPromise(x.dirname(h)),process.platform=="win32"?await K.symlinkPromise(g,h,"junction"):await K.symlinkPromise(p,h)}))}o.push(Gge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Kge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await K.removePromise(e);else{let r=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);r.push(K.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===Pt.nodeModules){let h=await Hge(f);return h.delete(l.join(x.sep)),Gge(f,h)}else return K.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await K.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||r.push(K.removePromise(x.join(e,s)));await Promise.all(r)}return await this.asyncActions.wait(),await kO(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await kO(Mge(this.opts.project)),{customData:this.customData}}};function SO(){return JSON.stringify({name:"PnpmInstaller",version:2})}function Mge(t){return x.join(t.cwd,Pt.nodeModules)}function Kge(t){return x.join(Mge(t),".store")}function B9e(t,{project:e}){let r=P.slugifyLocator(t),i=P.getIdentVendorPath(t);return x.join(Kge(e),r,i)}function Uge(t,{project:e}){return!P.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Hge(t){let e=new Map,r=[];try{r=await K.readdirPromise(t,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of r)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await K.readdirPromise(x.join(t,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function Gge(t,e){var n;let r=[],i=new Set;for(let s of e.keys()){r.push(K.removePromise(x.join(t,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...i].map(s=>kO(x.join(t,s)))))}async function kO(t){try{await K.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var b9e={linkers:[vO]},Q9e=b9e;var W0=()=>({modules:new Map([["@yarnpkg/cli",VC],["@yarnpkg/core",vC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Kd],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",u$(mp)],["semver",v9e],["typanion",ag],["yup",S9e],["@yarnpkg/plugin-essentials",uL],["@yarnpkg/plugin-compat",pL],["@yarnpkg/plugin-dlx",dL],["@yarnpkg/plugin-file",QL],["@yarnpkg/plugin-git",cL],["@yarnpkg/plugin-github",SL],["@yarnpkg/plugin-http",PL],["@yarnpkg/plugin-init",NL],["@yarnpkg/plugin-link",KL],["@yarnpkg/plugin-nm",fT],["@yarnpkg/plugin-npm",gO],["@yarnpkg/plugin-npm-cli",CO],["@yarnpkg/plugin-pack",AO],["@yarnpkg/plugin-patch",QO],["@yarnpkg/plugin-pnp",rT],["@yarnpkg/plugin-pnpm",xO]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});C0({binaryVersion:Kr||"",pluginConfiguration:W0()});})(); -/*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - */ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ diff --git a/tgui/.yarn/releases/yarn-3.3.1.cjs b/tgui/.yarn/releases/yarn-3.3.1.cjs new file mode 100755 index 0000000000..53a282e439 --- /dev/null +++ b/tgui/.yarn/releases/yarn-3.3.1.cjs @@ -0,0 +1,823 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var dfe=Object.create;var jS=Object.defineProperty;var Cfe=Object.getOwnPropertyDescriptor;var mfe=Object.getOwnPropertyNames;var Efe=Object.getPrototypeOf,Ife=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ht=(r,e)=>{for(var t in e)jS(r,t,{get:e[t],enumerable:!0})},yfe=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of mfe(e))!Ife.call(r,n)&&n!==t&&jS(r,n,{get:()=>e[n],enumerable:!(i=Cfe(e,n))||i.enumerable});return r};var ne=(r,e,t)=>(t=r!=null?dfe(Efe(r)):{},yfe(e||!r||!r.__esModule?jS(t,"default",{value:r,enumerable:!0}):t,r));var aK=y((uZe,oK)=>{oK.exports=sK;sK.sync=Gfe;var iK=J("fs");function Hfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{uK.exports=lK;lK.sync=Yfe;var AK=J("fs");function lK(r,e,t){AK.stat(r,function(i,n){t(i,i?!1:cK(n,e))})}function Yfe(r,e){return cK(AK.statSync(r),e)}function cK(r,e){return r.isFile()&&jfe(r,e)}function jfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var hK=y((hZe,fK)=>{var fZe=J("fs"),OI;process.platform==="win32"||global.TESTING_WINDOWS?OI=aK():OI=gK();fK.exports=av;av.sync=qfe;function av(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){av(r,e||{},function(s,o){s?n(s):i(o)})})}OI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function qfe(r,e){try{return OI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var yK=y((pZe,IK)=>{var _g=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",pK=J("path"),Jfe=_g?";":":",dK=hK(),CK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),mK=(r,e)=>{let t=e.colon||Jfe,i=r.match(/\//)||_g&&r.match(/\\/)?[""]:[..._g?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=_g?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=_g?n.split(t):[""];return _g&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},EK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=mK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(CK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=pK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];dK(c+p,{pathExt:s},(C,w)=>{if(!C&&w)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Wfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=mK(r,e),s=[];for(let o=0;o{"use strict";var wK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};Av.exports=wK;Av.exports.default=wK});var vK=y((CZe,SK)=>{"use strict";var bK=J("path"),zfe=yK(),Vfe=BK();function QK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=zfe.sync(r.command,{path:t[Vfe({env:t})],pathExt:e?bK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=bK.resolve(n?r.options.cwd:"",o)),o}function Xfe(r){return QK(r)||QK(r,!0)}SK.exports=Xfe});var xK=y((mZe,cv)=>{"use strict";var lv=/([()\][%!^"`<>&|;, *?])/g;function _fe(r){return r=r.replace(lv,"^$1"),r}function Zfe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(lv,"^$1"),e&&(r=r.replace(lv,"^$1")),r}cv.exports.command=_fe;cv.exports.argument=Zfe});var DK=y((EZe,PK)=>{"use strict";PK.exports=/^#!(.*)/});var RK=y((IZe,kK)=>{"use strict";var $fe=DK();kK.exports=(r="")=>{let e=r.match($fe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var NK=y((yZe,FK)=>{"use strict";var uv=J("fs"),ehe=RK();function the(r){let t=Buffer.alloc(150),i;try{i=uv.openSync(r,"r"),uv.readSync(i,t,0,150,0),uv.closeSync(i)}catch{}return ehe(t.toString())}FK.exports=the});var MK=y((wZe,OK)=>{"use strict";var rhe=J("path"),TK=vK(),LK=xK(),ihe=NK(),nhe=process.platform==="win32",she=/\.(?:com|exe)$/i,ohe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ahe(r){r.file=TK(r);let e=r.file&&ihe(r.file);return e?(r.args.unshift(r.file),r.command=e,TK(r)):r.file}function Ahe(r){if(!nhe)return r;let e=ahe(r),t=!she.test(e);if(r.options.forceShell||t){let i=ohe.test(e);r.command=rhe.normalize(r.command),r.command=LK.command(r.command),r.args=r.args.map(s=>LK.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function lhe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Ahe(i)}OK.exports=lhe});var HK=y((BZe,KK)=>{"use strict";var gv=process.platform==="win32";function fv(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function che(r,e){if(!gv)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=UK(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function UK(r,e){return gv&&r===1&&!e.file?fv(e.original,"spawn"):null}function uhe(r,e){return gv&&r===1&&!e.file?fv(e.original,"spawnSync"):null}KK.exports={hookChildProcess:che,verifyENOENT:UK,verifyENOENTSync:uhe,notFoundError:fv}});var dv=y((bZe,Zg)=>{"use strict";var GK=J("child_process"),hv=MK(),pv=HK();function YK(r,e,t){let i=hv(r,e,t),n=GK.spawn(i.command,i.args,i.options);return pv.hookChildProcess(n,i),n}function ghe(r,e,t){let i=hv(r,e,t),n=GK.spawnSync(i.command,i.args,i.options);return n.error=n.error||pv.verifyENOENTSync(n.status,i),n}Zg.exports=YK;Zg.exports.spawn=YK;Zg.exports.sync=ghe;Zg.exports._parse=hv;Zg.exports._enoent=pv});var qK=y((QZe,jK)=>{"use strict";function fhe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function uc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,uc)}fhe(uc,Error);uc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",re=de(">>",!1),me=">&",tt=de(">&",!1),Rt=">",It=de(">",!1),Ur="<<<",oi=de("<<<",!1),pi="<&",pr=de("<&",!1),di="<",ai=de("<",!1),Os=function(m){return{type:"argument",segments:[].concat(...m)}},dr=function(m){return m},Bi="$'",_n=de("$'",!1),pa="'",EA=de("'",!1),kg=function(m){return[{type:"text",text:m}]},Zn='""',IA=de('""',!1),da=function(){return{type:"text",text:""}},Jp='"',yA=de('"',!1),wA=function(m){return m},Br=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Vl=function(m){return{type:"shell",shell:m,quoted:!0}},Rg=function(m){return{type:"variable",...m,quoted:!0}},Eo=function(m){return{type:"text",text:m}},Fg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Wp=function(m){return{type:"shell",shell:m,quoted:!1}},zp=function(m){return{type:"variable",...m,quoted:!1}},Pr=function(m){return{type:"glob",pattern:m}},oe=/^[^']/,Io=Ye(["'"],!0,!1),kn=function(m){return m.join("")},Ng=/^[^$"]/,bt=Ye(["$",'"'],!0,!1),Xl=`\\ +`,Rn=de(`\\ +`,!1),$n=function(){return""},es="\\",ut=de("\\",!1),yo=/^[\\$"`]/,at=Ye(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=de("\\a",!1),Tg=function(){return"a"},_l="\\b",Vp=de("\\b",!1),Xp=function(){return"\b"},_p=/^[Ee]/,Zp=Ye(["E","e"],!1,!1),$p=function(){return"\x1B"},G="\\f",yt=de("\\f",!1),BA=function(){return"\f"},Wi="\\n",Zl=de("\\n",!1),We=function(){return` +`},Ca="\\r",Lg=de("\\r",!1),uI=function(){return"\r"},ed="\\t",gI=de("\\t",!1),ar=function(){return" "},Fn="\\v",$l=de("\\v",!1),td=function(){return"\v"},Ms=/^[\\'"?]/,ma=Ye(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},ke="\\x",Og=de("\\x",!1),ec="\\u",Us=de("\\u",!1),tc="\\U",bA=de("\\U",!1),Mg=function(m){return String.fromCodePoint(parseInt(m,16))},Ug=/^[0-7]/,Ea=Ye([["0","7"]],!1,!1),Ia=/^[0-9a-fA-f]/,$e=Ye([["0","9"],["a","f"],["A","f"]],!1,!1),wo=rt(),QA="-",rc=de("-",!1),Ks="+",ic=de("+",!1),fI=".",rd=de(".",!1),Kg=function(m,Q,F){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},id=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},hI=function(m){return{type:"variable",...m}},nc=function(m){return{type:"variable",name:m}},pI=function(m){return m},Hg="*",SA=de("*",!1),Nr="/",dI=de("/",!1),Hs=function(m,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},Gs=function(m,Q){return Q.reduce((F,K)=>({left:F,...K}),m)},Gg=function(m,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},vA="$((",R=de("$((",!1),q="))",pe=de("))",!1),Ne=function(m){return m},xe="$(",qe=de("$(",!1),dt=function(m){return m},Ft="${",Nn=de("${",!1),vS=":-",AU=de(":-",!1),lU=function(m,Q){return{name:m,defaultValue:Q}},xS=":-}",cU=de(":-}",!1),uU=function(m){return{name:m,defaultValue:[]}},PS=":+",gU=de(":+",!1),fU=function(m,Q){return{name:m,alternativeValue:Q}},DS=":+}",hU=de(":+}",!1),pU=function(m){return{name:m,alternativeValue:[]}},kS=function(m){return{name:m}},dU="$",CU=de("$",!1),mU=function(m){return e.isGlobPattern(m)},EU=function(m){return m},RS=/^[a-zA-Z0-9_]/,FS=Ye([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),NS=function(){return O()},TS=/^[$@*?#a-zA-Z0-9_\-]/,LS=Ye(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),IU=/^[(){}<>$|&; \t"']/,Yg=Ye(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),OS=/^[<>&; \t"']/,MS=Ye(["<",">","&",";"," "," ",'"',"'"],!1,!1),CI=/^[ \t]/,mI=Ye([" "," "],!1,!1),b=0,Fe=0,xA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function O(){return r.substring(Fe,b)}function X(){return Et(Fe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Fi([At(m)],r.substring(Fe,b),Q)}function ye(m,Q){throw Q=Q!==void 0?Q:Et(Fe,b),Tn(m,Q)}function de(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Ye(m,Q,F){return{type:"class",parts:m,inverted:Q,ignoreCase:F}}function rt(){return{type:"any"}}function wt(){return{type:"end"}}function At(m){return{type:"other",description:m}}function et(m){var Q=xA[m],F;if(Q)return Q;for(F=m-1;!xA[F];)F--;for(Q=xA[F],Q={line:Q.line,column:Q.column};Fd&&(d=b,E=[]),E.push(m))}function Tn(m,Q){return new uc(m,null,null,Q)}function Fi(m,Q,F){return new uc(uc.buildMessage(m,Q),m,Q,F)}function PA(){var m,Q;return m=b,Q=Kr(),Q===t&&(Q=null),Q!==t&&(Fe=m,Q=s(Q)),m=Q,m}function Kr(){var m,Q,F,K,ce;if(m=b,Q=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Fe=m,Q=o(Q,K,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Hr(),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();F!==t?(K=ya(),K===t&&(K=null),K!==t?(Fe=m,Q=a(Q,K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function ts(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=Kr(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=l(F),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function ya(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&Be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&Be(f))),m}function Hr(){var m,Q,F;return m=b,Q=yU(),Q!==t?(F=$ge(),F===t&&(F=null),F!==t?(Fe=m,Q=h(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function $ge(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=efe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Hr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=p(F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function efe(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&Be(w)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&Be(v))),m}function yU(){var m,Q,F;return m=b,Q=ife(),Q!==t?(F=tfe(),F===t&&(F=null),F!==t?(Fe=m,Q=D(Q,F),m=Q):(b=m,m=t)):(b=m,m=t),m}function tfe(){var m,Q,F,K,ce,Qe,ft;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(F=rfe(),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=yU(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=T(F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function rfe(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&Be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&Be(V))),m}function EI(){var m,Q,F,K,ce,Qe;if(m=b,Q=FU(),Q!==t)if(r.charCodeAt(b)===61?(F=W,b++):(F=t,I===0&&Be(Z)),F!==t)if(K=bU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(Fe=m,Q=A(Q,K),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=FU(),Q!==t)if(r.charCodeAt(b)===61?(F=W,b++):(F=t,I===0&&Be(Z)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function ife(){var m,Q,F,K,ce,Qe,ft,Bt,Vr,Ci,rs;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(r.charCodeAt(b)===40?(F=ge,b++):(F=t,I===0&&Be(_)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Kr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(b)===41?(ft=L,b++):(ft=t,I===0&&Be(N)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=nd();Ci!==t;)Vr.push(Ci),Ci=nd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Fe=m,Q=ue(ce,Vr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t)if(r.charCodeAt(b)===123?(F=we,b++):(F=t,I===0&&Be(Te)),F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t)if(ce=Kr(),ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(b)===125?(ft=Pe,b++):(ft=t,I===0&&Be(Le)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=nd();Ci!==t;)Vr.push(Ci),Ci=nd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Fe=m,Q=se(ce,Vr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){for(F=[],K=EI();K!==t;)F.push(K),K=EI();if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();if(K!==t){if(ce=[],Qe=BU(),Qe!==t)for(;Qe!==t;)ce.push(Qe),Qe=BU();else ce=t;if(ce!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(Fe=m,Q=Ae(F,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){if(F=[],K=EI(),K!==t)for(;K!==t;)F.push(K),K=EI();else F=t;if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=be(F),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function wU(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t){if(F=[],K=II(),K!==t)for(;K!==t;)F.push(K),K=II();else F=t;if(F!==t){for(K=[],ce=Me();ce!==t;)K.push(ce),ce=Me();K!==t?(Fe=m,Q=fe(F),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function BU(){var m,Q,F;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();if(Q!==t?(F=nd(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();Q!==t?(F=II(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function nd(){var m,Q,F,K,ce;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();return Q!==t?(Ge.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(ie)),F===t&&(F=null),F!==t?(K=nfe(),K!==t?(ce=II(),ce!==t?(Fe=m,Q=Y(F,K,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function nfe(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&Be(re)),m===t&&(r.substr(b,2)===me?(m=me,b+=2):(m=t,I===0&&Be(tt)),m===t&&(r.charCodeAt(b)===62?(m=Rt,b++):(m=t,I===0&&Be(It)),m===t&&(r.substr(b,3)===Ur?(m=Ur,b+=3):(m=t,I===0&&Be(oi)),m===t&&(r.substr(b,2)===pi?(m=pi,b+=2):(m=t,I===0&&Be(pr)),m===t&&(r.charCodeAt(b)===60?(m=di,b++):(m=t,I===0&&Be(ai))))))),m}function II(){var m,Q,F;for(m=b,Q=[],F=Me();F!==t;)Q.push(F),F=Me();return Q!==t?(F=bU(),F!==t?(Fe=m,Q=le(F),m=Q):(b=m,m=t)):(b=m,m=t),m}function bU(){var m,Q,F;if(m=b,Q=[],F=QU(),F!==t)for(;F!==t;)Q.push(F),F=QU();else Q=t;return Q!==t&&(Fe=m,Q=Os(Q)),m=Q,m}function QU(){var m,Q;return m=b,Q=sfe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=ofe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=afe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q,m===t&&(m=b,Q=Afe(),Q!==t&&(Fe=m,Q=dr(Q)),m=Q))),m}function sfe(){var m,Q,F,K;return m=b,r.substr(b,2)===Bi?(Q=Bi,b+=2):(Q=t,I===0&&Be(_n)),Q!==t?(F=ufe(),F!==t?(r.charCodeAt(b)===39?(K=pa,b++):(K=t,I===0&&Be(EA)),K!==t?(Fe=m,Q=kg(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function ofe(){var m,Q,F,K;return m=b,r.charCodeAt(b)===39?(Q=pa,b++):(Q=t,I===0&&Be(EA)),Q!==t?(F=lfe(),F!==t?(r.charCodeAt(b)===39?(K=pa,b++):(K=t,I===0&&Be(EA)),K!==t?(Fe=m,Q=kg(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function afe(){var m,Q,F,K;if(m=b,r.substr(b,2)===Zn?(Q=Zn,b+=2):(Q=t,I===0&&Be(IA)),Q!==t&&(Fe=m,Q=da()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=Jp,b++):(Q=t,I===0&&Be(yA)),Q!==t){for(F=[],K=SU();K!==t;)F.push(K),K=SU();F!==t?(r.charCodeAt(b)===34?(K=Jp,b++):(K=t,I===0&&Be(yA)),K!==t?(Fe=m,Q=wA(F),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function Afe(){var m,Q,F;if(m=b,Q=[],F=vU(),F!==t)for(;F!==t;)Q.push(F),F=vU();else Q=t;return Q!==t&&(Fe=m,Q=wA(Q)),m=Q,m}function SU(){var m,Q;return m=b,Q=kU(),Q!==t&&(Fe=m,Q=Br(Q)),m=Q,m===t&&(m=b,Q=RU(),Q!==t&&(Fe=m,Q=Vl(Q)),m=Q,m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=Rg(Q)),m=Q,m===t&&(m=b,Q=cfe(),Q!==t&&(Fe=m,Q=Eo(Q)),m=Q))),m}function vU(){var m,Q;return m=b,Q=kU(),Q!==t&&(Fe=m,Q=Fg(Q)),m=Q,m===t&&(m=b,Q=RU(),Q!==t&&(Fe=m,Q=Wp(Q)),m=Q,m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=zp(Q)),m=Q,m===t&&(m=b,Q=hfe(),Q!==t&&(Fe=m,Q=Pr(Q)),m=Q,m===t&&(m=b,Q=ffe(),Q!==t&&(Fe=m,Q=Eo(Q)),m=Q)))),m}function lfe(){var m,Q,F;for(m=b,Q=[],oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io));F!==t;)Q.push(F),oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io));return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function cfe(){var m,Q,F;if(m=b,Q=[],F=xU(),F===t&&(Ng.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(bt))),F!==t)for(;F!==t;)Q.push(F),F=xU(),F===t&&(Ng.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(bt)));else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function xU(){var m,Q,F;return m=b,r.substr(b,2)===Xl?(Q=Xl,b+=2):(Q=t,I===0&&Be(Rn)),Q!==t&&(Fe=m,Q=$n()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(yo.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(at)),F!==t?(Fe=m,Q=ln(F),m=Q):(b=m,m=t)):(b=m,m=t)),m}function ufe(){var m,Q,F;for(m=b,Q=[],F=PU(),F===t&&(oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io)));F!==t;)Q.push(F),F=PU(),F===t&&(oe.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Io)));return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function PU(){var m,Q,F;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&Be(Lt)),Q!==t&&(Fe=m,Q=Tg()),m=Q,m===t&&(m=b,r.substr(b,2)===_l?(Q=_l,b+=2):(Q=t,I===0&&Be(Vp)),Q!==t&&(Fe=m,Q=Xp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(_p.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(Zp)),F!==t?(Fe=m,Q=$p(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&Be(yt)),Q!==t&&(Fe=m,Q=BA()),m=Q,m===t&&(m=b,r.substr(b,2)===Wi?(Q=Wi,b+=2):(Q=t,I===0&&Be(Zl)),Q!==t&&(Fe=m,Q=We()),m=Q,m===t&&(m=b,r.substr(b,2)===Ca?(Q=Ca,b+=2):(Q=t,I===0&&Be(Lg)),Q!==t&&(Fe=m,Q=uI()),m=Q,m===t&&(m=b,r.substr(b,2)===ed?(Q=ed,b+=2):(Q=t,I===0&&Be(gI)),Q!==t&&(Fe=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Fn?(Q=Fn,b+=2):(Q=t,I===0&&Be($l)),Q!==t&&(Fe=m,Q=td()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(Ms.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(ma)),F!==t?(Fe=m,Q=ln(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=gfe()))))))))),m}function gfe(){var m,Q,F,K,ce,Qe,ft,Bt,Vr,Ci,rs,YS;return m=b,r.charCodeAt(b)===92?(Q=es,b++):(Q=t,I===0&&Be(ut)),Q!==t?(F=US(),F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===ke?(Q=ke,b+=2):(Q=t,I===0&&Be(Og)),Q!==t?(F=b,K=b,ce=US(),ce!==t?(Qe=Ln(),Qe!==t?(ce=[ce,Qe],K=ce):(b=K,K=t)):(b=K,K=t),K===t&&(K=US()),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===ec?(Q=ec,b+=2):(Q=t,I===0&&Be(Us)),Q!==t?(F=b,K=b,ce=Ln(),ce!==t?(Qe=Ln(),Qe!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(ce=[ce,Qe,ft,Bt],K=ce):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=cn(F),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===tc?(Q=tc,b+=2):(Q=t,I===0&&Be(bA)),Q!==t?(F=b,K=b,ce=Ln(),ce!==t?(Qe=Ln(),Qe!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(Vr=Ln(),Vr!==t?(Ci=Ln(),Ci!==t?(rs=Ln(),rs!==t?(YS=Ln(),YS!==t?(ce=[ce,Qe,ft,Bt,Vr,Ci,rs,YS],K=ce):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t)):(b=K,K=t),K!==t?F=r.substring(F,b):F=K,F!==t?(Fe=m,Q=Mg(F),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function US(){var m;return Ug.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(Ea)),m}function Ln(){var m;return Ia.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be($e)),m}function ffe(){var m,Q,F,K,ce;if(m=b,Q=[],F=b,r.charCodeAt(b)===92?(K=es,b++):(K=t,I===0&&Be(ut)),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F===t&&(F=b,K=b,I++,ce=NU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t)),F!==t)for(;F!==t;)Q.push(F),F=b,r.charCodeAt(b)===92?(K=es,b++):(K=t,I===0&&Be(ut)),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F===t&&(F=b,K=b,I++,ce=NU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t));else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function KS(){var m,Q,F,K,ce,Qe;if(m=b,r.charCodeAt(b)===45?(Q=QA,b++):(Q=t,I===0&&Be(rc)),Q===t&&(r.charCodeAt(b)===43?(Q=Ks,b++):(Q=t,I===0&&Be(ic))),Q===t&&(Q=null),Q!==t){if(F=[],Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie)),K!==t)for(;K!==t;)F.push(K),Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie));else F=t;if(F!==t)if(r.charCodeAt(b)===46?(K=fI,b++):(K=t,I===0&&Be(rd)),K!==t){if(ce=[],Ge.test(r.charAt(b))?(Qe=r.charAt(b),b++):(Qe=t,I===0&&Be(ie)),Qe!==t)for(;Qe!==t;)ce.push(Qe),Ge.test(r.charAt(b))?(Qe=r.charAt(b),b++):(Qe=t,I===0&&Be(ie));else ce=t;ce!==t?(Fe=m,Q=Kg(Q,F,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=QA,b++):(Q=t,I===0&&Be(rc)),Q===t&&(r.charCodeAt(b)===43?(Q=Ks,b++):(Q=t,I===0&&Be(ic))),Q===t&&(Q=null),Q!==t){if(F=[],Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie)),K!==t)for(;K!==t;)F.push(K),Ge.test(r.charAt(b))?(K=r.charAt(b),b++):(K=t,I===0&&Be(ie));else F=t;F!==t?(Fe=m,Q=id(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=GS(),Q!==t&&(Fe=m,Q=hI(Q)),m=Q,m===t&&(m=b,Q=sc(),Q!==t&&(Fe=m,Q=nc(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&Be(_)),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();if(F!==t)if(K=DU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(r.charCodeAt(b)===41?(Qe=L,b++):(Qe=t,I===0&&Be(N)),Qe!==t?(Fe=m,Q=pI(K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function HS(){var m,Q,F,K,ce,Qe,ft,Bt;if(m=b,Q=KS(),Q!==t){for(F=[],K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===42?(Qe=Hg,b++):(Qe=t,I===0&&Be(SA)),Qe===t&&(r.charCodeAt(b)===47?(Qe=Nr,b++):(Qe=t,I===0&&Be(dI))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Fe=K,ce=Hs(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t;for(;K!==t;){for(F.push(K),K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===42?(Qe=Hg,b++):(Qe=t,I===0&&Be(SA)),Qe===t&&(r.charCodeAt(b)===47?(Qe=Nr,b++):(Qe=t,I===0&&Be(dI))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=KS(),Bt!==t?(Fe=K,ce=Hs(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t}F!==t?(Fe=m,Q=Gs(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;return m}function DU(){var m,Q,F,K,ce,Qe,ft,Bt;if(m=b,Q=HS(),Q!==t){for(F=[],K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===43?(Qe=Ks,b++):(Qe=t,I===0&&Be(ic)),Qe===t&&(r.charCodeAt(b)===45?(Qe=QA,b++):(Qe=t,I===0&&Be(rc))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=HS(),Bt!==t?(Fe=K,ce=Gg(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t;for(;K!==t;){for(F.push(K),K=b,ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();if(ce!==t)if(r.charCodeAt(b)===43?(Qe=Ks,b++):(Qe=t,I===0&&Be(ic)),Qe===t&&(r.charCodeAt(b)===45?(Qe=QA,b++):(Qe=t,I===0&&Be(rc))),Qe!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=HS(),Bt!==t?(Fe=K,ce=Gg(Q,Qe,Bt),K=ce):(b=K,K=t)):(b=K,K=t)}else b=K,K=t;else b=K,K=t}F!==t?(Fe=m,Q=Gs(Q,F),m=Q):(b=m,m=t)}else b=m,m=t;return m}function kU(){var m,Q,F,K,ce,Qe;if(m=b,r.substr(b,3)===vA?(Q=vA,b+=3):(Q=t,I===0&&Be(R)),Q!==t){for(F=[],K=Me();K!==t;)F.push(K),K=Me();if(F!==t)if(K=DU(),K!==t){for(ce=[],Qe=Me();Qe!==t;)ce.push(Qe),Qe=Me();ce!==t?(r.substr(b,2)===q?(Qe=q,b+=2):(Qe=t,I===0&&Be(pe)),Qe!==t?(Fe=m,Q=Ne(K),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function RU(){var m,Q,F,K;return m=b,r.substr(b,2)===xe?(Q=xe,b+=2):(Q=t,I===0&&Be(qe)),Q!==t?(F=Kr(),F!==t?(r.charCodeAt(b)===41?(K=L,b++):(K=t,I===0&&Be(N)),K!==t?(Fe=m,Q=dt(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function GS(){var m,Q,F,K,ce,Qe;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,2)===vS?(K=vS,b+=2):(K=t,I===0&&Be(AU)),K!==t?(ce=wU(),ce!==t?(r.charCodeAt(b)===125?(Qe=Pe,b++):(Qe=t,I===0&&Be(Le)),Qe!==t?(Fe=m,Q=lU(F,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,3)===xS?(K=xS,b+=3):(K=t,I===0&&Be(cU)),K!==t?(Fe=m,Q=uU(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,2)===PS?(K=PS,b+=2):(K=t,I===0&&Be(gU)),K!==t?(ce=wU(),ce!==t?(r.charCodeAt(b)===125?(Qe=Pe,b++):(Qe=t,I===0&&Be(Le)),Qe!==t?(Fe=m,Q=fU(F,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.substr(b,3)===DS?(K=DS,b+=3):(K=t,I===0&&Be(hU)),K!==t?(Fe=m,Q=pU(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&Be(Nn)),Q!==t?(F=sc(),F!==t?(r.charCodeAt(b)===125?(K=Pe,b++):(K=t,I===0&&Be(Le)),K!==t?(Fe=m,Q=kS(F),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=dU,b++):(Q=t,I===0&&Be(CU)),Q!==t?(F=sc(),F!==t?(Fe=m,Q=kS(F),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function hfe(){var m,Q,F;return m=b,Q=pfe(),Q!==t?(Fe=b,F=mU(Q),F?F=void 0:F=t,F!==t?(Fe=m,Q=EU(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function pfe(){var m,Q,F,K,ce;if(m=b,Q=[],F=b,K=b,I++,ce=TU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t),F!==t)for(;F!==t;)Q.push(F),F=b,K=b,I++,ce=TU(),I--,ce===t?K=void 0:(b=K,K=t),K!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&Be(wo)),ce!==t?(Fe=F,K=ln(ce),F=K):(b=F,F=t)):(b=F,F=t);else Q=t;return Q!==t&&(Fe=m,Q=kn(Q)),m=Q,m}function FU(){var m,Q,F;if(m=b,Q=[],RS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(FS)),F!==t)for(;F!==t;)Q.push(F),RS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(FS));else Q=t;return Q!==t&&(Fe=m,Q=NS()),m=Q,m}function sc(){var m,Q,F;if(m=b,Q=[],TS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(LS)),F!==t)for(;F!==t;)Q.push(F),TS.test(r.charAt(b))?(F=r.charAt(b),b++):(F=t,I===0&&Be(LS));else Q=t;return Q!==t&&(Fe=m,Q=NS()),m=Q,m}function NU(){var m;return IU.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(Yg)),m}function TU(){var m;return OS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&Be(MS)),m}function Me(){var m,Q;if(m=[],CI.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&Be(mI)),Q!==t)for(;Q!==t;)m.push(Q),CI.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&Be(mI));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function phe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function fc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,fc)}phe(fc,Error);fc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ie))}function Le(ie,Y){return new fc(ie,null,null,Y)}function se(ie,Y,he){return new fc(fc.buildMessage(ie,Y),ie,Y,he)}function Ae(){var ie,Y,he,re;return ie=v,Y=be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Pe(o)),he!==t?(re=be(),re!==t?(D=ie,Y=a(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=be(),Y!==t&&(D=ie,Y=l(Y)),ie=Y),ie}function be(){var ie,Y,he,re;return ie=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Pe(u)),he!==t?(re=Ge(),re!==t?(D=ie,Y=g(Y,re),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=fe(),Y!==t&&(D=ie,Y=f(Y)),ie=Y),ie}function fe(){var ie,Y,he,re,me;return ie=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Pe(u)),Y!==t?(he=le(),he!==t?(r.charCodeAt(v)===47?(re=s,v++):(re=t,$===0&&Pe(o)),re!==t?(me=le(),me!==t?(D=ie,Y=h(),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=le(),Y!==t&&(D=ie,Y=h()),ie=Y),ie}function le(){var ie,Y,he;if(ie=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(C));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}function Ge(){var ie,Y,he;if(ie=v,Y=[],w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B)),he!==t)for(;he!==t;)Y.push(he),w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function XK(r){return typeof r>"u"||r===null}function Che(r){return typeof r=="object"&&r!==null}function mhe(r){return Array.isArray(r)?r:XK(r)?[]:[r]}function Ehe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function md(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}md.prototype=Object.create(Error.prototype);md.prototype.constructor=md;md.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};_K.exports=md});var e2=y((YZe,$K)=>{"use strict";var ZK=pc();function wv(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}wv.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),ZK.repeat(" ",e)+i+a+s+` +`+ZK.repeat(" ",e+this.position-n+i.length)+"^"};wv.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};$K.exports=wv});var Ai=y((jZe,r2)=>{"use strict";var t2=tf(),whe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Bhe=["scalar","sequence","mapping"];function bhe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Qhe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(whe.indexOf(t)===-1)throw new t2('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=bhe(e.styleAliases||null),Bhe.indexOf(this.kind)===-1)throw new t2('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}r2.exports=Qhe});var dc=y((qZe,n2)=>{"use strict";var i2=pc(),jI=tf(),She=Ai();function Bv(r,e,t){var i=[];return r.include.forEach(function(n){t=Bv(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function vhe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var xhe=Ai();s2.exports=new xhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var A2=y((WZe,a2)=>{"use strict";var Phe=Ai();a2.exports=new Phe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var c2=y((zZe,l2)=>{"use strict";var Dhe=Ai();l2.exports=new Dhe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var qI=y((VZe,u2)=>{"use strict";var khe=dc();u2.exports=new khe({explicit:[o2(),A2(),c2()]})});var f2=y((XZe,g2)=>{"use strict";var Rhe=Ai();function Fhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Nhe(){return null}function The(r){return r===null}g2.exports=new Rhe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:The,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var p2=y((_Ze,h2)=>{"use strict";var Lhe=Ai();function Ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Mhe(r){return r==="true"||r==="True"||r==="TRUE"}function Uhe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}h2.exports=new Lhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Ohe,construct:Mhe,predicate:Uhe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var C2=y((ZZe,d2)=>{"use strict";var Khe=pc(),Hhe=Ai();function Ghe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function Yhe(r){return 48<=r&&r<=55}function jhe(r){return 48<=r&&r<=57}function qhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var I2=y(($Ze,E2)=>{"use strict";var m2=pc(),zhe=Ai(),Vhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Xhe(r){return!(r===null||!Vhe.test(r)||r[r.length-1]==="_")}function _he(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var Zhe=/^[-+]?[0-9]+e/;function $he(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(m2.isNegativeZero(r))return"-0.0";return t=r.toString(10),Zhe.test(t)?t.replace("e",".e"):t}function epe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||m2.isNegativeZero(r))}E2.exports=new zhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Xhe,construct:_he,predicate:epe,represent:$he,defaultStyle:"lowercase"})});var bv=y((e$e,y2)=>{"use strict";var tpe=dc();y2.exports=new tpe({include:[qI()],implicit:[f2(),p2(),C2(),I2()]})});var Qv=y((t$e,w2)=>{"use strict";var rpe=dc();w2.exports=new rpe({include:[bv()]})});var S2=y((r$e,Q2)=>{"use strict";var ipe=Ai(),B2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),b2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function npe(r){return r===null?!1:B2.exec(r)!==null||b2.exec(r)!==null}function spe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=B2.exec(r),e===null&&(e=b2.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function ope(r){return r.toISOString()}Q2.exports=new ipe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:npe,construct:spe,instanceOf:Date,represent:ope})});var x2=y((i$e,v2)=>{"use strict";var ape=Ai();function Ape(r){return r==="<<"||r===null}v2.exports=new ape("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Ape})});var k2=y((n$e,D2)=>{"use strict";var Cc;try{P2=J,Cc=P2("buffer").Buffer}catch{}var P2,lpe=Ai(),Sv=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function cpe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=Sv;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function upe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=Sv,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),Cc?Cc.from?Cc.from(a):new Cc(a):a}function gpe(r){var e="",t=0,i,n,s=r.length,o=Sv;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function fpe(r){return Cc&&Cc.isBuffer(r)}D2.exports=new lpe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:cpe,construct:upe,predicate:fpe,represent:gpe})});var F2=y((s$e,R2)=>{"use strict";var hpe=Ai(),ppe=Object.prototype.hasOwnProperty,dpe=Object.prototype.toString;function Cpe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Epe=Ai(),Ipe=Object.prototype.toString;function ype(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Bpe=Ai(),bpe=Object.prototype.hasOwnProperty;function Qpe(r){if(r===null)return!0;var e,t=r;for(e in t)if(bpe.call(t,e)&&t[e]!==null)return!1;return!0}function Spe(r){return r!==null?r:{}}L2.exports=new Bpe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qpe,construct:Spe})});var nf=y((A$e,M2)=>{"use strict";var vpe=dc();M2.exports=new vpe({include:[Qv()],implicit:[S2(),x2()],explicit:[k2(),F2(),T2(),O2()]})});var K2=y((l$e,U2)=>{"use strict";var xpe=Ai();function Ppe(){return!0}function Dpe(){}function kpe(){return""}function Rpe(r){return typeof r>"u"}U2.exports=new xpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Ppe,construct:Dpe,predicate:Rpe,represent:kpe})});var G2=y((c$e,H2)=>{"use strict";var Fpe=Ai();function Npe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Tpe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Lpe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function Ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}H2.exports=new Fpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Npe,construct:Tpe,predicate:Ope,represent:Lpe})});var q2=y((u$e,j2)=>{"use strict";var JI;try{Y2=J,JI=Y2("esprima")}catch{typeof window<"u"&&(JI=window.esprima)}var Y2,Mpe=Ai();function Upe(r){if(r===null)return!1;try{var e="("+r+")",t=JI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function Kpe(r){var e="("+r+")",t=JI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Hpe(r){return r.toString()}function Gpe(r){return Object.prototype.toString.call(r)==="[object Function]"}j2.exports=new Mpe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Upe,construct:Kpe,predicate:Gpe,represent:Hpe})});var Ed=y((g$e,W2)=>{"use strict";var J2=dc();W2.exports=J2.DEFAULT=new J2({include:[nf()],explicit:[K2(),G2(),q2()]})});var gH=y((f$e,Id)=>{"use strict";var Qa=pc(),eH=tf(),Ype=e2(),tH=nf(),jpe=Ed(),NA=Object.prototype.hasOwnProperty,WI=1,rH=2,iH=3,zI=4,vv=1,qpe=2,z2=3,Jpe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Wpe=/[\x85\u2028\u2029]/,zpe=/[,\[\]\{\}]/,nH=/^(?:!|!!|![a-z\-]+!)$/i,sH=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function V2(r){return Object.prototype.toString.call(r)}function So(r){return r===10||r===13}function Ec(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function sf(r){return r===44||r===91||r===93||r===123||r===125}function Vpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Xpe(r){return r===120?2:r===117?4:r===85?8:0}function _pe(r){return 48<=r&&r<=57?r-48:-1}function X2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function Zpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var oH=new Array(256),aH=new Array(256);for(mc=0;mc<256;mc++)oH[mc]=X2(mc)?1:0,aH[mc]=X2(mc);var mc;function $pe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||jpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function AH(r,e){return new eH(e,new Ype(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw AH(r,e)}function VI(r,e){r.onWarning&&r.onWarning.call(null,AH(r,e))}var _2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&VI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],nH.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),NA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),sH.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function FA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` +`,e-1))}function ede(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||sf(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&sf(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&sf(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&XI(r)||t&&sf(h))break;if(So(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,_r(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(FA(r,s,o,!1),Pv(r,r.line-l),s=o=r.position,a=!1),Ec(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return FA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function tde(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(FA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else So(t)?(FA(r,i,n,!0),Pv(r,_r(r,!1,e)),i=n=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function rde(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return FA(r,t,r.position,!0),r.position++,!0;if(a===92){if(FA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),So(a))_r(r,!1,e);else if(a<256&&oH[a])r.result+=aH[a],r.position++;else if((o=Xpe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Vpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=Zpe(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else So(a)?(FA(r,t,i,!0),Pv(r,_r(r,!1,e)),t=i=r.position):r.position===r.lineStart&&XI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function ide(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,w;if(w=r.input.charCodeAt(r.position),w===91)l=93,g=!1,s=[];else if(w===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),w=r.input.charCodeAt(++r.position);w!==0;){if(_r(r,!0,e),w=r.input.charCodeAt(r.position),w===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,w===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,_r(r,!0,e))),i=r.line,af(r,e,WI,!1,!0),p=r.tag,h=r.result,_r(r,!0,e),w=r.input.charCodeAt(r.position),(u||r.line===i)&&w===58&&(c=!0,w=r.input.charCodeAt(++r.position),_r(r,!0,e),af(r,e,WI,!1,!0),C=r.result),g?of(r,s,f,p,h,C):c?s.push(of(r,null,f,p,h,C)):s.push(h),_r(r,!0,e),w=r.input.charCodeAt(r.position),w===44?(t=!0,w=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function nde(r,e){var t,i,n=vv,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)vv===n?n=g===43?z2:qpe:gt(r,"repeat of a chomping mode identifier");else if((u=_pe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Ec(g)){do g=r.input.charCodeAt(++r.position);while(Ec(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!So(g)&&g!==0)}for(;g!==0;){for(xv(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),So(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(af(r,e,zI,!0,n)&&(p?f=r.result:h=r.result),p||(of(r,c,u,g,f,h,s,o),g=f=h=null),_r(r,!0,-1),w=r.input.charCodeAt(r.position)),r.lineIndent>e&&w!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function lde(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(_r(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;Ec(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!So(o));break}if(So(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&xv(r),NA.call(_2,i)?_2[i](r,i,n):VI(r,'unknown document directive "'+i+'"')}if(_r(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,_r(r,!0,-1)):s&>(r,"directives end mark is expected"),af(r,r.lineIndent-1,zI,!1,!0),_r(r,!0,-1),r.checkLineBreaks&&Wpe.test(r.input.slice(e,r.position))&&VI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&XI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,_r(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=lH(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),cH(r,e,Qa.extend({schema:tH},t))}function ude(r,e){return uH(r,Qa.extend({schema:tH},e))}Id.exports.loadAll=cH;Id.exports.load=uH;Id.exports.safeLoadAll=cde;Id.exports.safeLoad=ude});var TH=y((h$e,Fv)=>{"use strict";var wd=pc(),Bd=tf(),gde=Ed(),fde=nf(),IH=Object.prototype.toString,yH=Object.prototype.hasOwnProperty,hde=9,yd=10,pde=13,dde=32,Cde=33,mde=34,wH=35,Ede=37,Ide=38,yde=39,wde=42,BH=44,Bde=45,bH=58,bde=61,Qde=62,Sde=63,vde=64,QH=91,SH=93,xde=96,vH=123,Pde=124,xH=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var Dde=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function kde(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Af(o))return _I;a=s>0?r.charCodeAt(s-1):null,f=f&&pH(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?DH:kH:t>9&&PH(r)?_I:c?FH:RH}function Ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Dde.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Fde(r,l)}switch(Lde(e,o,r.indent,s,a)){case DH:return e;case kH:return"'"+e.replace(/'/g,"''")+"'";case RH:return"|"+dH(e,r.indent)+CH(hH(e,n));case FH:return">"+dH(e,r.indent)+CH(hH(Mde(e,s),n));case _I:return'"'+Ude(e,s)+'"';default:throw new Bd("impossible error: invalid scalar style")}}()}function dH(r,e){var t=PH(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function CH(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function Mde(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,mH(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+mH(l,e),n=s}return i}function mH(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ude(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=fH((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Af(t)?r[s]:n||fH(t)}return e}function Kde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ic(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function Yde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new Bd("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&yd===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=Dv(r,e)),Ic(r,e+1,u,!0,g)&&(r.dump&&yd===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function EH(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ic(r,e,t,i,n,s){r.tag=null,r.dump=t,EH(r,t,!1)||EH(r,t,!0);var o=IH.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(Yde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Gde(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Hde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Kde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new Bd("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function jde(r,e){var t=[],i=[],n,s;for(kv(r,t,i),n=0,s=i.length;n{"use strict";var ZI=gH(),LH=TH();function $I(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Tr.exports.Type=Ai();Tr.exports.Schema=dc();Tr.exports.FAILSAFE_SCHEMA=qI();Tr.exports.JSON_SCHEMA=bv();Tr.exports.CORE_SCHEMA=Qv();Tr.exports.DEFAULT_SAFE_SCHEMA=nf();Tr.exports.DEFAULT_FULL_SCHEMA=Ed();Tr.exports.load=ZI.load;Tr.exports.loadAll=ZI.loadAll;Tr.exports.safeLoad=ZI.safeLoad;Tr.exports.safeLoadAll=ZI.safeLoadAll;Tr.exports.dump=LH.dump;Tr.exports.safeDump=LH.safeDump;Tr.exports.YAMLException=tf();Tr.exports.MINIMAL_SCHEMA=qI();Tr.exports.SAFE_SCHEMA=nf();Tr.exports.DEFAULT_SCHEMA=Ed();Tr.exports.scan=$I("scan");Tr.exports.parse=$I("parse");Tr.exports.compose=$I("compose");Tr.exports.addConstructor=$I("addConstructor")});var UH=y((d$e,MH)=>{"use strict";var Jde=OH();MH.exports=Jde});var HH=y((C$e,KH)=>{"use strict";function Wde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function yc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yc)}Wde(yc,Error);yc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ne]:pe})))},H=function(R){return R},j=function(R){return R},$=Ms("correct indentation"),V=" ",W=ar(" ",!1),Z=function(R){return R.length===vA*Gg},A=function(R){return R.length===(vA+1)*Gg},ae=function(){return vA++,!0},ge=function(){return vA--,!0},_=function(){return Lg()},L=Ms("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Fn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),we=/^[^\r\n\t ,\][{}:#"']/,Te=Fn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Lg().replace(/^ *| *$/g,"")},Le="--",se=ar("--",!1),Ae=/^[a-zA-Z\/0-9]/,be=Fn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,le=Fn(["\r",` +`," "," ",":",","],!0,!1),Ge="null",ie=ar("null",!1),Y=function(){return null},he="true",re=ar("true",!1),me=function(){return!0},tt="false",Rt=ar("false",!1),It=function(){return!1},Ur=Ms("string"),oi='"',pi=ar('"',!1),pr=function(){return""},di=function(R){return R},ai=function(R){return R.join("")},Os=/^[^"\\\0-\x1F\x7F]/,dr=Fn(['"',"\\",["\0",""],"\x7F"],!0,!1),Bi='\\"',_n=ar('\\"',!1),pa=function(){return'"'},EA="\\\\",kg=ar("\\\\",!1),Zn=function(){return"\\"},IA="\\/",da=ar("\\/",!1),Jp=function(){return"/"},yA="\\b",wA=ar("\\b",!1),Br=function(){return"\b"},Vl="\\f",Rg=ar("\\f",!1),Eo=function(){return"\f"},Fg="\\n",Wp=ar("\\n",!1),zp=function(){return` +`},Pr="\\r",oe=ar("\\r",!1),Io=function(){return"\r"},kn="\\t",Ng=ar("\\t",!1),bt=function(){return" "},Xl="\\u",Rn=ar("\\u",!1),$n=function(R,q,pe,Ne){return String.fromCharCode(parseInt(`0x${R}${q}${pe}${Ne}`))},es=/^[0-9a-fA-F]/,ut=Fn([["0","9"],["a","f"],["A","F"]],!1,!1),yo=Ms("blank space"),at=/^[ \t]/,ln=Fn([" "," "],!1,!1),S=Ms("white space"),Lt=/^[ \t\n\r]/,Tg=Fn([" "," ",` +`,"\r"],!1,!1),_l=`\r +`,Vp=ar(`\r +`,!1),Xp=` +`,_p=ar(` +`,!1),Zp="\r",$p=ar("\r",!1),G=0,yt=0,BA=[{line:1,column:1}],Wi=0,Zl=[],We=0,Ca;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Lg(){return r.substring(yt,G)}function uI(){return cn(yt,G)}function ed(R,q){throw q=q!==void 0?q:cn(yt,G),ec([Ms(R)],r.substring(yt,G),q)}function gI(R,q){throw q=q!==void 0?q:cn(yt,G),Og(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Fn(R,q,pe){return{type:"class",parts:R,inverted:q,ignoreCase:pe}}function $l(){return{type:"any"}}function td(){return{type:"end"}}function Ms(R){return{type:"other",description:R}}function ma(R){var q=BA[R],pe;if(q)return q;for(pe=R-1;!BA[pe];)pe--;for(q=BA[pe],q={line:q.line,column:q.column};peWi&&(Wi=G,Zl=[]),Zl.push(R))}function Og(R,q){return new yc(R,null,null,q)}function ec(R,q,pe){return new yc(yc.buildMessage(R,q),R,q,pe)}function Us(){var R;return R=Mg(),R}function tc(){var R,q,pe;for(R=G,q=[],pe=bA();pe!==t;)q.push(pe),pe=bA();return q!==t&&(yt=R,q=s(q)),R=q,R}function bA(){var R,q,pe,Ne,xe;return R=G,q=Ia(),q!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,We===0&&ke(a)),pe!==t?(Ne=Nr(),Ne!==t?(xe=Ea(),xe!==t?(yt=R,q=l(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Mg(){var R,q,pe;for(R=G,q=[],pe=Ug();pe!==t;)q.push(pe),pe=Ug();return q!==t&&(yt=R,q=c(q)),R=q,R}function Ug(){var R,q,pe,Ne,xe,qe,dt,Ft,Nn;if(R=G,q=Nr(),q===t&&(q=null),q!==t){if(pe=G,r.charCodeAt(G)===35?(Ne=u,G++):(Ne=t,We===0&&ke(g)),Ne!==t){if(xe=[],qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t),qe!==t)for(;qe!==t;)xe.push(qe),qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&ke(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t);else xe=t;xe!==t?(Ne=[Ne,xe],pe=Ne):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Ne=[],xe=Hs(),xe!==t)for(;xe!==t;)Ne.push(xe),xe=Hs();else Ne=t;Ne!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=Ia(),q!==t?(pe=rc(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Ia(),q!==t?(pe=Ks(),pe!==t?(Ne=Nr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&ke(C)),xe!==t?(qe=Nr(),qe===t&&(qe=null),qe!==t?(dt=Ea(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=Ia(),q!==t)if(pe=Ks(),pe!==t)if(Ne=Nr(),Ne!==t)if(xe=fI(),xe!==t){if(qe=[],dt=Hs(),dt!==t)for(;dt!==t;)qe.push(dt),dt=Hs();else qe=t;qe!==t?(yt=R,q=w(pe,xe),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=Ia(),q!==t)if(pe=Ks(),pe!==t){if(Ne=[],xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t),xe!==t)for(;xe!==t;)Ne.push(xe),xe=G,qe=Nr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&ke(v)),dt!==t?(Ft=Nr(),Ft===t&&(Ft=null),Ft!==t?(Nn=Ks(),Nn!==t?(yt=xe,qe=D(pe,Nn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t);else Ne=t;Ne!==t?(xe=Nr(),xe===t&&(xe=null),xe!==t?(r.charCodeAt(G)===58?(qe=p,G++):(qe=t,We===0&&ke(C)),qe!==t?(dt=Nr(),dt===t&&(dt=null),dt!==t?(Ft=Ea(),Ft!==t?(yt=R,q=T(pe,Ne,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ea(){var R,q,pe,Ne,xe,qe,dt;if(R=G,q=G,We++,pe=G,Ne=Gs(),Ne!==t?(xe=$e(),xe!==t?(r.charCodeAt(G)===45?(qe=o,G++):(qe=t,We===0&&ke(a)),qe!==t?(dt=Nr(),dt!==t?(Ne=[Ne,xe,qe,dt],pe=Ne):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),We--,pe!==t?(G=q,q=void 0):q=t,q!==t?(pe=Hs(),pe!==t?(Ne=wo(),Ne!==t?(xe=tc(),xe!==t?(qe=QA(),qe!==t?(yt=R,q=H(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Gs(),q!==t?(pe=wo(),pe!==t?(Ne=Mg(),Ne!==t?(xe=QA(),xe!==t?(yt=R,q=H(Ne),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=ic(),q!==t){if(pe=[],Ne=Hs(),Ne!==t)for(;Ne!==t;)pe.push(Ne),Ne=Hs();else pe=t;pe!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ia(){var R,q,pe;for(We++,R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));return q!==t?(yt=G,pe=Z(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),We--,R===t&&(q=t,We===0&&ke($)),R}function $e(){var R,q,pe;for(R=G,q=[],r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=V,G++):(pe=t,We===0&&ke(W));return q!==t?(yt=G,pe=A(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),R}function wo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function QA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function rc(){var R;return R=nc(),R===t&&(R=rd()),R}function Ks(){var R,q,pe;if(R=nc(),R===t){if(R=G,q=[],pe=Kg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Kg();else q=t;q!==t&&(yt=R,q=_()),R=q}return R}function ic(){var R;return R=id(),R===t&&(R=hI(),R===t&&(R=nc(),R===t&&(R=rd()))),R}function fI(){var R;return R=id(),R===t&&(R=nc(),R===t&&(R=Kg())),R}function rd(){var R,q,pe,Ne,xe,qe;if(We++,R=G,N.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ue)),q!==t){for(pe=[],Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&ke(Te)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&ke(Te)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;return We--,R===t&&(q=t,We===0&&ke(L)),R}function Kg(){var R,q,pe,Ne,xe;if(R=G,r.substr(G,2)===Le?(q=Le,G+=2):(q=t,We===0&&ke(se)),q===t&&(q=null),q!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,We===0&&ke(be)),pe!==t){for(Ne=[],fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&ke(le));xe!==t;)Ne.push(xe),fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&ke(le));Ne!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function id(){var R,q;return R=G,r.substr(G,4)===Ge?(q=Ge,G+=4):(q=t,We===0&&ke(ie)),q!==t&&(yt=R,q=Y()),R=q,R}function hI(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,We===0&&ke(re)),q!==t&&(yt=R,q=me()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,We===0&&ke(Rt)),q!==t&&(yt=R,q=It()),R=q),R}function nc(){var R,q,pe,Ne;return We++,R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&ke(pi)),q!==t?(r.charCodeAt(G)===34?(pe=oi,G++):(pe=t,We===0&&ke(pi)),pe!==t?(yt=R,q=pr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&ke(pi)),q!==t?(pe=pI(),pe!==t?(r.charCodeAt(G)===34?(Ne=oi,G++):(Ne=t,We===0&&ke(pi)),Ne!==t?(yt=R,q=di(pe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),We--,R===t&&(q=t,We===0&&ke(Ur)),R}function pI(){var R,q,pe;if(R=G,q=[],pe=Hg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Hg();else q=t;return q!==t&&(yt=R,q=ai(q)),R=q,R}function Hg(){var R,q,pe,Ne,xe,qe;return Os.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&ke(dr)),R===t&&(R=G,r.substr(G,2)===Bi?(q=Bi,G+=2):(q=t,We===0&&ke(_n)),q!==t&&(yt=R,q=pa()),R=q,R===t&&(R=G,r.substr(G,2)===EA?(q=EA,G+=2):(q=t,We===0&&ke(kg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===IA?(q=IA,G+=2):(q=t,We===0&&ke(da)),q!==t&&(yt=R,q=Jp()),R=q,R===t&&(R=G,r.substr(G,2)===yA?(q=yA,G+=2):(q=t,We===0&&ke(wA)),q!==t&&(yt=R,q=Br()),R=q,R===t&&(R=G,r.substr(G,2)===Vl?(q=Vl,G+=2):(q=t,We===0&&ke(Rg)),q!==t&&(yt=R,q=Eo()),R=q,R===t&&(R=G,r.substr(G,2)===Fg?(q=Fg,G+=2):(q=t,We===0&&ke(Wp)),q!==t&&(yt=R,q=zp()),R=q,R===t&&(R=G,r.substr(G,2)===Pr?(q=Pr,G+=2):(q=t,We===0&&ke(oe)),q!==t&&(yt=R,q=Io()),R=q,R===t&&(R=G,r.substr(G,2)===kn?(q=kn,G+=2):(q=t,We===0&&ke(Ng)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Xl?(q=Xl,G+=2):(q=t,We===0&&ke(Rn)),q!==t?(pe=SA(),pe!==t?(Ne=SA(),Ne!==t?(xe=SA(),xe!==t?(qe=SA(),qe!==t?(yt=R,q=$n(pe,Ne,xe,qe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function SA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&ke(ut)),R}function Nr(){var R,q;if(We++,R=[],at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ln)),q!==t)for(;q!==t;)R.push(q),at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(ln));else R=t;return We--,R===t&&(q=t,We===0&&ke(yo)),R}function dI(){var R,q;if(We++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(Tg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&ke(Tg));else R=t;return We--,R===t&&(q=t,We===0&&ke(S)),R}function Hs(){var R,q,pe,Ne,xe,qe;if(R=G,q=Gs(),q!==t){for(pe=[],Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Nr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(q=[q,pe],R=q):(G=R,R=t)}else G=R,R=t;return R}function Gs(){var R;return r.substr(G,2)===_l?(R=_l,G+=2):(R=t,We===0&&ke(Vp)),R===t&&(r.charCodeAt(G)===10?(R=Xp,G++):(R=t,We===0&&ke(_p)),R===t&&(r.charCodeAt(G)===13?(R=Zp,G++):(R=t,We===0&&ke($p)))),R}let Gg=2,vA=0;if(Ca=n(),Ca!==t&&G===r.length)return Ca;throw Ca!==t&&G{"use strict";var $de=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=$de(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};Tv.exports=JH;Tv.exports.default=JH});var zH=y((B$e,eCe)=>{eCe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var wc=y(Mn=>{"use strict";var XH=zH(),vo=process.env;Object.defineProperty(Mn,"_vendors",{value:XH.map(function(r){return r.constant})});Mn.name=null;Mn.isPR=null;XH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return VH(i)});if(Mn[r.constant]=t,t)switch(Mn.name=r.name,typeof r.pr){case"string":Mn.isPR=!!vo[r.pr];break;case"object":"env"in r.pr?Mn.isPR=r.pr.env in vo&&vo[r.pr.env]!==r.pr.ne:"any"in r.pr?Mn.isPR=r.pr.any.some(function(i){return!!vo[i]}):Mn.isPR=VH(r.pr);break;default:Mn.isPR=null}});Mn.isCI=!!(vo.CI||vo.CONTINUOUS_INTEGRATION||vo.BUILD_NUMBER||vo.RUN_ID||Mn.name);function VH(r){return typeof r=="string"?!!vo[r]:Object.keys(r).every(function(e){return vo[e]===r[e]})}});var ry=y(Un=>{"use strict";Object.defineProperty(Un,"__esModule",{value:!0});var tCe=0,rCe=1,iCe=2,nCe="",sCe="\0",oCe=-1,aCe=/^(-h|--help)(?:=([0-9]+))?$/,ACe=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,lCe=/^-[a-zA-Z]{2,}$/,cCe=/^([^=]+)=([\s\S]*)$/,uCe=process.env.DEBUG_CLI==="1";Un.BATCH_REGEX=lCe;Un.BINDING_REGEX=cCe;Un.DEBUG=uCe;Un.END_OF_INPUT=sCe;Un.HELP_COMMAND_INDEX=oCe;Un.HELP_REGEX=aCe;Un.NODE_ERRORED=iCe;Un.NODE_INITIAL=tCe;Un.NODE_SUCCESS=rCe;Un.OPTION_REGEX=ACe;Un.START_OF_INPUT=nCe});var iy=y(Qd=>{"use strict";Object.defineProperty(Qd,"__esModule",{value:!0});var gCe=ry(),Lv=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Ov=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} + +${this.candidates.map(({usage:n})=>`$ ${n}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${i} +${Uv(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${Uv(e)}`}},Mv=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${Uv(e)}`}},Uv=r=>`While running ${r.filter(e=>e!==gCe.END_OF_INPUT).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;Qd.AmbiguousSyntaxError=Mv;Qd.UnknownSyntaxError=Ov;Qd.UsageError=Lv});var va=y(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});var _H=iy(),ZH=Symbol("clipanion/isOption");function fCe(r){return{...r,[ZH]:!0}}function hCe(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function Kv(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function $H(r,e){return e.length===1?new _H.UsageError(`${r}: ${Kv(e[0],!0)}`):new _H.UsageError(`${r}: +${e.map(t=>` +- ${Kv(t)}`).join("")}`)}function pCe(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw $H(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}TA.applyValidator=pCe;TA.cleanValidationError=Kv;TA.formatError=$H;TA.isOptionSymbol=ZH;TA.makeCommandOption=fCe;TA.rerouteArguments=hCe});var ns=y(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var eG=/^[a-zA-Z_][a-zA-Z0-9_]*$/,tG=/^#[0-9a-f]{6}$/i,rG=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,iG=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,nG=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,Hv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,sG=r=>()=>r;function Qt({test:r}){return sG(r)()}function Zr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function LA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:eG.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function Bc(r,e){return t=>{let i=r[e];return r[e]=t,Bc(r,e).bind(null,i)}}function oG(r,e){return t=>{r[e]=t}}function ny(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}var aG=()=>Qt({test:(r,e)=>!0});function dCe(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Zr(r)})`):!0})}var CCe=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Zr(r)})`):!0});function mCe(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Zr(i)})`)})}var ECe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),ICe=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=ECe.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Zr(r)})`)}return!0}}),yCe=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Zr(r)})`)}return!0}}),wCe=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&Hv.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Zr(r)})`)}return!0}}),BCe=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Zr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=AG(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Zr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Zr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Zr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:LA(n,l),coercion:Bc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:LA(n,l)}),`Extraneous property (got ${Zr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:oG(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},vCe=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Zr(e)})`)}),xCe=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),PCe=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?Bc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),DCe=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),kCe=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),RCe=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),FCe=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),AG=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),NCe=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),LCe=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),OCe=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),MCe=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),UCe=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),KCe=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),GCe=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Zr(e)})`)}),YCe=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),jCe=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),qCe=()=>Qt({test:(r,e)=>nG.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Zr(r)})`)}),JCe=()=>Qt({test:(r,e)=>Hv.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Zr(r)})`)}),WCe=({alpha:r=!1})=>Qt({test:(e,t)=>(r?tG.test(e):rG.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Zr(e)})`)}),zCe=()=>Qt({test:(r,e)=>iG.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Zr(r)})`)}),VCe=(r=aG())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Zr(e)})`)}return r(i,t)}}),XCe=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${ny(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},_Ce=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${ny(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},ZCe=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(st.KeyRelationship||(st.KeyRelationship={}));var $Ce={[st.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[st.KeyRelationship.Requires]:{expect:!0,message:"requires using"}},eme=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=$Ce[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${ny(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})};st.applyCascade=PCe;st.base64RegExp=iG;st.colorStringAlphaRegExp=rG;st.colorStringRegExp=tG;st.computeKey=LA;st.getPrintable=Zr;st.hasExactLength=AG;st.hasForbiddenKeys=_Ce;st.hasKeyRelationship=eme;st.hasMaxLength=FCe;st.hasMinLength=RCe;st.hasMutuallyExclusiveKeys=ZCe;st.hasRequiredKeys=XCe;st.hasUniqueItems=NCe;st.isArray=BCe;st.isAtLeast=OCe;st.isAtMost=MCe;st.isBase64=zCe;st.isBoolean=ICe;st.isDate=wCe;st.isDict=QCe;st.isEnum=mCe;st.isHexColor=WCe;st.isISO8601=JCe;st.isInExclusiveRange=KCe;st.isInInclusiveRange=UCe;st.isInstanceOf=vCe;st.isInteger=HCe;st.isJSON=VCe;st.isLiteral=dCe;st.isLowerCase=YCe;st.isNegative=TCe;st.isNullable=kCe;st.isNumber=yCe;st.isObject=SCe;st.isOneOf=xCe;st.isOptional=DCe;st.isPositive=LCe;st.isString=CCe;st.isTuple=bCe;st.isUUID4=qCe;st.isUnknown=aG;st.isUpperCase=jCe;st.iso8601RegExp=Hv;st.makeCoercionFn=Bc;st.makeSetter=oG;st.makeTrait=sG;st.makeValidator=Qt;st.matchesRegExp=GCe;st.plural=ny;st.pushError=pt;st.simpleKeyRegExp=eG;st.uuid4RegExp=nG});var bc=y(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});var lG=va();function tme(r){if(r&&r.__esModule)return r;var e=Object.create(null);return r&&Object.keys(r).forEach(function(t){if(t!=="default"){var i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return r[t]}})}}),e.default=r,Object.freeze(e)}var Sd=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(function(){return tme(ns())}),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw lG.formatError("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Sd.isOption=lG.isOptionSymbol;Sd.Default=[];Gv.Command=Sd});var jv=y(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});var cG=80,Yv=Array(cG).fill("\u2501");for(let r=0;r<=24;++r)Yv[Yv.length-r]=`\x1B[38;5;${232+r}m\u2501`;var rme={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},ime={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nme(r){let e=r.split(` +`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` +`)}function sme(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`),r=nme(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` +`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` +`)}).join(` + +`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} +`:""}vd.formatMarkdownish=sme;vd.richFormat=rme;vd.textFormat=ime});var ly=y(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});var lt=ry(),ay=iy();function Vi(r){lt.DEBUG&&console.log(r)}var uG={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lt.HELP_COMMAND_INDEX};function qv(){return{nodes:[Li(),Li(),Li()]}}function gG(r){let e=qv(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(lt.NODE_INITIAL)}function hG(r,{prefix:e=""}={}){if(lt.DEBUG){Vi(`${e}Nodes are:`);for(let t=0;tl!==lt.NODE_ERRORED).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===lt.NODE_ERRORED))throw new ay.UnknownSyntaxError(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=pG(a)}if(i.length>0){Vi(" Results:");for(let s of i)Vi(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else Vi(" No results");return i}function ome(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,lt.END_OF_INPUT)){for(let{to:t}of r.statics[lt.END_OF_INPUT])if(t===lt.NODE_SUCCESS)return!0}return!1}function ame(r,e,t){let i=t&&e.length>0?[""]:[],n=Jv(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let C=r.nodes[p],w=Object.keys(C.statics);for(let B of Object.keys(C.statics)){let v=w[0];for(let{to:D,reducer:T}of C.statics[v])T==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ome(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==lt.END_OF_INPUT||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===lt.NODE_ERRORED)continue;let p=IG(f,c);if(p!==null)for(let C of p)a([...i,C],l)}}return[...s].sort()}function Ame(r,e){let t=Jv(r,[...e,lt.END_OF_INPUT]);return dG(e,t.map(({state:i})=>i))}function pG(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function dG(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new ay.UnknownSyntaxError(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=CG(c);if(u.length>1)throw new ay.AmbiguousSyntaxError(r,u.map(g=>g.candidateUsage));return u[0]}function CG(r){let e=[],t=[];for(let i of r)i.selectedIndex===lt.HELP_COMMAND_INDEX?t.push(i):e.push(i);return t.length>0&&e.push({...uG,path:mG(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function mG(r,e,...t){return e===void 0?Array.from(r):mG(r.filter((i,n)=>i===e[n]),...t)}function Li(){return{dynamics:[],shortcuts:[],statics:{}}}function Wv(r){return r===lt.NODE_SUCCESS||r===lt.NODE_ERRORED}function sy(r,e=0){return{to:Wv(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function EG(r,e=0){let t=Li();for(let[i,n]of r.dynamics)t.dynamics.push([i,sy(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(sy(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>sy(s,e));return t}function Ei(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Qc(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function xo(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function xd(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function IG(r,e){let t=Array.isArray(r)?Pd[r[0]]:Pd[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var Pd={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&<.BATCH_REGEX.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(lt.BINDING_REGEX);return!r.ignoreOptions&&!!n&<.OPTION_REGEX.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&<.HELP_REGEX.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&<.OPTION_REGEX.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!lt.OPTION_REGEX.test(e)};Pd.isOption.suggest=(r,e,t=!0)=>t?null:[e];var oy={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(lt.BINDING_REGEX);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Po})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(lt.HELP_REGEX);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===lt.END_OF_INPUT?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Po=Symbol(),Ay=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Po)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Po?this.arity.extra.push(e):this.arity.extra!==Po&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Po)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Po?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=qv(),t=lt.NODE_INITIAL,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=ss(e,Li()),xo(e,lt.NODE_INITIAL,lt.START_OF_INPUT,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=ss(e,Li());Qc(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=ss(e,Li());Ei(e,l,"isHelp",f,["useHelp",this.cliIndex]),xo(e,f,lt.END_OF_INPUT,lt.NODE_SUCCESS,["setSelectedIndex",lt.HELP_COMMAND_INDEX]),this.registerOptions(e,l)}this.arity.leading.length>0&&xo(e,l,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&xo(e,h,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]),Ei(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Po||this.arity.extra.length>0){let f=ss(e,Li());if(Qc(e,c,f),this.arity.extra===Po){let h=ss(e,Li());this.arity.proxy||this.registerOptions(e,h),Ei(e,c,s,h,"pushExtraNoLimits"),Ei(e,h,s,h,"pushExtraNoLimits"),Qc(e,h,f)}else for(let h=0;h0&&xo(e,u,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Ei(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Ei(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=ss(e,Li());for(let o of i.names)Ei(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eAme(i,n),suggest:(n,s)=>ame(i,n,s)}}};Ar.CliBuilder=Dd;Ar.CommandBuilder=Ay;Ar.NoLimits=Po;Ar.aggregateHelpStates=CG;Ar.cloneNode=EG;Ar.cloneTransition=sy;Ar.debug=Vi;Ar.debugMachine=hG;Ar.execute=xd;Ar.injectNode=ss;Ar.isTerminalNode=Wv;Ar.makeAnyOfMachine=gG;Ar.makeNode=Li;Ar.makeStateMachine=qv;Ar.reducers=oy;Ar.registerDynamic=Ei;Ar.registerShortcut=Qc;Ar.registerStatic=xo;Ar.runMachineInternal=Jv;Ar.selectBestState=dG;Ar.simplifyMachine=fG;Ar.suggest=IG;Ar.tests=Pd;Ar.trimSmallerBranches=pG});var yG=y(zv=>{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});var lme=bc(),kd=class extends lme.Command{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new kd(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}};zv.HelpCommand=kd});var vG=y(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});var cme=ry(),wG=bc(),ume=J("tty"),gme=ly(),hn=jv(),fme=yG();function hme(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var BG=hme(ume),bG=Symbol("clipanion/errorCommand");function pme(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var OA=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new gme.CliBuilder({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new OA(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[wG.Command.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case cme.HELP_COMMAND_INDEX:return fme.HelpCommand.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[bG]=a,l}}break}}async run(e,t){var i;let n,s={...OA.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?dme(s):SG,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?hn.formatMarkdownish(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?hn.formatMarkdownish(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?hn.formatMarkdownish(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[hn.formatMarkdownish(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof wG.Command?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=hn.formatMarkdownish(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` +`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} +`,a+=` +`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} +`,f.length>0){a+=` +`,a+=`${hn.richFormat.header("Options")} +`;let h=f.reduce((p,C)=>Math.max(p,C.definition.length),0);a+=` +`;for(let{definition:p,description:C}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${hn.formatMarkdownish(C,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`,a+=`${this.format(t).header("Details")} +`,a+=` +`,a+=hn.formatMarkdownish(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=`${this.format(t).header("Examples")} +`;for(let[h,p]of u)a+=` +`,a+=hn.formatMarkdownish(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} +`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>"u")continue;let p=typeof f.usage.category<"u"?hn.formatMarkdownish(f.usage.category,{format:this.format(t),paragraphs:!1}):null,C=l.get(p);typeof C>"u"&&l.set(p,C=[]);let{usage:w}=this.getUsageByIndex(h);C.push({commandClass:f,usage:w})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} +`:a+=`${this.format(t).header(`${this.binaryVersion}`)} +`,a+=` ${this.format(t).bold(n)}${this.binaryName} +`):a+=`${this.format(t).bold(n)}${this.binaryName} +`;for(let f of c){let h=l.get(f).slice().sort((C,w)=>C.usage.localeCompare(w.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` +`,a+=`${this.format(t).header(`${p}`)} +`;for(let{commandClass:C,usage:w}of h){let B=C.usage.description||"undocumented";a+=` +`,a+=` ${this.format(t).bold(w)} +`,a+=` ${hn.formatMarkdownish(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=hn.formatMarkdownish("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[bG])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` +`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:OA.defaultContext.colorDepth>1)?hn.richFormat:hn.textFormat}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};OA.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in BG.default.WriteStream.prototype?BG.default.WriteStream.prototype.getColorDepth():pme()};var QG;function dme(r){let e=QG;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return SG;let{AsyncLocalStorage:t}=J("async_hooks");e=QG=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function SG(r){return r()}Vv.Cli=OA});var xG=y(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});var Cme=bc(),cy=class extends Cme.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};cy.paths=[["--clipanion=definitions"]];Xv.DefinitionsCommand=cy});var PG=y(_v=>{"use strict";Object.defineProperty(_v,"__esModule",{value:!0});var mme=bc(),uy=class extends mme.Command{async execute(){this.context.stdout.write(this.cli.usage())}};uy.paths=[["-h"],["--help"]];_v.HelpCommand=uy});var DG=y(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});var Eme=bc(),gy=class extends Eme.Command{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};gy.paths=[["-v"],["--version"]];Zv.VersionCommand=gy});var kG=y(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var Ime=xG(),yme=PG(),wme=DG();Rd.DefinitionsCommand=Ime.DefinitionsCommand;Rd.HelpCommand=yme.HelpCommand;Rd.VersionCommand=wme.VersionCommand});var FG=y($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});var RG=va();function Bme(r,e,t){let[i,n]=RG.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return RG.makeCommandOption({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}$v.Array=Bme});var TG=y(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var NG=va();function bme(r,e,t){let[i,n]=NG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return NG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}ex.Boolean=bme});var OG=y(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});var LG=va();function Qme(r,e,t){let[i,n]=LG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return LG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}tx.Counter=Qme});var MG=y(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var Sme=va();function vme(r={}){return Sme.makeCommandOption({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}rx.Proxy=vme});var UG=y(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var xme=va(),Pme=ly();function Dme(r={}){return xme.makeCommandOption({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Pme.NoLimits||a.extra===!1&&oo)}})}ix.Rest=Dme});var KG=y(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var Fd=va(),kme=ly();function Rme(r,e,t){let[i,n]=Fd.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Fd.makeCommandOption({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?Fd.applyValidator(g!=null?g:c,f,n.validator):f}})}function Fme(r={}){let{required:e=!0}=r;return Fd.makeCommandOption({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});var lf=va(),Tme=FG(),Lme=TG(),Ome=OG(),Mme=MG(),Ume=UG(),Kme=KG();pn.applyValidator=lf.applyValidator;pn.cleanValidationError=lf.cleanValidationError;pn.formatError=lf.formatError;pn.isOptionSymbol=lf.isOptionSymbol;pn.makeCommandOption=lf.makeCommandOption;pn.rerouteArguments=lf.rerouteArguments;pn.Array=Tme.Array;pn.Boolean=Lme.Boolean;pn.Counter=Ome.Counter;pn.Proxy=Mme.Proxy;pn.Rest=Ume.Rest;pn.String=Kme.String});var Xe=y(MA=>{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});var Hme=iy(),Gme=bc(),Yme=jv(),jme=vG(),qme=kG(),Jme=HG();MA.UsageError=Hme.UsageError;MA.Command=Gme.Command;MA.formatMarkdownish=Yme.formatMarkdownish;MA.Cli=jme.Cli;MA.Builtins=qme;MA.Option=Jme});var YG=y((J$e,GG)=>{"use strict";GG.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var cf=y((W$e,sx)=>{"use strict";var Wme=YG(),jG=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Wme(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};sx.exports=jG;sx.exports.default=jG});var Nd=y((V$e,qG)=>{var zme="2.0.0",Vme=Number.MAX_SAFE_INTEGER||9007199254740991,Xme=16;qG.exports={SEMVER_SPEC_VERSION:zme,MAX_LENGTH:256,MAX_SAFE_INTEGER:Vme,MAX_SAFE_COMPONENT_LENGTH:Xme}});var Td=y((X$e,JG)=>{var _me=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};JG.exports=_me});var Sc=y((KA,WG)=>{var{MAX_SAFE_COMPONENT_LENGTH:ox}=Nd(),Zme=Td();KA=WG.exports={};var $me=KA.re=[],_e=KA.src=[],Ze=KA.t={},eEe=0,St=(r,e,t)=>{let i=eEe++;Zme(i,e),Ze[r]=i,_e[i]=e,$me[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${_e[Ze.NUMERICIDENTIFIER]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${_e[Ze.NUMERICIDENTIFIERLOOSE]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${_e[Ze.PRERELEASEIDENTIFIER]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${_e[Ze.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${_e[Ze.BUILDIDENTIFIER]}(?:\\.${_e[Ze.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${_e[Ze.MAINVERSION]}${_e[Ze.PRERELEASE]}?${_e[Ze.BUILD]}?`);St("FULL",`^${_e[Ze.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${_e[Ze.MAINVERSIONLOOSE]}${_e[Ze.PRERELEASELOOSE]}?${_e[Ze.BUILD]}?`);St("LOOSE",`^${_e[Ze.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${_e[Ze.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${_e[Ze.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:${_e[Ze.PRERELEASE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:${_e[Ze.PRERELEASELOOSE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${ox}})(?:\\.(\\d{1,${ox}}))?(?:\\.(\\d{1,${ox}}))?(?:$|[^\\d])`);St("COERCERTL",_e[Ze.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${_e[Ze.LONETILDE]}\\s+`,!0);KA.tildeTrimReplace="$1~";St("TILDE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${_e[Ze.LONECARET]}\\s+`,!0);KA.caretTrimReplace="$1^";St("CARET",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]}|${_e[Ze.XRANGEPLAIN]})`,!0);KA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${_e[Ze.XRANGEPLAIN]})\\s+-\\s+(${_e[Ze.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${_e[Ze.XRANGEPLAINLOOSE]})\\s+-\\s+(${_e[Ze.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Ld=y((_$e,zG)=>{var tEe=["includePrerelease","loose","rtl"],rEe=r=>r?typeof r!="object"?{loose:!0}:tEe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};zG.exports=rEe});var hy=y((Z$e,_G)=>{var VG=/^[0-9]+$/,XG=(r,e)=>{let t=VG.test(r),i=VG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rXG(e,r);_G.exports={compareIdentifiers:XG,rcompareIdentifiers:iEe}});var Oi=y(($$e,tY)=>{var py=Td(),{MAX_LENGTH:ZG,MAX_SAFE_INTEGER:dy}=Nd(),{re:$G,t:eY}=Sc(),nEe=Ld(),{compareIdentifiers:Od}=hy(),Kn=class{constructor(e,t){if(t=nEe(t),e instanceof Kn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ZG)throw new TypeError(`version is longer than ${ZG} characters`);py("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?$G[eY.LOOSE]:$G[eY.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>dy||this.major<0)throw new TypeError("Invalid major version");if(this.minor>dy||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>dy||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};tY.exports=Kn});var vc=y((eet,sY)=>{var{MAX_LENGTH:sEe}=Nd(),{re:rY,t:iY}=Sc(),nY=Oi(),oEe=Ld(),aEe=(r,e)=>{if(e=oEe(e),r instanceof nY)return r;if(typeof r!="string"||r.length>sEe||!(e.loose?rY[iY.LOOSE]:rY[iY.FULL]).test(r))return null;try{return new nY(r,e)}catch{return null}};sY.exports=aEe});var aY=y((tet,oY)=>{var AEe=vc(),lEe=(r,e)=>{let t=AEe(r,e);return t?t.version:null};oY.exports=lEe});var lY=y((ret,AY)=>{var cEe=vc(),uEe=(r,e)=>{let t=cEe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};AY.exports=uEe});var uY=y((iet,cY)=>{var gEe=Oi(),fEe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new gEe(r,t).inc(e,i).version}catch{return null}};cY.exports=fEe});var os=y((net,fY)=>{var gY=Oi(),hEe=(r,e,t)=>new gY(r,t).compare(new gY(e,t));fY.exports=hEe});var Cy=y((set,hY)=>{var pEe=os(),dEe=(r,e,t)=>pEe(r,e,t)===0;hY.exports=dEe});var CY=y((oet,dY)=>{var pY=vc(),CEe=Cy(),mEe=(r,e)=>{if(CEe(r,e))return null;{let t=pY(r),i=pY(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};dY.exports=mEe});var EY=y((aet,mY)=>{var EEe=Oi(),IEe=(r,e)=>new EEe(r,e).major;mY.exports=IEe});var yY=y((Aet,IY)=>{var yEe=Oi(),wEe=(r,e)=>new yEe(r,e).minor;IY.exports=wEe});var BY=y((cet,wY)=>{var BEe=Oi(),bEe=(r,e)=>new BEe(r,e).patch;wY.exports=bEe});var QY=y((uet,bY)=>{var QEe=vc(),SEe=(r,e)=>{let t=QEe(r,e);return t&&t.prerelease.length?t.prerelease:null};bY.exports=SEe});var vY=y((get,SY)=>{var vEe=os(),xEe=(r,e,t)=>vEe(e,r,t);SY.exports=xEe});var PY=y((fet,xY)=>{var PEe=os(),DEe=(r,e)=>PEe(r,e,!0);xY.exports=DEe});var my=y((het,kY)=>{var DY=Oi(),kEe=(r,e,t)=>{let i=new DY(r,t),n=new DY(e,t);return i.compare(n)||i.compareBuild(n)};kY.exports=kEe});var FY=y((pet,RY)=>{var REe=my(),FEe=(r,e)=>r.sort((t,i)=>REe(t,i,e));RY.exports=FEe});var TY=y((det,NY)=>{var NEe=my(),TEe=(r,e)=>r.sort((t,i)=>NEe(i,t,e));NY.exports=TEe});var Md=y((Cet,LY)=>{var LEe=os(),OEe=(r,e,t)=>LEe(r,e,t)>0;LY.exports=OEe});var Ey=y((met,OY)=>{var MEe=os(),UEe=(r,e,t)=>MEe(r,e,t)<0;OY.exports=UEe});var ax=y((Eet,MY)=>{var KEe=os(),HEe=(r,e,t)=>KEe(r,e,t)!==0;MY.exports=HEe});var Iy=y((Iet,UY)=>{var GEe=os(),YEe=(r,e,t)=>GEe(r,e,t)>=0;UY.exports=YEe});var yy=y((yet,KY)=>{var jEe=os(),qEe=(r,e,t)=>jEe(r,e,t)<=0;KY.exports=qEe});var Ax=y((wet,HY)=>{var JEe=Cy(),WEe=ax(),zEe=Md(),VEe=Iy(),XEe=Ey(),_Ee=yy(),ZEe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return JEe(r,t,i);case"!=":return WEe(r,t,i);case">":return zEe(r,t,i);case">=":return VEe(r,t,i);case"<":return XEe(r,t,i);case"<=":return _Ee(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};HY.exports=ZEe});var YY=y((Bet,GY)=>{var $Ee=Oi(),eIe=vc(),{re:wy,t:By}=Sc(),tIe=(r,e)=>{if(r instanceof $Ee)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(wy[By.COERCE]);else{let i;for(;(i=wy[By.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),wy[By.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;wy[By.COERCERTL].lastIndex=-1}return t===null?null:eIe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};GY.exports=tIe});var qY=y((bet,jY)=>{"use strict";jY.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Ud=y((Qet,JY)=>{"use strict";JY.exports=Ht;Ht.Node=xc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var sIe=Ud(),Pc=Symbol("max"),Pa=Symbol("length"),uf=Symbol("lengthCalculator"),Hd=Symbol("allowStale"),Dc=Symbol("maxAge"),xa=Symbol("dispose"),WY=Symbol("noDisposeOnSet"),Ii=Symbol("lruList"),zs=Symbol("cache"),VY=Symbol("updateAgeOnGet"),lx=()=>1,ux=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[Pc]=e.max||1/0,i=e.length||lx;if(this[uf]=typeof i!="function"?lx:i,this[Hd]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Dc]=e.maxAge||0,this[xa]=e.dispose,this[WY]=e.noDisposeOnSet||!1,this[VY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Pc]=e||1/0,Kd(this)}get max(){return this[Pc]}set allowStale(e){this[Hd]=!!e}get allowStale(){return this[Hd]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Dc]=e,Kd(this)}get maxAge(){return this[Dc]}set lengthCalculator(e){typeof e!="function"&&(e=lx),e!==this[uf]&&(this[uf]=e,this[Pa]=0,this[Ii].forEach(t=>{t.length=this[uf](t.value,t.key),this[Pa]+=t.length})),Kd(this)}get lengthCalculator(){return this[uf]}get length(){return this[Pa]}get itemCount(){return this[Ii].length}rforEach(e,t){t=t||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;zY(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[Ii].head;i!==null;){let n=i.next;zY(this,e,i,t),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[xa]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[xa](e.key,e.value)),this[zs]=new Map,this[Ii]=new sIe,this[Pa]=0}dump(){return this[Ii].map(e=>by(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,t,i){if(i=i||this[Dc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[uf](t,e);if(this[zs].has(e)){if(s>this[Pc])return gf(this,this[zs].get(e)),!1;let l=this[zs].get(e).value;return this[xa]&&(this[WY]||this[xa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Pa]+=s-l.length,l.length=s,this.get(e),Kd(this),!0}let o=new gx(e,t,s,n,i);return o.length>this[Pc]?(this[xa]&&this[xa](e,t),!1):(this[Pa]+=o.length,this[Ii].unshift(o),this[zs].set(e,this[Ii].head),Kd(this),!0)}has(e){if(!this[zs].has(e))return!1;let t=this[zs].get(e).value;return!by(this,t)}get(e){return cx(this,e,!0)}peek(e){return cx(this,e,!1)}pop(){let e=this[Ii].tail;return e?(gf(this,e),e.value):null}del(e){gf(this,this[zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[zs].forEach((e,t)=>cx(this,t,!1))}},cx=(r,e,t)=>{let i=r[zs].get(e);if(i){let n=i.value;if(by(r,n)){if(gf(r,i),!r[Hd])return}else t&&(r[VY]&&(i.value.now=Date.now()),r[Ii].unshiftNode(i));return n.value}},by=(r,e)=>{if(!e||!e.maxAge&&!r[Dc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Dc]&&t>r[Dc]},Kd=r=>{if(r[Pa]>r[Pc])for(let e=r[Ii].tail;r[Pa]>r[Pc]&&e!==null;){let t=e.prev;gf(r,e),e=t}},gf=(r,e)=>{if(e){let t=e.value;r[xa]&&r[xa](t.key,t.value),r[Pa]-=t.length,r[zs].delete(t.key),r[Ii].removeNode(e)}},gx=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},zY=(r,e,t,i)=>{let n=t.value;by(r,n)&&(gf(r,t),r[Hd]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};XY.exports=ux});var as=y((xet,tj)=>{var kc=class{constructor(e,t){if(t=aIe(t),e instanceof kc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new kc(e.raw,t);if(e instanceof fx)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!$Y(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&gIe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=ZY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[Qi.HYPHENRANGELOOSE]:Mi[Qi.HYPHENRANGE];e=e.replace(o,wIe(this.options.includePrerelease)),jr("hyphen replace",e),e=e.replace(Mi[Qi.COMPARATORTRIM],lIe),jr("comparator trim",e,Mi[Qi.COMPARATORTRIM]),e=e.replace(Mi[Qi.TILDETRIM],cIe),e=e.replace(Mi[Qi.CARETTRIM],uIe),e=e.split(/\s+/).join(" ");let a=s?Mi[Qi.COMPARATORLOOSE]:Mi[Qi.COMPARATOR],l=e.split(" ").map(f=>fIe(f,this.options)).join(" ").split(/\s+/).map(f=>yIe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new fx(f,this.options)),c=l.length,u=new Map;for(let f of l){if($Y(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return ZY.set(i,g),g}intersects(e,t){if(!(e instanceof kc))throw new TypeError("a Range is required");return this.set.some(i=>ej(i,t)&&e.set.some(n=>ej(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new AIe(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",gIe=r=>r.value==="",ej=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},fIe=(r,e)=>(jr("comp",r,e),r=dIe(r,e),jr("caret",r),r=hIe(r,e),jr("tildes",r),r=mIe(r,e),jr("xrange",r),r=IIe(r,e),jr("stars",r),r),Xi=r=>!r||r.toLowerCase()==="x"||r==="*",hIe=(r,e)=>r.trim().split(/\s+/).map(t=>pIe(t,e)).join(" "),pIe=(r,e)=>{let t=e.loose?Mi[Qi.TILDELOOSE]:Mi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{jr("tilde",r,i,n,s,o,a);let l;return Xi(n)?l="":Xi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Xi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(jr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,jr("tilde return",l),l})},dIe=(r,e)=>r.trim().split(/\s+/).map(t=>CIe(t,e)).join(" "),CIe=(r,e)=>{jr("caret",r,e);let t=e.loose?Mi[Qi.CARETLOOSE]:Mi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{jr("caret",r,n,s,o,a,l);let c;return Xi(s)?c="":Xi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Xi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(jr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(jr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),jr("caret return",c),c})},mIe=(r,e)=>(jr("replaceXRanges",r,e),r.split(/\s+/).map(t=>EIe(t,e)).join(" ")),EIe=(r,e)=>{r=r.trim();let t=e.loose?Mi[Qi.XRANGELOOSE]:Mi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{jr("xRange",r,i,n,s,o,a,l);let c=Xi(s),u=c||Xi(o),g=u||Xi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),jr("xRange return",i),i})},IIe=(r,e)=>(jr("replaceStars",r,e),r.trim().replace(Mi[Qi.STAR],"")),yIe=(r,e)=>(jr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),wIe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Xi(i)?t="":Xi(n)?t=`>=${i}.0.0${r?"-0":""}`:Xi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Xi(c)?l="":Xi(u)?l=`<${+c+1}.0.0-0`:Xi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),BIe=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Gd=y((Pet,oj)=>{var Yd=Symbol("SemVer ANY"),ff=class{static get ANY(){return Yd}constructor(e,t){if(t=bIe(t),e instanceof ff){if(e.loose===!!t.loose)return e;e=e.value}px("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Yd?this.value="":this.value=this.operator+this.semver.version,px("comp",this)}parse(e){let t=this.options.loose?rj[ij.COMPARATORLOOSE]:rj[ij.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new nj(i[2],this.options.loose):this.semver=Yd}toString(){return this.value}test(e){if(px("Comparator.test",e,this.options.loose),this.semver===Yd||e===Yd)return!0;if(typeof e=="string")try{e=new nj(e,this.options)}catch{return!1}return hx(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof ff))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new sj(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new sj(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=hx(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=hx(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};oj.exports=ff;var bIe=Ld(),{re:rj,t:ij}=Sc(),hx=Ax(),px=Td(),nj=Oi(),sj=as()});var jd=y((Det,aj)=>{var QIe=as(),SIe=(r,e,t)=>{try{e=new QIe(e,t)}catch{return!1}return e.test(r)};aj.exports=SIe});var lj=y((ket,Aj)=>{var vIe=as(),xIe=(r,e)=>new vIe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));Aj.exports=xIe});var uj=y((Ret,cj)=>{var PIe=Oi(),DIe=as(),kIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new DIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new PIe(i,t))}),i};cj.exports=kIe});var fj=y((Fet,gj)=>{var RIe=Oi(),FIe=as(),NIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new FIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new RIe(i,t))}),i};gj.exports=NIe});var dj=y((Net,pj)=>{var dx=Oi(),TIe=as(),hj=Md(),LIe=(r,e)=>{r=new TIe(r,e);let t=new dx("0.0.0");if(r.test(t)||(t=new dx("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new dx(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||hj(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||hj(t,s))&&(t=s)}return t&&r.test(t)?t:null};pj.exports=LIe});var mj=y((Tet,Cj)=>{var OIe=as(),MIe=(r,e)=>{try{return new OIe(r,e).range||"*"}catch{return null}};Cj.exports=MIe});var Qy=y((Let,wj)=>{var UIe=Oi(),yj=Gd(),{ANY:KIe}=yj,HIe=as(),GIe=jd(),Ej=Md(),Ij=Ey(),YIe=yy(),jIe=Iy(),qIe=(r,e,t,i)=>{r=new UIe(r,i),e=new HIe(e,i);let n,s,o,a,l;switch(t){case">":n=Ej,s=YIe,o=Ij,a=">",l=">=";break;case"<":n=Ij,s=jIe,o=Ej,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(GIe(r,e,i))return!1;for(let c=0;c{h.semver===KIe&&(h=new yj(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};wj.exports=qIe});var bj=y((Oet,Bj)=>{var JIe=Qy(),WIe=(r,e,t)=>JIe(r,e,">",t);Bj.exports=WIe});var Sj=y((Met,Qj)=>{var zIe=Qy(),VIe=(r,e,t)=>zIe(r,e,"<",t);Qj.exports=VIe});var Pj=y((Uet,xj)=>{var vj=as(),XIe=(r,e,t)=>(r=new vj(r,t),e=new vj(e,t),r.intersects(e));xj.exports=XIe});var kj=y((Ket,Dj)=>{var _Ie=jd(),ZIe=os();Dj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>ZIe(u,g,t));for(let u of o)_Ie(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var Rj=as(),Sy=Gd(),{ANY:Cx}=Sy,qd=jd(),mx=os(),$Ie=(r,e,t={})=>{if(r===e)return!0;r=new Rj(r,t),e=new Rj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=eye(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},eye=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===Cx){if(e.length===1&&e[0].semver===Cx)return!0;t.includePrerelease?r=[new Sy(">=0.0.0-0")]:r=[new Sy(">=0.0.0")]}if(e.length===1&&e[0].semver===Cx){if(t.includePrerelease)return!0;e=[new Sy(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=Fj(n,h,t):h.operator==="<"||h.operator==="<="?s=Nj(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=mx(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!qd(h,String(n),t)||s&&!qd(h,String(s),t))return null;for(let p of e)if(!qd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=Fj(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!qd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=Nj(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!qd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},Fj=(r,e,t)=>{if(!r)return e;let i=mx(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},Nj=(r,e,t)=>{if(!r)return e;let i=mx(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};Tj.exports=$Ie});var $r=y((Get,Oj)=>{var Ex=Sc();Oj.exports={re:Ex.re,src:Ex.src,tokens:Ex.t,SEMVER_SPEC_VERSION:Nd().SEMVER_SPEC_VERSION,SemVer:Oi(),compareIdentifiers:hy().compareIdentifiers,rcompareIdentifiers:hy().rcompareIdentifiers,parse:vc(),valid:aY(),clean:lY(),inc:uY(),diff:CY(),major:EY(),minor:yY(),patch:BY(),prerelease:QY(),compare:os(),rcompare:vY(),compareLoose:PY(),compareBuild:my(),sort:FY(),rsort:TY(),gt:Md(),lt:Ey(),eq:Cy(),neq:ax(),gte:Iy(),lte:yy(),cmp:Ax(),coerce:YY(),Comparator:Gd(),Range:as(),satisfies:jd(),toComparators:lj(),maxSatisfying:uj(),minSatisfying:fj(),minVersion:dj(),validRange:mj(),outside:Qy(),gtr:bj(),ltr:Sj(),intersects:Pj(),simplifyRange:kj(),subset:Lj()}});var Ix=y(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.VERSION=void 0;vy.VERSION="9.1.0"});var Gt=y((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof xy=="object"&&xy.exports?xy.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:Mj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var w={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(w,"global");break;case"i":o(w,"ignoreCase");break;case"m":o(w,"multiLine");break;case"u":o(w,"unicode");break;case"y":o(w,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:w,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var w=this.disjunction();return this.consumeChar(")"),{type:C,value:w,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,w=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(w),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var w=this.classAtom(),B=w.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(w){C.push(w)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var w=p[C];p.hasOwnProperty(C)&&(w.type!==void 0?this.visit(w):Array.isArray(w)&&w.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ky=y(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.clearRegExpParserCache=hf.getRegExpAst=void 0;var tye=Py(),Dy={},rye=new tye.RegExpParser;function iye(r){var e=r.toString();if(Dy.hasOwnProperty(e))return Dy[e];var t=rye.pattern(e);return Dy[e]=t,t}hf.getRegExpAst=iye;function nye(){Dy={}}hf.clearRegExpParserCache=nye});var Yj=y(dn=>{"use strict";var sye=dn&&dn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var Kj=Py(),As=Gt(),Hj=ky(),Da=wx(),Gj="Complement Sets are not supported for first char optimization";dn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function oye(r,e){e===void 0&&(e=!1);try{var t=(0,Hj.getRegExpAst)(r),i=Fy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Gj)e&&(0,As.PRINT_WARNING)(""+dn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,As.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+Kj.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}dn.getOptimizedStartCodesIndices=oye;function Fy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Da.minOptimizationVal)for(var f=u.from>=Da.minOptimizationVal?u.from:Da.minOptimizationVal,h=u.to,p=(0,Da.charCodeToOptimizedIndex)(f),C=(0,Da.charCodeToOptimizedIndex)(h),w=p;w<=C;w++)e[w]=w}}});break;case"Group":Fy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&yx(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,As.values)(e)}dn.firstCharOptimizedIndices=Fy;function Ry(r,e,t){var i=(0,Da.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&aye(r,e)}function aye(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Da.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Da.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Uj(r,e){return(0,As.find)(r.value,function(t){if(typeof t=="number")return(0,As.contains)(e,t);var i=t;return(0,As.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function yx(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,As.isArray)(r.value)?(0,As.every)(r.value,yx):yx(r.value):!1}var Aye=function(r){sye(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,As.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Uj(t,this.targetCharCodes)===void 0&&(this.found=!0):Uj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(Kj.BaseRegExpVisitor);function lye(r,e){if(e instanceof RegExp){var t=(0,Hj.getRegExpAst)(e),i=new Aye(r);return i.visit(t),i.found}else return(0,As.find)(e,function(n){return(0,As.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=lye});var wx=y(Je=>{"use strict";var jj=Je&&Je.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Je,"__esModule",{value:!0});Je.charCodeToOptimizedIndex=Je.minOptimizationVal=Je.buildLineBreakIssueMessage=Je.LineTerminatorOptimizedTester=Je.isShortPattern=Je.isCustomPattern=Je.cloneEmptyGroups=Je.performWarningRuntimeChecks=Je.performRuntimeChecks=Je.addStickyFlag=Je.addStartOfInput=Je.findUnreachablePatterns=Je.findModesThatDoNotExist=Je.findInvalidGroupType=Je.findDuplicatePatterns=Je.findUnsupportedFlags=Je.findStartOfInputAnchor=Je.findEmptyMatchRegExps=Je.findEndOfInputAnchor=Je.findInvalidPatterns=Je.findMissingPatterns=Je.validatePatterns=Je.analyzeTokenTypes=Je.enableSticky=Je.disableSticky=Je.SUPPORT_STICKY=Je.MODES=Je.DEFAULT_MODE=void 0;var qj=Py(),ir=Jd(),Se=Gt(),pf=Yj(),Jj=ky(),Do="PATTERN";Je.DEFAULT_MODE="defaultMode";Je.MODES="modes";Je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function cye(){Je.SUPPORT_STICKY=!1}Je.disableSticky=cye;function uye(){Je.SUPPORT_STICKY=!0}Je.enableSticky=uye;function gye(r,e){e=(0,Se.defaults)(e,{useSticky:Je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){wye()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(v){return v[Do]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(v){var D=v[Do];if((0,Se.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Qx(D):bx(D)}else{if((0,Se.isFunction)(D))return n=!0,{exec:D};if((0,Se.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Qx(j):bx(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Se.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,Se.isString)(D))return D;if((0,Se.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,Se.isArray)(D)?(0,Se.map)(D,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,D)];return T}}),c=(0,Se.map)(i,function(v){return v.PUSH_MODE}),u=(0,Se.map)(i,function(v){return(0,Se.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=oq(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(D){if((0,Se.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(nq(D,v)===!1)return(0,pf.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,Se.map)(i,vx),h=(0,Se.map)(s,iq),p=(0,Se.reduce)(i,function(v,D){var T=D.GROUP;return(0,Se.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,Se.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var w=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Sx(H);Bx(v,j,C[T])}else if((0,Se.isArray)(D.START_CHARS_HINT)){var $;(0,Se.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Sx(Z);$!==A&&($=A,Bx(v,A,C[T]))})}else if((0,Se.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)w=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,pf.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(V)&&(w=!1),(0,Se.forEach)(V,function(W){Bx(v,W,C[T])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+pf.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return v},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:w}}Je.analyzeTokenTypes=gye;function fye(r,e){var t=[],i=Wj(r);t=t.concat(i.errors);var n=zj(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(hye(s)),t=t.concat(eq(s)),t=t.concat(tq(s,e)),t=t.concat(rq(s)),t}Je.validatePatterns=fye;function hye(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[Do])});return e=e.concat(Vj(t)),e=e.concat(_j(t)),e=e.concat(Zj(t)),e=e.concat($j(t)),e=e.concat(Xj(t)),e}function Wj(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,Do)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findMissingPatterns=Wj;function zj(r){var e=(0,Se.filter)(r,function(n){var s=n[Do];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findInvalidPatterns=zj;var pye=/[^\\][\$]/;function Vj(r){var e=function(n){jj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return pye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findEndOfInputAnchor=Vj;function Xj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Je.findEmptyMatchRegExps=Xj;var dye=/[^\\[][\^]|^\^/;function _j(r){var e=function(n){jj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(qj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Do];try{var o=(0,Jj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return dye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findStartOfInputAnchor=_j;function Zj(r){var e=(0,Se.filter)(r,function(i){var n=i[Do];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Je.findUnsupportedFlags=Zj;function $j(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Je.findDuplicatePatterns=$j;function eq(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Je.findInvalidGroupType=eq;function tq(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Je.findModesThatDoNotExist=tq;function rq(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&mye(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Je.findUnreachablePatterns=rq;function Cye(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function mye(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function bx(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Je.addStartOfInput=bx;function Qx(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Je.addStickyFlag=Qx;function Eye(r,e,t){var i=[];return(0,Se.has)(r,Je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,Je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,Je.MODES)&&(0,Se.has)(r,Je.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Je.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,Je.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Je.performRuntimeChecks=Eye;function Iye(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[Do]===ir.Lexer.NA}),a=oq(t);return e&&(0,Se.forEach)(o,function(l){var c=nq(l,a);if(c!==!1){var u=sq(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,pf.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Je.performWarningRuntimeChecks=Iye;function yye(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Je.cloneEmptyGroups=yye;function vx(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}Je.isCustomPattern=vx;function iq(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Je.isShortPattern=iq;Je.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Je.buildLineBreakIssueMessage=sq;function oq(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Bx(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Je.minOptimizationVal=256;var Ny=[];function Sx(r){return r255?255+~~(r/255):r}}});var df=y(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var ei=Gt();function Bye(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=Bye;function bye(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=bye;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function Qye(r){var e=aq(r);Aq(e),cq(e),lq(e),(0,ei.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=Qye;function aq(r){for(var e=(0,ei.cloneArr)(r),t=r,i=!0;i;){t=(0,ei.compact)((0,ei.flatten)((0,ei.map)(t,function(s){return s.CATEGORIES})));var n=(0,ei.difference)(t,e);e=e.concat(n),(0,ei.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=aq;function Aq(r){(0,ei.forEach)(r,function(e){uq(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),xx(e)&&!(0,ei.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xx(e)||(e.CATEGORIES=[]),gq(e)||(e.categoryMatches=[]),fq(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=Aq;function lq(r){(0,ei.forEach)(r,function(e){e.categoryMatches=[],(0,ei.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=lq;function cq(r){(0,ei.forEach)(r,function(e){Px([],e)})}Nt.assignCategoriesMapProp=cq;function Px(r,e){(0,ei.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ei.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ei.contains)(i,t)||Px(i,t)})}Nt.singleAssignCategoriesToksMap=Px;function uq(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=uq;function xx(r){return(0,ei.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=xx;function gq(r){return(0,ei.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=gq;function fq(r){return(0,ei.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=fq;function Sye(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.isTokenType=Sye});var Dx=y(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});Ty.defaultLexerErrorProvider=void 0;Ty.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Jd=y(Rc=>{"use strict";Object.defineProperty(Rc,"__esModule",{value:!0});Rc.Lexer=Rc.LexerDefinitionErrorType=void 0;var Vs=wx(),nr=Gt(),vye=df(),xye=Dx(),Pye=ky(),Dye;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(Dye=Rc.LexerDefinitionErrorType||(Rc.LexerDefinitionErrorType={}));var Wd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:xye.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Wd);var kye=function(){function r(e,t){var i=this;if(t===void 0&&(t=Wd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(Wd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Wd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Vs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Wd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[Vs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Vs.DEFAULT_MODE]=Vs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Vs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,vye.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Vs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Vs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,Pye.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,w,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,Vs.cloneEmptyGroups)(this.emptyGroups),_=this.trackStartLines,L=this.config.lineTerminatorsPattern,N=0,ue=[],we=[],Te=[],Pe=[];Object.freeze(Pe);var Le=void 0;function se(){return ue}function Ae(dr){var Bi=(0,Vs.charCodeToOptimizedIndex)(dr),_n=we[Bi];return _n===void 0?Pe:_n}var be=function(dr){if(Te.length===1&&dr.tokenType.PUSH_MODE===void 0){var Bi=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(dr);Z.push({offset:dr.startOffset,line:dr.startLine!==void 0?dr.startLine:void 0,column:dr.startColumn!==void 0?dr.startColumn:void 0,length:dr.image.length,message:Bi})}else{Te.pop();var _n=(0,nr.last)(Te);ue=i.patternIdxToConfig[_n],we=i.charCodeToPatternIdxToConfig[_n],N=ue.length;var pa=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;we&&pa?Le=Ae:Le=se}};function fe(dr){Te.push(dr),we=this.charCodeToPatternIdxToConfig[dr],ue=this.patternIdxToConfig[dr],N=ue.length,N=ue.length;var Bi=this.canModeBeOptimized[dr]&&this.config.safeMode===!1;we&&Bi?Le=Ae:Le=se}fe.call(this,t);for(var le;jc.length){c=a,u=g,le=tt;break}}}break}}if(c!==null){if(f=c.length,h=le.group,h!==void 0&&(p=le.tokenTypeIdx,C=this.createTokenInstance(c,j,p,le.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),_===!0&&le.canLineTerminator===!0){var It=0,Ur=void 0,oi=void 0;L.lastIndex=0;do Ur=L.test(c),Ur===!0&&(oi=L.lastIndex-1,It++);while(Ur===!0);It!==0&&(A=A+It,ae=f-oi,this.updateTokenEndLineColumnLocation(C,h,oi,It,A,ae,f))}this.handleModes(le,be,fe,C)}else{for(var pi=j,pr=A,di=ae,ai=!1;!ai&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Rc.Lexer=kye});var HA=y(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var Xs=Gt(),Rye=Jd(),kx=df();function Fye(r){return wq(r)?r.LABEL:r.name}Si.tokenLabel=Fye;function Nye(r){return r.name}Si.tokenName=Nye;function wq(r){return(0,Xs.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=wq;var Tye="parent",hq="categories",pq="label",dq="group",Cq="push_mode",mq="pop_mode",Eq="longer_alt",Iq="line_breaks",yq="start_chars_hint";function Bq(r){return Lye(r)}Si.createToken=Bq;function Lye(r){var e=r.pattern,t={};if(t.name=r.name,(0,Xs.isUndefined)(e)||(t.PATTERN=e),(0,Xs.has)(r,Tye))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Xs.has)(r,hq)&&(t.CATEGORIES=r[hq]),(0,kx.augmentTokenTypes)([t]),(0,Xs.has)(r,pq)&&(t.LABEL=r[pq]),(0,Xs.has)(r,dq)&&(t.GROUP=r[dq]),(0,Xs.has)(r,mq)&&(t.POP_MODE=r[mq]),(0,Xs.has)(r,Cq)&&(t.PUSH_MODE=r[Cq]),(0,Xs.has)(r,Eq)&&(t.LONGER_ALT=r[Eq]),(0,Xs.has)(r,Iq)&&(t.LINE_BREAKS=r[Iq]),(0,Xs.has)(r,yq)&&(t.START_CHARS_HINT=r[yq]),t}Si.EOF=Bq({name:"EOF",pattern:Rye.Lexer.NA});(0,kx.augmentTokenTypes)([Si.EOF]);function Oye(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=Oye;function Mye(r,e){return(0,kx.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=Mye});var Cn=y(Wt=>{"use strict";var ka=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var lr=Gt(),Uye=HA(),ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,lr.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=ko;var bq=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(ko);Wt.NonTerminal=bq;var Qq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Rule=Qq;var Sq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Alternative=Sq;var vq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Option=vq;var xq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatory=xq;var Pq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionMandatoryWithSeparator=Pq;var Dq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.Repetition=Dq;var kq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(ko);Wt.RepetitionWithSeparator=kq;var Rq=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(ko);Wt.Alternation=Rq;var Ly=function(){function r(e){this.idx=1,(0,lr.assign)(this,(0,lr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=Ly;function Kye(r){return(0,lr.map)(r,zd)}Wt.serializeGrammar=Kye;function zd(r){function e(s){return(0,lr.map)(s,zd)}if(r instanceof bq){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,lr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Sq)return{type:"Alternative",definition:e(r.definition)};if(r instanceof vq)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof xq)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Pq)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:zd(new Ly({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof kq)return{type:"RepetitionWithSeparator",idx:r.idx,separator:zd(new Ly({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Dq)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Rq)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof Ly){var i={type:"Terminal",name:r.terminalType.name,label:(0,Uye.tokenLabel)(r.terminalType),idx:r.idx};(0,lr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,lr.isRegExp)(n)?n.source:n),i}else{if(r instanceof Qq)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Wt.serializeProduction=zd});var My=y(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.RestWalker=void 0;var Rx=Gt(),mn=Cn(),Hye=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Rx.forEach)(e.definition,function(n,s){var o=(0,Rx.drop)(e.definition,s+1);if(n instanceof mn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof mn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof mn.Alternative)i.walkFlat(n,o,t);else if(n instanceof mn.Option)i.walkOption(n,o,t);else if(n instanceof mn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof mn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof mn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof mn.Repetition)i.walkMany(n,o,t);else if(n instanceof mn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Fq(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Fq(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Rx.forEach)(e.definition,function(o){var a=new mn.Alternative({definition:[o]});n.walk(a,s)})},r}();Oy.RestWalker=Hye;function Fq(r,e,t){var i=[new mn.Option({definition:[new mn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Cf=y(Uy=>{"use strict";Object.defineProperty(Uy,"__esModule",{value:!0});Uy.GAstVisitor=void 0;var Ro=Cn(),Gye=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Uy.GAstVisitor=Gye});var Xd=y(Ui=>{"use strict";var Yye=Ui&&Ui.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ui,"__esModule",{value:!0});Ui.collectMethods=Ui.DslMethodsCollectorVisitor=Ui.getProductionDslName=Ui.isBranchingProd=Ui.isOptionalProd=Ui.isSequenceProd=void 0;var Vd=Gt(),Qr=Cn(),jye=Cf();function qye(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Ui.isSequenceProd=qye;function Fx(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,Vd.some)(r.definition,function(i){return Fx(i,e)}):r instanceof Qr.NonTerminal&&(0,Vd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,Vd.every)(r.definition,function(i){return Fx(i,e)})):!1}Ui.isOptionalProd=Fx;function Jye(r){return r instanceof Qr.Alternation}Ui.isBranchingProd=Jye;function Wye(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Ui.getProductionDslName=Wye;var Nq=function(r){Yye(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(jye.GAstVisitor);Ui.DslMethodsCollectorVisitor=Nq;var Ky=new Nq;function zye(r){Ky.reset(),r.accept(Ky);var e=Ky.dslMethods;return Ky.reset(),e}Ui.collectMethods=zye});var Tx=y(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var Hy=Gt(),Tq=Cn(),Nx=Xd();function Gy(r){if(r instanceof Tq.NonTerminal)return Gy(r.referencedRule);if(r instanceof Tq.Terminal)return Mq(r);if((0,Nx.isSequenceProd)(r))return Lq(r);if((0,Nx.isBranchingProd)(r))return Oq(r);throw Error("non exhaustive match")}Fo.first=Gy;function Lq(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Nx.isOptionalProd)(s),e=e.concat(Gy(s)),i=i+1,n=t.length>i;return(0,Hy.uniq)(e)}Fo.firstForSequence=Lq;function Oq(r){var e=(0,Hy.map)(r.definition,function(t){return Gy(t)});return(0,Hy.uniq)((0,Hy.flatten)(e))}Fo.firstForBranching=Oq;function Mq(r){return[r.terminalType]}Fo.firstForTerminal=Mq});var Lx=y(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.IN=void 0;Yy.IN="_~IN~_"});var Yq=y(ls=>{"use strict";var Vye=ls&&ls.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ls,"__esModule",{value:!0});ls.buildInProdFollowPrefix=ls.buildBetweenProdsFollowPrefix=ls.computeAllProdsFollows=ls.ResyncFollowsWalker=void 0;var Xye=My(),_ye=Tx(),Uq=Gt(),Kq=Lx(),Zye=Cn(),Hq=function(r){Vye(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Gq(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new Zye.Alternative({definition:o}),l=(0,_ye.first)(a);this.follows[s]=l},e}(Xye.RestWalker);ls.ResyncFollowsWalker=Hq;function $ye(r){var e={};return(0,Uq.forEach)(r,function(t){var i=new Hq(t).startWalking();(0,Uq.assign)(e,i)}),e}ls.computeAllProdsFollows=$ye;function Gq(r,e){return r.name+e+Kq.IN}ls.buildBetweenProdsFollowPrefix=Gq;function ewe(r){var e=r.terminalType.name;return e+r.idx+Kq.IN}ls.buildInProdFollowPrefix=ewe});var _d=y(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.defaultGrammarValidatorErrorProvider=Ra.defaultGrammarResolverErrorProvider=Ra.defaultParserErrorProvider=void 0;var mf=HA(),twe=Gt(),_s=Gt(),Ox=Cn(),jq=Xd();Ra.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,mf.hasTokenLabel)(e),o=s?"--> "+(0,mf.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,_s.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return"["+(0,_s.map)(h,function(p){return(0,mf.tokenLabel)(p)}).join(", ")+"]"}),g=(0,_s.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,_s.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return"["+(0,_s.map)(u,function(g){return(0,mf.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ra.defaultParserErrorProvider);Ra.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Ra.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Ox.Terminal?u.terminalType.name:u instanceof Ox.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,jq.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,mf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,jq.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=twe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Ox.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Wq=y(GA=>{"use strict";var rwe=GA&&GA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(GA,"__esModule",{value:!0});GA.GastRefResolverVisitor=GA.resolveGrammar=void 0;var iwe=Hn(),qq=Gt(),nwe=Cf();function swe(r,e){var t=new Jq(r,e);return t.resolveRefs(),t.errors}GA.resolveGrammar=swe;var Jq=function(r){rwe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,qq.forEach)((0,qq.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:iwe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(nwe.GAstVisitor);GA.GastRefResolverVisitor=Jq});var $d=y(Lr=>{"use strict";var Fc=Lr&&Lr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Lr,"__esModule",{value:!0});Lr.nextPossibleTokensAfter=Lr.possiblePathsFrom=Lr.NextTerminalAfterAtLeastOneSepWalker=Lr.NextTerminalAfterAtLeastOneWalker=Lr.NextTerminalAfterManySepWalker=Lr.NextTerminalAfterManyWalker=Lr.AbstractNextTerminalAfterProductionWalker=Lr.NextAfterTokenWalker=Lr.AbstractNextPossibleTokensWalker=void 0;var zq=My(),Ut=Gt(),owe=Tx(),Dt=Cn(),Vq=function(r){Fc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Ut.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Ut.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Ut.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(zq.RestWalker);Lr.AbstractNextPossibleTokensWalker=Vq;var awe=function(r){Fc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,owe.first)(o),this.found=!0}},e}(Vq);Lr.NextAfterTokenWalker=awe;var Zd=function(r){Fc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(zq.RestWalker);Lr.AbstractNextTerminalAfterProductionWalker=Zd;var Awe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterManyWalker=Awe;var lwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterManySepWalker=lwe;var cwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterAtLeastOneWalker=cwe;var uwe=function(r){Fc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Zd);Lr.NextTerminalAfterAtLeastOneSepWalker=uwe;function Xq(r,e,t){t===void 0&&(t=[]),t=(0,Ut.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Ut.drop)(r,n+1))}function o(c){var u=Xq(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var _=B.definition[ge],L={idx:p,def:_.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:w};g.push(L),g.push(o)}else if(B instanceof Dt.Alternative)g.push({idx:p,def:B.definition.concat((0,Ut.drop)(h)),ruleStack:C,occurrenceStack:w});else if(B instanceof Dt.Rule)g.push(fwe(B,p,C,w));else throw Error("non exhaustive match")}}return u}Lr.nextPossibleTokensAfter=gwe;function fwe(r,e,t,i){var n=(0,Ut.cloneArr)(t);n.push(r.name);var s=(0,Ut.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var eC=y(_t=>{"use strict";var $q=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,"__esModule",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),_q=$d(),hwe=My(),jy=df(),YA=Cn(),pwe=Cf(),li;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(li=_t.PROD_TYPE||(_t.PROD_TYPE={}));function dwe(r){if(r instanceof YA.Option)return li.OPTION;if(r instanceof YA.Repetition)return li.REPETITION;if(r instanceof YA.RepetitionMandatory)return li.REPETITION_MANDATORY;if(r instanceof YA.RepetitionMandatoryWithSeparator)return li.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof YA.RepetitionWithSeparator)return li.REPETITION_WITH_SEPARATOR;if(r instanceof YA.Alternation)return li.ALTERNATION;throw Error("non exhaustive match")}_t.getProdType=dwe;function Cwe(r,e,t,i,n,s){var o=tJ(r,e,t),a=Kx(o)?jy.tokenStructuredMatcherNoCategories:jy.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=Cwe;function mwe(r,e,t,i,n,s){var o=rJ(r,e,n,t),a=Kx(o)?jy.tokenStructuredMatcherNoCategories:jy.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=mwe;function Ewe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Hx=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),Sr=Gt(),No=Hn(),Gx=Xd(),Ef=eC(),bwe=$d(),Zs=Cn(),Yx=Cf();function Qwe(r,e,t,i,n){var s=er.map(r,function(h){return Swe(h,i)}),o=er.map(r,function(h){return jx(h,h,i)}),a=[],l=[],c=[];(0,Sr.every)(o,Sr.isEmpty)&&(a=(0,Sr.map)(r,function(h){return AJ(h,i)}),l=(0,Sr.map)(r,function(h){return lJ(h,e,i)}),c=gJ(r,e,i));var u=Pwe(r,t,i),g=(0,Sr.map)(r,function(h){return uJ(h,i)}),f=(0,Sr.map)(r,function(h){return aJ(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=Qwe;function Swe(r,e){var t=new oJ;r.accept(t);var i=t.allProductions,n=er.groupBy(i,nJ),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Gx.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=sJ(l);return f&&(g.parameter=f),g});return o}function nJ(r){return(0,Gx.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+sJ(r)}zt.identifyProductionForDuplicates=nJ;function sJ(r){return r instanceof Zs.Terminal?r.terminalType.name:r instanceof Zs.NonTerminal?r.nonTerminalName:""}var oJ=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Yx.GAstVisitor);zt.OccurrenceValidationCollector=oJ;function aJ(r,e,t,i){var n=[],s=(0,Sr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=aJ;function vwe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=vwe;function jx(r,e,t,i){i===void 0&&(i=[]);var n=[],s=tC(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),jx(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=jx;function tC(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof Zs.NonTerminal)e.push(t.referencedRule);else if(t instanceof Zs.Alternative||t instanceof Zs.Option||t instanceof Zs.RepetitionMandatory||t instanceof Zs.RepetitionMandatoryWithSeparator||t instanceof Zs.RepetitionWithSeparator||t instanceof Zs.Repetition)e=e.concat(tC(t.definition));else if(t instanceof Zs.Alternation)e=er.flatten(er.map(t.definition,function(o){return tC(o.definition)}));else if(!(t instanceof Zs.Terminal))throw Error("non exhaustive match");var i=(0,Gx.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(tC(s))}else return e}zt.getFirstNoneTerminal=tC;var qx=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Yx.GAstVisitor);function AJ(r,e){var t=new qx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,bwe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=AJ;function lJ(r,e,t){var i=new qx;r.accept(i);var n=i.alternations;n=(0,Sr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,Ef.getLookaheadPathsForOr)(l,r,c,a),g=xwe(u,a,r,t),f=fJ(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=lJ;var cJ=function(r){Hx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Yx.GAstVisitor);zt.RepetionCollector=cJ;function uJ(r,e){var t=new qx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=uJ;function gJ(r,e,t){var i=[];return(0,Sr.forEach)(r,function(n){var s=new cJ;n.accept(s);var o=s.allProductions;(0,Sr.forEach)(o,function(a){var l=(0,Ef.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,Ef.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Sr.isEmpty)((0,Sr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=gJ;function xwe(r,e,t,i){var n=[],s=(0,Sr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Sr.forEach)(l,function(u){var g=[c];(0,Sr.forEach)(r,function(f,h){c!==h&&(0,Ef.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,Ef.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Sr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function fJ(r,e,t,i){var n=[],s=(0,Sr.reduce)(r,function(o,a,l){var c=(0,Sr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Sr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Sr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(If,"__esModule",{value:!0});If.validateGrammar=If.resolveGrammar=void 0;var Wx=Gt(),Dwe=Wq(),kwe=Jx(),hJ=_d();function Rwe(r){r=(0,Wx.defaults)(r,{errMsgProvider:hJ.defaultGrammarResolverErrorProvider});var e={};return(0,Wx.forEach)(r.rules,function(t){e[t.name]=t}),(0,Dwe.resolveGrammar)(e,r.errMsgProvider)}If.resolveGrammar=Rwe;function Fwe(r){return r=(0,Wx.defaults)(r,{errMsgProvider:hJ.defaultGrammarValidatorErrorProvider}),(0,kwe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}If.validateGrammar=Fwe});var yf=y(En=>{"use strict";var rC=En&&En.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(En,"__esModule",{value:!0});En.EarlyExitException=En.NotAllInputParsedException=En.NoViableAltException=En.MismatchedTokenException=En.isRecognitionException=void 0;var Nwe=Gt(),dJ="MismatchedTokenException",CJ="NoViableAltException",mJ="EarlyExitException",EJ="NotAllInputParsedException",IJ=[dJ,CJ,mJ,EJ];Object.freeze(IJ);function Twe(r){return(0,Nwe.contains)(IJ,r.name)}En.isRecognitionException=Twe;var qy=function(r){rC(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Lwe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=dJ,s}return e}(qy);En.MismatchedTokenException=Lwe;var Owe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=CJ,s}return e}(qy);En.NoViableAltException=Owe;var Mwe=function(r){rC(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=EJ,n}return e}(qy);En.NotAllInputParsedException=Mwe;var Uwe=function(r){rC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mJ,s}return e}(qy);En.EarlyExitException=Uwe});var Vx=y(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var Jy=HA(),cs=Gt(),Kwe=yf(),Hwe=Lx(),Gwe=Hn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function zx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=zx;zx.prototype=Error.prototype;var Ywe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,cs.has)(e,"recoveryEnabled")?e.recoveryEnabled:Gwe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=yJ)},r.prototype.getTokenToInsert=function(e){var t=(0,Jy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new Kwe.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,cs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new zx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,cs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,cs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,cs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,cs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,cs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,cs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,cs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[Jy.EOF];var t=e.ruleName+e.idxInCallingRule+Hwe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,Jy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,cs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,cs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,cs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=Ywe;function yJ(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=Jy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=yJ});var Wy=y(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<{"use strict";Object.defineProperty(zy,"__esModule",{value:!0});zy.LooksAhead=void 0;var Fa=eC(),$s=Gt(),wJ=Hn(),Na=Wy(),Nc=Xd(),qwe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,$s.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:wJ.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,$s.has)(e,"maxLookahead")?e.maxLookahead:wJ.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,$s.isES2015MapSupported)()?new Map:[],(0,$s.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,$s.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Nc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,$s.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Nc.getProductionDslName)(g)+f,function(){var h=(0,Fa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Na.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Na.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,$s.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Na.MANY_IDX,Fa.PROD_TYPE.REPETITION,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Na.OPTION_IDX,Fa.PROD_TYPE.OPTION,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Na.AT_LEAST_ONE_IDX,Fa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Na.AT_LEAST_ONE_SEP_IDX,Fa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Nc.getProductionDslName)(g))}),(0,$s.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Na.MANY_SEP_IDX,Fa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Nc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Fa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Na.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Fa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Fa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Na.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();zy.LooksAhead=qwe});var bJ=y(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Jwe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.defineNameProp=jA.functionName=jA.classNameFromInstance=void 0;var Xwe=Gt();function _we(r){return SJ(r.constructor)}jA.classNameFromInstance=_we;var QJ="name";function SJ(r){var e=r.name;return e||"anonymous"}jA.functionName=SJ;function Zwe(r,e){var t=Object.getOwnPropertyDescriptor(r,QJ);return(0,Xwe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,QJ,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}jA.defineNameProp=Zwe});var kJ=y(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var us=Gt(),iC=Xx();function vJ(r,e){for(var t=(0,us.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=$we;function eBe(r,e,t){var i=function(){};(0,iC.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,us.forEach)(e,function(s){n[s]=vJ}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=eBe;var _x;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(_x=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function xJ(r,e){var t=PJ(r,e),i=DJ(r,e);return t.concat(i)}vi.validateVisitor=xJ;function PJ(r,e){var t=(0,us.map)(e,function(i){if(!(0,us.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+" CST Visitor.",type:_x.MISSING_METHOD,methodName:i}});return(0,us.compact)(t)}vi.validateMissingCstMethods=PJ;var tBe=["constructor","visit","validateVisitor"];function DJ(r,e){var t=[];for(var i in r)(0,us.isFunction)(r[i])&&!(0,us.contains)(tBe,i)&&!(0,us.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,iC.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:_x.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=DJ});var FJ=y(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.TreeBuilder=void 0;var wf=bJ(),ti=Gt(),RJ=kJ(),rBe=Hn(),iBe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ti.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:rBe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ti.NOOP,this.cstFinallyStateUpdate=ti.NOOP,this.cstPostTerminal=ti.NOOP,this.cstPostNonTerminal=ti.NOOP,this.cstPostRule=ti.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationFull,this.setNodeLocationFromNode=wf.setNodeLocationFull,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=wf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=wf.setNodeLocationOnlyOffset,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=ti.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,wf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,wf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ti.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,RJ.createBaseSemanticVisitorConstructor)(this.className,(0,ti.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ti.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,RJ.createBaseVisitorConstructorWithDefaults)(this.className,(0,ti.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Vy.TreeBuilder=iBe});var TJ=y(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.LexerAdapter=void 0;var NJ=Hn(),nBe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):NJ.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?NJ.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Xy.LexerAdapter=nBe});var OJ=y(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});_y.RecognizerApi=void 0;var LJ=Gt(),sBe=yf(),Zx=Hn(),oBe=_d(),aBe=Jx(),ABe=Cn(),lBe=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Zx.DEFAULT_RULE_CONFIG),(0,LJ.contains)(this.definedRulesNames,e)){var n=oBe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Zx.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Zx.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,aBe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,sBe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,ABe.serializeGrammar)((0,LJ.values)(this.gastProductionsCache))},r}();_y.RecognizerApi=lBe});var HJ=y($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.RecognizerEngine=void 0;var kr=Gt(),Gn=Wy(),Zy=yf(),MJ=eC(),Bf=$d(),UJ=Hn(),cBe=Vx(),KJ=HA(),nC=df(),uBe=Xx(),gBe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,uBe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=nC.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,kr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,kr.isArray)(e)){if((0,kr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,kr.isArray)(e))this.tokensMap=(0,kr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,kr.has)(e,"modes")&&(0,kr.every)((0,kr.flatten)((0,kr.values)(e.modes)),nC.isTokenType)){var i=(0,kr.flatten)((0,kr.values)(e.modes)),n=(0,kr.uniq)(i);this.tokensMap=(0,kr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,kr.isObject)(e))this.tokensMap=(0,kr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=KJ.EOF;var s=(0,kr.every)((0,kr.values)(e),function(o){return(0,kr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?nC.tokenStructuredMatcherNoCategories:nC.tokenStructuredMatcher,(0,nC.augmentTokenTypes)((0,kr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,kr.has)(i,"resyncEnabled")?i.resyncEnabled:UJ.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,kr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:UJ.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,kr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Zy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,Zy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Zy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===cBe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,kr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),KJ.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();$y.RecognizerEngine=gBe});var YJ=y(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.ErrorHandler=void 0;var $x=yf(),eP=Gt(),GJ=eC(),fBe=Hn(),hBe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,eP.has)(e,"errorMessageProvider")?e.errorMessageProvider:fBe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,$x.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,eP.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,eP.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,GJ.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new $x.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,GJ.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new $x.NoViableAltException(c,this.LA(1),l))},r}();ew.ErrorHandler=hBe});var JJ=y(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.ContentAssist=void 0;var jJ=$d(),qJ=Gt(),pBe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,qJ.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,jJ.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,qJ.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new jJ.NextAfterTokenWalker(n,e).startWalking();return s},r}();tw.ContentAssist=pBe});var e3=y(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.GastRecorder=void 0;var In=Gt(),Lo=Cn(),dBe=Jd(),XJ=df(),_J=HA(),CBe=Hn(),mBe=Wy(),iw={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(iw);var WJ=!0,zJ=Math.pow(2,mBe.BITS_FOR_OCCURRENCE_IDX)-1,ZJ=(0,_J.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:dBe.Lexer.NA});(0,XJ.augmentTokenTypes)([ZJ]);var $J=(0,_J.createTokenInstance)(ZJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze($J);var EBe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},IBe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return CBe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return sC.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,WJ)},r.prototype.manyInternalRecord=function(e,t){sC.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){sC.call(this,Lo.RepetitionWithSeparator,t,e,WJ)},r.prototype.orInternalRecord=function(e,t){return yBe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(rw(t),!e||(0,In.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?EBe:iw},r.prototype.consumeInternalRecord=function(e,t,i){if(rw(t),!(0,XJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),$J},r}();nw.GastRecorder=IBe;function sC(r,e,t,i){i===void 0&&(i=!1),rw(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),iw}function yBe(r,e){var t=this;rw(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),iw}function VJ(r){return r===0?"":""+r}function rw(r){if(r<0||r>zJ){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(zJ+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var r3=y(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.PerformanceTracer=void 0;var t3=Gt(),wBe=Hn(),BBe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,t3.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=wBe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,t3.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();sw.PerformanceTracer=BBe});var i3=y(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.applyMixins=void 0;function bBe(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}ow.applyMixins=bBe});var Hn=y(Cr=>{"use strict";var o3=Cr&&Cr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cr,"__esModule",{value:!0});Cr.EmbeddedActionsParser=Cr.CstParser=Cr.Parser=Cr.EMPTY_ALT=Cr.ParserDefinitionErrorType=Cr.DEFAULT_RULE_CONFIG=Cr.DEFAULT_PARSER_CONFIG=Cr.END_OF_FILE=void 0;var _i=Gt(),QBe=Yq(),n3=HA(),a3=_d(),s3=pJ(),SBe=Vx(),vBe=BJ(),xBe=FJ(),PBe=TJ(),DBe=OJ(),kBe=HJ(),RBe=YJ(),FBe=JJ(),NBe=e3(),TBe=r3(),LBe=i3();Cr.END_OF_FILE=(0,n3.createTokenInstance)(n3.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Cr.END_OF_FILE);Cr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:a3.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Cr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var OBe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(OBe=Cr.ParserDefinitionErrorType||(Cr.ParserDefinitionErrorType={}));function MBe(r){return r===void 0&&(r=void 0),function(){return r}}Cr.EMPTY_ALT=MBe;var aw=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,_i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,_i.has)(t,"skipValidations")?t.skipValidations:Cr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,_i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,_i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,s3.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,s3.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:a3.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,QBe.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Cr.Parser=aw;(0,LBe.applyMixins)(aw,[SBe.Recoverable,vBe.LooksAhead,xBe.TreeBuilder,PBe.LexerAdapter,kBe.RecognizerEngine,DBe.RecognizerApi,RBe.ErrorHandler,FBe.ContentAssist,NBe.GastRecorder,TBe.PerformanceTracer]);var UBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(aw);Cr.CstParser=UBe;var KBe=function(r){o3(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(aw);Cr.EmbeddedActionsParser=KBe});var l3=y(Aw=>{"use strict";Object.defineProperty(Aw,"__esModule",{value:!0});Aw.createSyntaxDiagramsCode=void 0;var A3=Ix();function HBe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+A3.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` +\n`; const publicDir = path.resolve(__dirname, '../../public'); - const page = fs.readFileSync(path.join(publicDir, 'tgui.html'), 'utf-8').replace('\n', assets); + const page = fs + .readFileSync(path.join(publicDir, 'tgui.html'), 'utf-8') + .replace('\n', assets); server.register(require('@fastify/static'), { root: publicDir, diff --git a/tgui/packages/tgui-bench/lib/benchmark.d.ts b/tgui/packages/tgui-bench/lib/benchmark.d.ts index 6ddad41fd8..7f3310005f 100644 --- a/tgui/packages/tgui-bench/lib/benchmark.d.ts +++ b/tgui/packages/tgui-bench/lib/benchmark.d.ts @@ -11,7 +11,11 @@ declare class Benchmark { static filter(arr: T[], filter: string, thisArg?: any): T[]; static formatNumber(num: number): string; static join(obj: Object, separator1?: string, separator2?: string): string; - static invoke(benches: Benchmark[], name: string | Object, ...args: any[]): any[]; + static invoke( + benches: Benchmark[], + name: string | Object, + ...args: any[] + ): any[]; static runInContext(context: Object): Function; static each(obj: Object | any[], callback: Function, thisArg?: any): void; @@ -20,7 +24,11 @@ declare class Benchmark { static has(obj: Object, path: any[] | string): boolean; static indexOf(arr: T[], value: T, fromIndex?: number): number; static map(arr: T[], callback: (value: T) => K, thisArg?: any): K[]; - static reduce(arr: T[], callback: (accumulator: K, value: T) => K, thisArg?: any): K; + static reduce( + arr: T[], + callback: (accumulator: K, value: T) => K, + thisArg?: any + ): K; static options: Benchmark.Options; static platform: Benchmark.Platform; diff --git a/tgui/packages/tgui-bench/lib/benchmark.js b/tgui/packages/tgui-bench/lib/benchmark.js index 1e4b8aa760..33a645f294 100644 --- a/tgui/packages/tgui-bench/lib/benchmark.js +++ b/tgui/packages/tgui-bench/lib/benchmark.js @@ -123,29 +123,48 @@ module.exports = function () { '17': [6, 11, 17, 22, 28, 34, 39, 45, 51, 57, 63, 67, 75, 81, 87], '18': [7, 12, 18, 24, 30, 36, 42, 48, 55, 61, 67, 74, 80, 86, 93, 99], '19': [7, 13, 19, 25, 32, 38, 45, 52, 58, 65, 72, 78, 85, 92, 99, 106, 113], - '20': [8, 14, 20, 27, 34, 41, 48, 55, 62, 69, 76, 83, 90, 98, 105, 112, 119, 127], - '21': [8, 15, 22, 29, 36, 43, 50, 58, 65, 73, 80, 88, 96, 103, 111, 119, 126, 134, 142], - '22': [9, 16, 23, 30, 38, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, 141, 150, 158], - '23': [9, 17, 24, 32, 40, 48, 56, 64, 73, 81, 89, 98, 106, 115, 123, 132, 140, 149, 157, 166, 175], - '24': [10, 17, 25, 33, 42, 50, 59, 67, 76, 85, 94, 102, 111, 120, 129, 138, 147, 156, 165, 174, 183, 192], - '25': [10, 18, 27, 35, 44, 53, 62, 71, 80, 89, 98, 107, 117, 126, 135, 145, 154, 163, 173, 182, 192, 201, 211], + '20': [ + 8, 14, 20, 27, 34, 41, 48, 55, 62, 69, 76, 83, 90, 98, 105, 112, 119, 127, + ], + '21': [ + 8, 15, 22, 29, 36, 43, 50, 58, 65, 73, 80, 88, 96, 103, 111, 119, 126, + 134, 142, + ], + '22': [ + 9, 16, 23, 30, 38, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125, 133, + 141, 150, 158, + ], + '23': [ + 9, 17, 24, 32, 40, 48, 56, 64, 73, 81, 89, 98, 106, 115, 123, 132, 140, + 149, 157, 166, 175, + ], + '24': [ + 10, 17, 25, 33, 42, 50, 59, 67, 76, 85, 94, 102, 111, 120, 129, 138, 147, + 156, 165, 174, 183, 192, + ], + '25': [ + 10, 18, 27, 35, 44, 53, 62, 71, 80, 89, 98, 107, 117, 126, 135, 145, 154, + 163, 173, 182, 192, 201, 211, + ], '26': [ - 11, 19, 28, 37, 46, 55, 64, 74, 83, 93, 102, 112, 122, 132, 141, 151, 161, 171, 181, 191, 200, 210, 220, 230, + 11, 19, 28, 37, 46, 55, 64, 74, 83, 93, 102, 112, 122, 132, 141, 151, 161, + 171, 181, 191, 200, 210, 220, 230, ], '27': [ - 11, 20, 29, 38, 48, 57, 67, 77, 87, 97, 107, 118, 125, 138, 147, 158, 168, 178, 188, 199, 209, 219, 230, 240, 250, + 11, 20, 29, 38, 48, 57, 67, 77, 87, 97, 107, 118, 125, 138, 147, 158, 168, + 178, 188, 199, 209, 219, 230, 240, 250, ], '28': [ - 12, 21, 30, 40, 50, 60, 70, 80, 90, 101, 111, 122, 132, 143, 154, 164, 175, 186, 196, 207, 218, 228, 239, 250, - 261, 272, + 12, 21, 30, 40, 50, 60, 70, 80, 90, 101, 111, 122, 132, 143, 154, 164, + 175, 186, 196, 207, 218, 228, 239, 250, 261, 272, ], '29': [ - 13, 22, 32, 42, 52, 62, 73, 83, 94, 105, 116, 127, 138, 149, 160, 171, 182, 193, 204, 215, 226, 238, 249, 260, - 271, 282, 294, + 13, 22, 32, 42, 52, 62, 73, 83, 94, 105, 116, 127, 138, 149, 160, 171, + 182, 193, 204, 215, 226, 238, 249, 260, 271, 282, 294, ], '30': [ - 13, 23, 33, 43, 54, 65, 76, 87, 98, 109, 120, 131, 143, 154, 166, 177, 189, 200, 212, 223, 235, 247, 258, 270, - 282, 293, 305, 317, + 13, 23, 33, 43, 54, 65, 76, 87, 98, 109, 120, 131, 143, 154, 166, 177, + 189, 200, 212, 223, 235, 247, 258, 270, 282, 293, 305, 317, ], }; @@ -170,7 +189,9 @@ module.exports = function () { // after built-in constructors like `Object`, for the creation of literals. // ES5 clears this up by stating that literals must use built-in constructors. // See http://es5.github.io/#x11.1.5. - context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root; + context = context + ? _.defaults(root.Object(), context, _.pick(root, contextProps)) + : root; /** Native constructor references. */ var Array = context.Array, @@ -232,7 +253,10 @@ module.exports = function () { * @memberOf Benchmark.support * @type boolean */ - support.browser = doc && isHostType(context, 'navigator') && !isHostType(context, 'phantom'); + support.browser = + doc && + isHostType(context, 'navigator') && + !isHostType(context, 'phantom'); /** * Detect if the Timers API exists. @@ -240,7 +264,9 @@ module.exports = function () { * @memberOf Benchmark.support * @type boolean */ - support.timeout = isHostType(context, 'setTimeout') && isHostType(context, 'clearTimeout'); + support.timeout = + isHostType(context, 'setTimeout') && + isHostType(context, 'clearTimeout'); /** * Detect if function decompilation is support. @@ -451,7 +477,11 @@ module.exports = function () { return type; } return event instanceof Event - ? _.assign(event, { 'timeStamp': _.now() }, typeof type == 'string' ? { 'type': type } : type) + ? _.assign( + event, + { 'timeStamp': _.now() }, + typeof type == 'string' ? { 'type': type } : type + ) : new Event(type); } @@ -527,7 +557,9 @@ module.exports = function () { */ var cloneDeep = _.partial(_.cloneDeepWith, _, function (value) { // Only clone primitives, arrays, and plain objects. - return _.isObject(value) && !_.isArray(value) && !_.isPlainObject(value) ? value : undefined; + return _.isObject(value) && !_.isArray(value) && !_.isPlainObject(value) + ? value + : undefined; }); /** @@ -545,7 +577,15 @@ module.exports = function () { anchor = freeDefine ? freeDefine.amd : Benchmark, prop = uid + 'createFunction'; - runScript((freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '=function(' + args + '){' + body + '}'); + runScript( + (freeDefine ? 'define.amd.' : 'Benchmark.') + + prop + + '=function(' + + args + + '){' + + body + + '}' + ); result = anchor[prop]; delete anchor[prop]; return result; @@ -553,7 +593,10 @@ module.exports = function () { // Fix JaegerMonkey bug. // For more information see http://bugzil.la/639720. createFunction = - support.browser && (createFunction('', 'return"' + uid + '"') || _.noop)() == uid ? createFunction : Function; + support.browser && + (createFunction('', 'return"' + uid + '"') || _.noop)() == uid + ? createFunction + : Function; return createFunction.apply(null, arguments); } @@ -587,7 +630,11 @@ module.exports = function () { * @returns {string} The argument name. */ function getFirstArgument(fn) { - return (!_.has(fn, 'toString') && (/^[\s(]*function[^(]*\(([^\s,)]+)/.exec(fn) || 0)[1]) || ''; + return ( + (!_.has(fn, 'toString') && + (/^[\s(]*function[^(]*\(([^\s,)]+)/.exec(fn) || 0)[1]) || + '' + ); } /** @@ -624,7 +671,11 @@ module.exports = function () { result = (result || '').replace(/^\s+|\s+$/g, ''); // Detect strings containing only the "use strict" directive. - return /^(?:\/\*+[\w\W]*?\*\/|\/\/.*?[\n\r\u2028\u2029]|\s)*(["'])use strict\1;?$/.test(result) ? '' : result; + return /^(?:\/\*+[\w\W]*?\*\/|\/\/.*?[\n\r\u2028\u2029]|\s)*(["'])use strict\1;?$/.test( + result + ) + ? '' + : result; } /** @@ -654,7 +705,9 @@ module.exports = function () { return false; } var type = typeof object[property]; - return !rePrimitive.test(type) && (type != 'object' || !!object[property]); + return ( + !rePrimitive.test(type) && (type != 'object' || !!object[property]) + ); } /** @@ -665,7 +718,10 @@ module.exports = function () { * @returns {boolean} Returns `true` if the value can be coerced, else `false`. */ function isStringable(value) { - return _.isString(value) || (_.has(value, 'toString') && _.isFunction(value.toString)); + return ( + _.isString(value) || + (_.has(value, 'toString') && _.isFunction(value.toString)) + ); } /** @@ -680,7 +736,11 @@ module.exports = function () { sibling = doc.getElementsByTagName('script')[0], parent = sibling.parentNode, prop = uid + 'runScript', - prefix = '(' + (freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '||function(){})();'; + prefix = + '(' + + (freeDefine ? 'define.amd.' : 'Benchmark.') + + prop + + '||function(){})();'; // Firefox 2.0.0.2 cannot use script injection as intended because it executes // asynchronously, but that's OK because script injection is only used to avoid @@ -709,7 +769,11 @@ module.exports = function () { * @param {Object} [options={}] Options object. */ function setOptions(object, options) { - options = object.options = _.assign({}, cloneDeep(object.constructor.options), cloneDeep(options)); + options = object.options = _.assign( + {}, + cloneDeep(object.constructor.options), + cloneDeep(options) + ); _.forOwn(options, function (value, key) { if (value != null) { @@ -790,7 +854,10 @@ module.exports = function () { var result = filter(array, 'successful').sort(function (a, b) { a = a.stats; b = b.stats; - return (a.mean + a.moe > b.mean + b.moe ? 1 : -1) * (callback === 'fastest' ? 1 : -1); + return ( + (a.mean + a.moe > b.mean + b.moe ? 1 : -1) * + (callback === 'fastest' ? 1 : -1) + ); }); return _.filter(result, function (bench) { @@ -810,7 +877,10 @@ module.exports = function () { */ function formatNumber(number) { number = String(number).split('.'); - return number[0].replace(/(?=(?:\d{3})+$)(?!\b)/g, ',') + (number[1] ? '.' + number[1] : ''); + return ( + number[0].replace(/(?=(?:\d{3})+$)(?!\b)/g, ',') + + (number[1] ? '.' + number[1] : '') + ); } /** @@ -858,7 +928,11 @@ module.exports = function () { queued, index = -1, eventProps = { 'currentTarget': benches }, - options = { 'onStart': _.noop, 'onCycle': _.noop, 'onComplete': _.noop }, + options = { + 'onStart': _.noop, + 'onCycle': _.noop, + 'onComplete': _.noop, + }, result = _.toArray(benches); /** @@ -875,7 +949,9 @@ module.exports = function () { listeners.splice(0, 0, listeners.pop()); } // Execute method. - result[index] = _.isFunction(bench && bench[name]) ? bench[name].apply(bench, args) : undefined; + result[index] = _.isFunction(bench && bench[name]) + ? bench[name].apply(bench, args) + : undefined; // If synchronous return `true` until finished. return !async && getNext(); } @@ -934,7 +1010,9 @@ module.exports = function () { return ( name == 'run' && object instanceof Benchmark && - (((async == null ? object.options.async : async) && support.timeout) || object.defer) + (((async == null ? object.options.async : async) && + support.timeout) || + object.defer) ); } @@ -949,7 +1027,9 @@ module.exports = function () { shift.call(benches); } // If we reached the last index then return `false`. - return (queued ? benches.length : index < result.length) ? index : (index = false); + return (queued ? benches.length : index < result.length) + ? index + : (index = false); } // Juggle arguments. if (_.isString(name)) { @@ -959,7 +1039,9 @@ module.exports = function () { // 2 arguments (array, options). options = _.assign(options, name); name = options.name; - args = _.isArray((args = 'args' in options ? options.args : [])) ? args : [args]; + args = _.isArray((args = 'args' in options ? options.args : [])) + ? args + : [args]; queued = options.queued; } // Start iterating over the array. @@ -1108,7 +1190,10 @@ module.exports = function () { // Copy own properties. _.forOwn(suite, function (value, key) { if (!_.has(result, key)) { - result[key] = value && _.isFunction(value.clone) ? value.clone() : cloneDeep(value); + result[key] = + value && _.isFunction(value.clone) + ? value.clone() + : cloneDeep(value); } }); return result; @@ -1149,7 +1234,10 @@ module.exports = function () { delete calledBy.resetSuite; } // Reset if the state has changed. - else if ((suite.aborted || suite.running) && (suite.emit((event = Event('reset'))), !event.cancelled)) { + else if ( + (suite.aborted || suite.running) && + (suite.emit((event = Event('reset'))), !event.cancelled) + ) { suite.aborted = suite.running = false; if (!aborting) { invoke(suite, 'reset'); @@ -1224,7 +1312,10 @@ module.exports = function () { event.target || (event.target = object); delete event.result; - if (events && (listeners = _.has(events, event.type) && events[event.type])) { + if ( + events && + (listeners = _.has(events, event.type) && events[event.type]) + ) { _.each(listeners.slice(), function (listener) { if ((event.result = listener.apply(object, args)) === false) { event.cancelled = true; @@ -1323,7 +1414,9 @@ module.exports = function () { events = object.events || (object.events = {}); _.each(type.split(' '), function (type) { - (_.has(events, type) ? events[type] : (events[type] = [])).push(listener); + (_.has(events, type) ? events[type] : (events[type] = [])).push( + listener + ); }); return object; } @@ -1380,7 +1473,11 @@ module.exports = function () { result = new bench.constructor(_.assign({}, bench, options)); // Correct the `options` object. - result.options = _.assign({}, cloneDeep(bench.options), cloneDeep(options)); + result.options = _.assign( + {}, + cloneDeep(bench.options), + cloneDeep(options) + ); // Copy own custom properties. _.forOwn(bench, function (value, key) { @@ -1439,7 +1536,10 @@ module.exports = function () { } function getZ(u) { - return (u - (size1 * size2) / 2) / sqrt((size1 * size2 * (size1 + size2 + 1)) / 12); + return ( + (u - (size1 * size2) / 2) / + sqrt((size1 * size2 * (size1 + size2 + 1)) / 12) + ); } // Reject the null hypothesis the two samples come from the // same population (i.e. have the same median) if... @@ -1478,7 +1578,11 @@ module.exports = function () { // For more information see http://www.jslab.dk/articles/non.recursive.preorder.traversal.part4. var data = { 'destination': bench, - 'source': _.assign({}, cloneDeep(bench.constructor.prototype), cloneDeep(bench.options)), + 'source': _.assign( + {}, + cloneDeep(bench.constructor.prototype), + cloneDeep(bench.options) + ), }; do { @@ -1510,19 +1614,33 @@ module.exports = function () { } // Register a changed object. if (changed) { - changes.push({ 'destination': destination, 'key': key, 'value': currValue }); + changes.push({ + 'destination': destination, + 'key': key, + 'value': currValue, + }); } queue.push({ 'destination': currValue, 'source': value }); } // Register a changed primitive. - else if (value !== currValue && !(value == null || _.isFunction(value))) { - changes.push({ 'destination': destination, 'key': key, 'value': value }); + else if ( + value !== currValue && + !(value == null || _.isFunction(value)) + ) { + changes.push({ + 'destination': destination, + 'key': key, + 'value': value, + }); } }); } while ((data = queue[index++])); // If changed emit the `reset` event and if it isn't cancelled reset the benchmark. - if (changes.length && (bench.emit((event = Event('reset'))), !event.cancelled)) { + if ( + changes.length && + (bench.emit((event = Event('reset'))), !event.cancelled) + ) { _.each(changes, function (data) { data.destination[data.key] = data.value; }); @@ -1555,7 +1673,9 @@ module.exports = function () { errorStr = join(error); } else { // Error#name and Error#message properties are non-enumerable. - errorStr = join(_.assign({ 'name': error.name, 'message': error.message }, error)); + errorStr = join( + _.assign({ 'name': error.name, 'message': error.message }, error) + ); } result += ': ' + errorStr; } else { @@ -1586,7 +1706,9 @@ module.exports = function () { function clock() { var options = Benchmark.options, templateData = {}, - timers = [{ 'ns': timer.ns, 'res': max(0.0015, getRes('ms')), 'unit': 'ms' }]; + timers = [ + { 'ns': timer.ns, 'res': max(0.0015, getRes('ms')), 'unit': 'ms' }, + ]; // Lazy define for hi-res timers. clock = function (clone) { @@ -1599,13 +1721,19 @@ module.exports = function () { var bench = clone._original, stringable = isStringable(bench.fn), count = (bench.count = clone.count), - decompilable = stringable || (support.decompilation && (clone.setup !== _.noop || clone.teardown !== _.noop)), + decompilable = + stringable || + (support.decompilation && + (clone.setup !== _.noop || clone.teardown !== _.noop)), id = bench.id, - name = bench.name || (typeof id == 'number' ? '' : id), + name = + bench.name || (typeof id == 'number' ? '' : id), result = 0; // Init `minTime` if needed. - clone.minTime = bench.minTime || (bench.minTime = bench.options.minTime = options.minTime); + clone.minTime = + bench.minTime || + (bench.minTime = bench.options.minTime = options.minTime); // Compile in setup/teardown functions and the test loop. // Create a new compiled test, instead of using the cached `bench.compiled`, @@ -1627,19 +1755,30 @@ module.exports = function () { : 'var r#,s#,m#=this,f#=m#.fn,i#=m#.count,n#=t#.ns;${setup}\n${begin};' + 'while(i#--){${fn}\n}${end};${teardown}\nreturn{elapsed:r#,uid:"${uid}"}'; - var compiled = (bench.compiled = clone.compiled = createCompiled(bench, decompilable, deferred, funcBody)), + var compiled = + (bench.compiled = + clone.compiled = + createCompiled(bench, decompilable, deferred, funcBody)), isEmpty = !(templateData.fn || stringable); try { if (isEmpty) { // Firefox may remove dead code from `Function#toString` results. // For more information see http://bugzil.la/536085. - throw new Error('The test "' + name + '" is empty. This may be the result of dead code removal.'); + throw new Error( + 'The test "' + + name + + '" is empty. This may be the result of dead code removal.' + ); } else if (!deferred) { // Pretest to determine if compiled code exits early, usually by a // rogue `return` statement, by checking for a return object with the uid. bench.count = 1; - compiled = decompilable && (compiled.call(bench, context, timer) || {}).uid == templateData.uid && compiled; + compiled = + decompilable && + (compiled.call(bench, context, timer) || {}).uid == + templateData.uid && + compiled; bench.count = count; } } catch (e) { @@ -1673,7 +1812,10 @@ module.exports = function () { } // If no errors run the full test loop. if (!clone.error) { - compiled = bench.compiled = clone.compiled = createCompiled(bench, decompilable, deferred, funcBody); + compiled = + bench.compiled = + clone.compiled = + createCompiled(bench, decompilable, deferred, funcBody); result = compiled.call(deferred || bench, context, timer).elapsed; } return result; @@ -1691,10 +1833,16 @@ module.exports = function () { templateData.uid = uid + uidCounter++; _.assign(templateData, { - 'setup': decompilable ? getSource(bench.setup) : interpolate('m#.setup()'), - 'fn': decompilable ? getSource(fn) : interpolate('m#.fn(' + fnArg + ')'), + 'setup': decompilable + ? getSource(bench.setup) + : interpolate('m#.setup()'), + 'fn': decompilable + ? getSource(fn) + : interpolate('m#.fn(' + fnArg + ')'), 'fnArg': fnArg, - 'teardown': decompilable ? getSource(bench.teardown) : interpolate('m#.teardown()'), + 'teardown': decompilable + ? getSource(bench.teardown) + : interpolate('m#.teardown()'), }); // Use API of chosen timer. @@ -1770,7 +1918,9 @@ module.exports = function () { } else if (unit == 'ns') { divisor = 1e9; begin = (begin = ns())[0] + begin[1] / divisor; - while (!(measured = (measured = ns())[0] + measured[1] / divisor - begin)) {} + while ( + !(measured = (measured = ns())[0] + measured[1] / divisor - begin) + ) {} divisor = 1; } else if (ns.now) { begin = ns.now(); @@ -1796,7 +1946,9 @@ module.exports = function () { */ function interpolate(string) { // Replaces all occurrences of `#` with a unique number and template tokens with content. - return _.template(string.replace(/\#/g, /\d+/.exec(templateData.uid)))(templateData); + return _.template(string.replace(/\#/g, /\d+/.exec(templateData.uid)))( + templateData + ); } /*----------------------------------------------------------------------*/ @@ -1811,7 +1963,10 @@ module.exports = function () { } catch (e) {} // Detect Node.js's nanosecond resolution timer available in Node.js >= 0.8. - if (processObject && typeof (timer.ns = processObject.hrtime) == 'function') { + if ( + processObject && + typeof (timer.ns = processObject.hrtime) == 'function' + ) { timers.push({ 'ns': timer.ns, 'res': getRes('ns'), 'unit': 'ns' }); } // Pick timer with highest resolution. @@ -1909,7 +2064,9 @@ module.exports = function () { done = bench.aborted, now = _.now(), size = sample.push(clone.times.period), - maxedOut = size >= minSamples && (elapsed += now - clone.times.timeStamp) / 1e3 > bench.maxTime, + maxedOut = + size >= minSamples && + (elapsed += now - clone.times.timeStamp) / 1e3 > bench.maxTime, times = bench.times, varOf = function (sum, x) { return sum + pow(x - mean, 2); @@ -2120,7 +2277,10 @@ module.exports = function () { if (!event.cancelled) { options = { - 'async': ((options = options && options.async) == null ? bench.async : options) && support.timeout, + 'async': + ((options = options && options.async) == null + ? bench.async + : options) && support.timeout, }; // For clones created within `compute()`. @@ -2290,7 +2450,8 @@ module.exports = function () { */ 'platform': context.platform || require('platform') || { - 'description': (context.navigator && context.navigator.userAgent) || null, + 'description': + (context.navigator && context.navigator.userAgent) || null, 'layout': null, 'product': null, 'name': null, @@ -2323,9 +2484,12 @@ module.exports = function () { }); // Add lodash methods to Benchmark. - _.each(['each', 'forEach', 'forOwn', 'has', 'indexOf', 'map', 'reduce'], function (methodName) { - Benchmark[methodName] = _[methodName]; - }); + _.each( + ['each', 'forEach', 'forOwn', 'has', 'indexOf', 'map', 'reduce'], + function (methodName) { + Benchmark[methodName] = _[methodName]; + } + ); /*------------------------------------------------------------------------*/ @@ -2764,14 +2928,17 @@ module.exports = function () { /*------------------------------------------------------------------------*/ // Add lodash methods as Suite methods. - _.each(['each', 'forEach', 'indexOf', 'map', 'reduce'], function (methodName) { - var func = _[methodName]; - Suite.prototype[methodName] = function () { - var args = [this]; - push.apply(args, arguments); - return func.apply(_, args); - }; - }); + _.each( + ['each', 'forEach', 'indexOf', 'map', 'reduce'], + function (methodName) { + var func = _[methodName]; + Suite.prototype[methodName] = function () { + var args = [this]; + push.apply(args, arguments); + return func.apply(_, args); + }; + } + ); // Avoid array-like object bugs with `Array#shift` and `Array#splice` // in Firefox < 10 and IE < 9. diff --git a/tgui/packages/tgui-bench/tests/Button.test.tsx b/tgui/packages/tgui-bench/tests/Button.test.tsx index 67e156e366..6b806d720a 100644 --- a/tgui/packages/tgui-bench/tests/Button.test.tsx +++ b/tgui/packages/tgui-bench/tests/Button.test.tsx @@ -17,7 +17,9 @@ export const SingleButtonWithCallback = () => { }; export const SingleButtonWithLinkEvent = () => { - const node = ; + const node = ( + + ); render(node); }; diff --git a/tgui/packages/tgui-bench/tests/DisposalBin.test.tsx b/tgui/packages/tgui-bench/tests/DisposalBin.test.tsx index a7cbe55dd6..5ac9965c76 100644 --- a/tgui/packages/tgui-bench/tests/DisposalBin.test.tsx +++ b/tgui/packages/tgui-bench/tests/DisposalBin.test.tsx @@ -1,9 +1,10 @@ -import { backendUpdate } from 'tgui/backend'; -import { DisposalBin } from 'tgui/interfaces/DisposalBin'; -import { createRenderer } from 'tgui/renderer'; -import { configureStore, StoreProvider } from 'tgui/store'; +import { StoreProvider, configureStore } from 'tgui/store'; -const store = configureStore({ sideEffets: false }); +import { DisposalBin } from 'tgui/interfaces/DisposalBin'; +import { backendUpdate } from 'tgui/backend'; +import { createRenderer } from 'tgui/renderer'; + +const store = configureStore({ sideEffects: false }); const renderUi = createRenderer((dataJson: string) => { store.dispatch( diff --git a/tgui/packages/tgui-dev-server/dreamseeker.js b/tgui/packages/tgui-dev-server/dreamseeker.js index 0081d91a7e..2b25b155ae 100644 --- a/tgui/packages/tgui-dev-server/dreamseeker.js +++ b/tgui/packages/tgui-dev-server/dreamseeker.js @@ -24,9 +24,14 @@ export class DreamSeeker { } topic(params = {}) { + // prettier-ignore const query = Object.keys(params) - .map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(params[key])) + .map(key => encodeURIComponent(key) + + '=' + encodeURIComponent(params[key])) .join('&'); + logger.log( + `topic call at ${this.client.defaults.baseURL + '/dummy?' + query}` + ); return this.client.get('/dummy?' + query); } } diff --git a/tgui/packages/tgui-dev-server/link/client.cjs b/tgui/packages/tgui-dev-server/link/client.cjs index 47cd6398b0..1e21d42ce8 100644 --- a/tgui/packages/tgui-dev-server/link/client.cjs +++ b/tgui/packages/tgui-dev-server/link/client.cjs @@ -68,7 +68,10 @@ const serializeObject = (obj) => { } refs.push(value); // Error object - const isError = value instanceof Error || (value.code && value.message && value.message.includes('Error')); + // prettier-ignore + const isError = value instanceof Error || ( + value.code && value.message && value.message.includes('Error') + ); if (isError) { return { __error__: true, @@ -132,7 +135,12 @@ const sendLogEntry = (level, ns, ...args) => { }; const setupHotReloading = () => { - if (process.env.NODE_ENV !== 'production' && process.env.WEBPACK_HMR_ENABLED && window.WebSocket) { + if ( + // prettier-ignore + process.env.NODE_ENV !== 'production' + && process.env.WEBPACK_HMR_ENABLED + && window.WebSocket + ) { if (module.hot) { ensureConnection(); sendLogEntry(0, null, 'setting up hot reloading'); diff --git a/tgui/packages/tgui-dev-server/link/retrace.js b/tgui/packages/tgui-dev-server/link/retrace.js index 60819861b9..842de228fd 100644 --- a/tgui/packages/tgui-dev-server/link/retrace.js +++ b/tgui/packages/tgui-dev-server/link/retrace.js @@ -29,7 +29,9 @@ export const loadSourceMaps = async (bundleDir) => { for (let path of paths) { try { const file = basename(path).replace('.map', ''); - const consumer = await new SourceMapConsumer(JSON.parse(fs.readFileSync(path, 'utf8'))); + const consumer = await new SourceMapConsumer( + JSON.parse(fs.readFileSync(path, 'utf8')) + ); sourceMaps.push({ file, consumer }); } catch (err) { logger.error(err); @@ -76,7 +78,9 @@ export const retrace = (stack) => { if (!file) { return ` at ${methodName}`; } - const compactPath = file.replace(/^webpack:\/\/\/?/, './').replace(/.*node_modules\//, ''); + const compactPath = file + .replace(/^webpack:\/\/\/?/, './') + .replace(/.*node_modules\//, ''); return ` at ${methodName} (${compactPath}:${lineNumber})`; }) .join('\n'); diff --git a/tgui/packages/tgui-dev-server/link/server.js b/tgui/packages/tgui-dev-server/link/server.js index 70109d162e..60cc78c1bd 100644 --- a/tgui/packages/tgui-dev-server/link/server.js +++ b/tgui/packages/tgui-dev-server/link/server.js @@ -76,19 +76,17 @@ class LinkServer { if (level <= 0 && !DEBUG) { return; } - directLog( - ns, - ...args.map((arg) => { - if (typeof arg === 'object') { - return inspect(arg, { - depth: Infinity, - colors: true, - compact: 8, - }); - } - return arg; - }) - ); + // prettier-ignore + directLog(ns, ...args.map(arg => { + if (typeof arg === 'object') { + return inspect(arg, { + depth: Infinity, + colors: true, + compact: 8, + }); + } + return arg; + })); return; } if (type === 'relay') { diff --git a/tgui/packages/tgui-dev-server/logging.js b/tgui/packages/tgui-dev-server/logging.js index ff8aba8776..4ec09008ff 100644 --- a/tgui/packages/tgui-dev-server/logging.js +++ b/tgui/packages/tgui-dev-server/logging.js @@ -31,7 +31,9 @@ const getPrefix = (() => { bright: '\x1b[37;1m', reset: '\x1b[0m', }; - return (ns) => [`${ESC.dimmed}${getTimestamp()} ${ESC.bright}${ns}${ESC.reset}`]; + return (ns) => [ + `${ESC.dimmed}${getTimestamp()} ${ESC.bright}${ns}${ESC.reset}`, + ]; } if (isChrome) { // Styles @@ -39,9 +41,16 @@ const getPrefix = (() => { dimmed: 'color: #888', bright: 'font-weight: bold', }; - return (ns) => [`%c${getTimestamp()}%c ${ns}`, styles.dimmed, styles.bright]; + return (ns) => [ + `%c${getTimestamp()}%c ${ns}`, + styles.dimmed, + styles.bright, + ]; } - return (ns) => [`${getTimestamp()} ${ns}`]; + // prettier-ignore + return ns => [ + `${getTimestamp()} ${ns}`, + ]; })(); /** @@ -59,4 +68,5 @@ export const createLogger = (ns) => ({ /** * Explicitly log with chosen namespace. */ -export const directLog = (ns, ...args) => console.log(...getPrefix(ns), ...args); +export const directLog = (ns, ...args) => + console.log(...getPrefix(ns), ...args); diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index 4076ef805f..e12e225789 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -1,13 +1,13 @@ { "private": true, "name": "tgui-dev-server", - "version": "4.3.0", + "version": "4.4.1", "type": "module", "dependencies": { - "axios": "^0.27.2", - "glob": "^8.0.3", + "axios": "^0.21.1", + "glob": "^7.1.7", "source-map": "^0.7.3", "stacktrace-parser": "^0.1.10", - "ws": "^8.6.0" + "ws": "^7.5.3" } } diff --git a/tgui/packages/tgui-dev-server/reloader.js b/tgui/packages/tgui-dev-server/reloader.js index 4e3c8fc0ec..c13a8afdfc 100644 --- a/tgui/packages/tgui-dev-server/reloader.js +++ b/tgui/packages/tgui-dev-server/reloader.js @@ -52,7 +52,11 @@ export const findCacheRoot = async () => { logger.log('querying windows registry'); let userpath = await regQuery('HKCU\\Software\\Dantom\\BYOND', 'userpath'); if (userpath) { - cacheRoot = userpath.replace(/\\$/, '').replace(/\\/g, '/') + '/cache'; + // prettier-ignore + cacheRoot = userpath + .replace(/\\$/, '') + .replace(/\\/g, '/') + + '/cache'; onCacheRootFound(cacheRoot); return cacheRoot; } @@ -62,7 +66,7 @@ export const findCacheRoot = async () => { const onCacheRootFound = (cacheRoot) => { logger.log(`found cache at '${cacheRoot}'`); - // Plant a dummy + // Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 514. fs.closeSync(fs.openSync(cacheRoot + '/dummy', 'w')); }; @@ -78,14 +82,25 @@ export const reloadByondCache = async (bundleDir) => { return; } // Get dreamseeker instances - const pids = cacheDirs.map((cacheDir) => parseInt(cacheDir.split('/cache/tmp').pop(), 10)); + const pids = cacheDirs.map((cacheDir) => + parseInt(cacheDir.split('/cache/tmp').pop(), 10) + ); const dssPromise = DreamSeeker.getInstancesByPids(pids); // Copy assets - const assets = await resolveGlob(bundleDir, './*.+(bundle|chunk|hot-update).*'); + const assets = await resolveGlob( + bundleDir, + './*.+(bundle|chunk|hot-update).*' + ); for (let cacheDir of cacheDirs) { // Clear garbage - const garbage = await resolveGlob(cacheDir, './*.+(bundle|chunk|hot-update).*'); + const garbage = await resolveGlob( + cacheDir, + './*.+(bundle|chunk|hot-update).*' + ); try { + // Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 515. + fs.closeSync(fs.openSync(cacheDir + '/dummy', 'w')); + for (let file of garbage) { fs.unlinkSync(file); } diff --git a/tgui/packages/tgui/assets.js b/tgui/packages/tgui/assets.js deleted file mode 100644 index f41181e078..0000000000 --- a/tgui/packages/tgui/assets.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -const EXCLUDED_PATTERNS = [/v4shim/i]; -const loadedMappings = {}; - -export const resolveAsset = (name) => loadedMappings[name] || name; - -export const assetMiddleware = (store) => (next) => (action) => { - const { type, payload } = action; - if (type === 'asset/stylesheet') { - Byond.loadCss(payload); - return; - } - if (type === 'asset/mappings') { - for (let name of Object.keys(payload)) { - // Skip anything that matches excluded patterns - if (EXCLUDED_PATTERNS.some((regex) => regex.test(name))) { - continue; - } - const url = payload[name]; - const ext = name.split('.').pop(); - loadedMappings[name] = url; - if (ext === 'css') { - Byond.loadCss(url); - } - if (ext === 'js') { - Byond.loadJs(url); - } - } - return; - } - next(action); -}; diff --git a/tgui/packages/tgui/assets.ts b/tgui/packages/tgui/assets.ts new file mode 100644 index 0000000000..e519d0c2f7 --- /dev/null +++ b/tgui/packages/tgui/assets.ts @@ -0,0 +1,45 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { Action, AnyAction, Middleware } from '../common/redux'; + +import { Dispatch } from 'common/redux'; + +const EXCLUDED_PATTERNS = [/v4shim/i]; +const loadedMappings: Record = {}; + +export const resolveAsset = (name: string): string => + loadedMappings[name] || name; + +export const assetMiddleware: Middleware = + (storeApi) => + (next: Dispatch) => + (action: ActionType) => { + const { type, payload } = action as AnyAction; + if (type === 'asset/stylesheet') { + Byond.loadCss(payload); + return; + } + if (type === 'asset/mappings') { + for (const name of Object.keys(payload)) { + // Skip anything that matches excluded patterns + if (EXCLUDED_PATTERNS.some((regex) => regex.test(name))) { + continue; + } + const url = payload[name]; + const ext = name.split('.').pop(); + loadedMappings[name] = url; + if (ext === 'css') { + Byond.loadCss(url); + } + if (ext === 'js') { + Byond.loadJs(url); + } + } + return; + } + next(action); + }; diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index 8e483ebfe1..fb77a61e3c 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -14,6 +14,7 @@ import { perf } from 'common/perf'; import { createAction } from 'common/redux'; import { setupDrag } from './drag'; +import { globalEvents } from './events'; import { focusMap } from './focus'; import { createLogger } from './logging'; import { resumeRenderer, suspendRenderer } from './renderer'; @@ -133,10 +134,18 @@ export const backendMiddleware = (store) => { } if (type === 'ping') { - Byond.sendMessage('pingReply'); + Byond.sendMessage('ping/reply'); return; } + if (type === 'byond/mousedown') { + globalEvents.emit('byond/mousedown'); + } + + if (type === 'byond/mouseup') { + globalEvents.emit('byond/mouseup'); + } + if (type === 'backend/suspendStart' && !suspendInterval) { logger.log(`suspending (${Byond.windowId})`); // Keep sending suspend messages until it succeeds. @@ -195,7 +204,10 @@ export const backendMiddleware = (store) => { }); perf.mark('resume/finish'); if (process.env.NODE_ENV !== 'production') { - logger.log('visible in', perf.measure('render/finish', 'resume/finish')); + logger.log( + 'visible in', + perf.measure('render/finish', 'resume/finish') + ); } }); } @@ -210,7 +222,10 @@ export const backendMiddleware = (store) => { */ export const sendAct = (action: string, payload: object = {}) => { // Validate that payload is an object - const isObject = typeof payload === 'object' && payload !== null && !Array.isArray(payload); + // prettier-ignore + const isObject = typeof payload === 'object' + && payload !== null + && !Array.isArray(payload); if (!isObject) { logger.error(`Payload for act() must be an object, got this:`, payload); return; @@ -249,7 +264,8 @@ type BackendState = { /** * Selects a backend-related slice of Redux state */ -export const selectBackend = (state: any): BackendState => state.backend || {}; +export const selectBackend = (state: any): BackendState => + state.backend || {}; /** * Get data from tgui backend. @@ -283,7 +299,11 @@ type StateWithSetter = [T, (nextState: T) => void]; * @param key Key which uniquely identifies this state in Redux store. * @param initialState Initializes your global variable with this value. */ -export const useLocalState = (context: any, key: string, initialState: T): StateWithSetter => { +export const useLocalState = ( + context: any, + key: string, + initialState: T +): StateWithSetter => { const { store } = context; const state = selectBackend(store.getState()); const sharedStates = state.shared ?? {}; @@ -294,7 +314,10 @@ export const useLocalState = (context: any, key: string, initialState: T): St store.dispatch( backendSetSharedState({ key, - nextState: typeof nextState === 'function' ? nextState(sharedState) : nextState, + nextState: + typeof nextState === 'function' + ? nextState(sharedState) + : nextState, }) ); }, @@ -315,7 +338,11 @@ export const useLocalState = (context: any, key: string, initialState: T): St * @param key Key which uniquely identifies this state in Redux store. * @param initialState Initializes your global variable with this value. */ -export const useSharedState = (context: any, key: string, initialState: T): StateWithSetter => { +export const useSharedState = ( + context: any, + key: string, + initialState: T +): StateWithSetter => { const { store } = context; const state = selectBackend(store.getState()); const sharedStates = state.shared ?? {}; @@ -323,10 +350,15 @@ export const useSharedState = (context: any, key: string, initialState: T): S return [ sharedState, (nextState) => { + // prettier-ignore Byond.sendMessage({ type: 'setSharedState', key, - value: JSON.stringify(typeof nextState === 'function' ? nextState(sharedState) : nextState) || '', + value: JSON.stringify( + typeof nextState === 'function' + ? nextState(sharedState) + : nextState + ) || '', }); }, ]; diff --git a/tgui/packages/tgui/components/AnimatedNumber.js b/tgui/packages/tgui/components/AnimatedNumber.js deleted file mode 100644 index 0258609e58..0000000000 --- a/tgui/packages/tgui/components/AnimatedNumber.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { clamp, toFixed } from 'common/math'; -import { Component } from 'inferno'; - -const FPS = 20; -const Q = 0.5; - -const isSafeNumber = (value) => { - return typeof value === 'number' && Number.isFinite(value) && !Number.isNaN(value); -}; - -export class AnimatedNumber extends Component { - constructor(props) { - super(props); - this.timer = null; - this.state = { - value: 0, - }; - // Use provided initial state - if (isSafeNumber(props.initial)) { - this.state.value = props.initial; - } - // Set initial state with value provided in props - else if (isSafeNumber(props.value)) { - this.state.value = Number(props.value); - } - } - - tick() { - const { props, state } = this; - const currentValue = Number(state.value); - const targetValue = Number(props.value); - // Avoid poisoning our state with infinities and NaN - if (!isSafeNumber(targetValue)) { - return; - } - // Smooth the value using an exponential moving average - const value = currentValue * Q + targetValue * (1 - Q); - this.setState({ value }); - } - - componentDidMount() { - this.timer = setInterval(() => this.tick(), 1000 / FPS); - } - - componentWillUnmount() { - clearTimeout(this.timer); - } - - render() { - const { props, state } = this; - const { format, children } = props; - const currentValue = state.value; - const targetValue = props.value; - // Directly display values which can't be animated - if (!isSafeNumber(targetValue)) { - return targetValue || null; - } - let formattedValue; - // Use custom formatter - if (format) { - formattedValue = format(currentValue); - } - // Fix our animated precision at target value's precision. - else { - const fraction = String(targetValue).split('.')[1]; - const precision = fraction ? fraction.length : 0; - formattedValue = toFixed(currentValue, clamp(precision, 0, 8)); - } - // Use a custom render function - if (typeof children === 'function') { - return children(formattedValue, currentValue); - } - return formattedValue; - } -} diff --git a/tgui/packages/tgui/components/AnimatedNumber.tsx b/tgui/packages/tgui/components/AnimatedNumber.tsx new file mode 100644 index 0000000000..53bdba90ab --- /dev/null +++ b/tgui/packages/tgui/components/AnimatedNumber.tsx @@ -0,0 +1,189 @@ +/** + * @file + * @copyright 2020 Aleksej Komarov + * @license MIT + */ + +import { clamp, toFixed } from 'common/math'; +import { Component, createRef } from 'inferno'; + +const isSafeNumber = (value: number) => { + // prettier-ignore + return typeof value === 'number' + && Number.isFinite(value) + && !Number.isNaN(value); +}; + +export type AnimatedNumberProps = { + /** + * The target value to approach. + */ + value: number; + + /** + * If provided, the initial value displayed. By default, the same as `value`. + * If `initial` and `value` are different, the component immediately starts + * animating. + */ + initial?: number; + + /** + * If provided, a function that formats the inner string. By default, + * attempts to match the numeric precision of `value`. + */ + format?: (value: number) => string; +}; + +/** + * Animated numbers are animated at roughly 60 frames per second. + */ +const SIXTY_HZ = 1_000.0 / 60.0; + +/** + * The exponential moving average coefficient. Larger values result in a faster + * convergence. + */ +const Q = 0.8333; + +/** + * A small number. + */ +const EPSILON = 10e-4; + +/** + * An animated number label. Shows a number, formatted with an optionally + * provided function, and animates it towards its target value. + */ +export class AnimatedNumber extends Component { + /** + * The inner `` being updated sixty times per second. + */ + ref = createRef(); + + /** + * The interval being used to update the inner span. + */ + interval?: NodeJS.Timeout; + + /** + * The current value. This values approaches the target value. + */ + currentValue: number = 0; + + constructor(props: AnimatedNumberProps) { + super(props); + + const { initial, value } = props; + + if (initial !== undefined && isSafeNumber(initial)) { + this.currentValue = initial; + } else if (isSafeNumber(value)) { + this.currentValue = value; + } + } + + componentDidMount() { + if (this.currentValue !== this.props.value) { + this.startTicking(); + } + } + + componentWillUnmount() { + // Stop animating when the component is unmounted. + this.stopTicking(); + } + + shouldComponentUpdate(newProps: AnimatedNumberProps) { + if (newProps.value !== this.props.value) { + // The target value has been adjusted; start animating if we aren't + // already. + this.startTicking(); + } + + // We render the inner `span` directly using a ref to bypass inferno diffing + // and reach 60 frames per second--tell inferno not to re-render this tree. + return false; + } + + /** + * Starts animating the inner span. If the inner span is already animating, + * this is a no-op. + */ + startTicking() { + if (this.interval !== undefined) { + // We're already ticking; do nothing. + return; + } + + this.interval = setInterval(() => this.tick(), SIXTY_HZ); + } + + /** + * Stops animating the inner span. + */ + stopTicking() { + if (this.interval === undefined) { + // We're not ticking; do nothing. + return; + } + + clearInterval(this.interval); + + this.interval = undefined; + } + + /** + * Steps forward one frame. + */ + tick() { + const { currentValue } = this; + const { value } = this.props; + + if (isSafeNumber(value)) { + // Converge towards the value. + this.currentValue = currentValue * Q + value * (1 - Q); + } else { + // If the value is unsafe, we're never going to converge, so stop ticking. + this.stopTicking(); + } + + if ( + Math.abs(value - this.currentValue) < Math.max(EPSILON, EPSILON * value) + ) { + // We're about as close as we're going to get--snap to the value and + // stop ticking. + this.currentValue = value; + this.stopTicking(); + } + + if (this.ref.current) { + // Directly update the inner span, without bothering inferno. + this.ref.current.textContent = this.getText(); + } + } + + /** + * Gets the inner text of the span. + */ + getText() { + const { props, currentValue } = this; + const { format, value } = props; + + if (!isSafeNumber(value)) { + return String(value); + } + + if (format) { + return format(this.currentValue); + } + + const fraction = String(value).split('.')[1]; + const precision = fraction ? fraction.length : 0; + + return toFixed(currentValue, clamp(precision, 0, 8)); + } + + render() { + return {this.getText()}; + } +} diff --git a/tgui/packages/tgui/components/Blink.js b/tgui/packages/tgui/components/Blink.js index f81ecef8b4..bd781336b4 100644 --- a/tgui/packages/tgui/components/Blink.js +++ b/tgui/packages/tgui/components/Blink.js @@ -12,7 +12,10 @@ export class Blink extends Component { } createTimer() { - const { interval = DEFAULT_BLINKING_INTERVAL, time = DEFAULT_BLINKING_TIME } = this.props; + const { + interval = DEFAULT_BLINKING_INTERVAL, + time = DEFAULT_BLINKING_TIME, + } = this.props; clearInterval(this.interval); clearTimeout(this.timer); @@ -39,7 +42,10 @@ export class Blink extends Component { } componentDidUpdate(prevProps) { - if (prevProps.interval !== this.props.interval || prevProps.time !== this.props.time) { + if ( + prevProps.interval !== this.props.interval || + prevProps.time !== this.props.time + ) { this.createTimer(); } } diff --git a/tgui/packages/tgui/components/BodyZoneSelector.tsx b/tgui/packages/tgui/components/BodyZoneSelector.tsx new file mode 100644 index 0000000000..cf8dc430e2 --- /dev/null +++ b/tgui/packages/tgui/components/BodyZoneSelector.tsx @@ -0,0 +1,153 @@ +import { Component, createRef } from 'inferno'; +import { resolveAsset } from '../assets'; +import { Box } from './Box'; + +export enum BodyZone { + Head = 'head', + Chest = 'chest', + LeftArm = 'l_arm', + RightArm = 'r_arm', + LeftLeg = 'l_leg', + RightLeg = 'r_leg', + Eyes = 'eyes', + Mouth = 'mouth', + Groin = 'groin', +} + +const bodyZonePixelToZone = (x: number, y: number): BodyZone | null => { + // TypeScript translation of /atom/movable/screen/zone_sel/proc/get_zone_at + if (y < 1) { + return null; + } else if (y < 10) { + if (x > 10 && x < 15) { + return BodyZone.RightLeg; + } else if (x > 17 && x < 22) { + return BodyZone.LeftLeg; + } + } else if (y < 13) { + if (x > 8 && x < 11) { + return BodyZone.RightArm; + } else if (x > 12 && x < 20) { + return BodyZone.Groin; + } else if (x > 21 && x < 24) { + return BodyZone.LeftArm; + } + } else if (y < 22) { + if (x > 8 && x < 11) { + return BodyZone.RightArm; + } else if (x > 12 && x < 20) { + return BodyZone.Chest; + } else if (x > 21 && x < 24) { + return BodyZone.LeftArm; + } + } else if (y < 30 && x > 12 && x < 20) { + if (y > 23 && y < 24 && x > 15 && x < 17) { + return BodyZone.Mouth; + } else if (y > 25 && y < 27 && x > 14 && x < 18) { + return BodyZone.Eyes; + } else { + return BodyZone.Head; + } + } + + return null; +}; + +type BodyZoneSelectorProps = { + onClick?: (zone: BodyZone) => void; + scale?: number; + selectedZone: BodyZone | null; + theme?: string; +}; + +type BodyZoneSelectorState = { + hoverZone: BodyZone | null; +}; + +export class BodyZoneSelector extends Component< + BodyZoneSelectorProps, + BodyZoneSelectorState +> { + ref = createRef(); + state: BodyZoneSelectorState = { + hoverZone: null, + }; + + render() { + const { hoverZone } = this.state; + const { scale = 3, selectedZone, theme = 'midnight' } = this.props; + + return ( +
    + { + const onClick = this.props.onClick; + if (onClick && this.state.hoverZone) { + onClick(this.state.hoverZone); + } + }} + onMouseMove={(event) => { + if (!this.props.onClick) { + return; + } + + const rect = this.ref.current?.getBoundingClientRect(); + if (!rect) { + return; + } + + const x = event.clientX - rect.left; + const y = 32 * scale - (event.clientY - rect.top); + + this.setState({ + hoverZone: bodyZonePixelToZone(x / scale, y / scale), + }); + }} + style={{ + '-ms-interpolation-mode': 'nearest-neighbor', + 'position': 'absolute', + 'width': `${32 * scale}px`, + 'height': `${32 * scale}px`, + }} + /> + + {selectedZone && ( + + )} + + {hoverZone && hoverZone !== selectedZone && ( + + )} +
    + ); + } +} diff --git a/tgui/packages/tgui/components/Box.tsx b/tgui/packages/tgui/components/Box.tsx index 441ec43cac..96244d5bd7 100644 --- a/tgui/packages/tgui/components/Box.tsx +++ b/tgui/packages/tgui/components/Box.tsx @@ -9,7 +9,7 @@ import { createVNode, InfernoNode, SFC } from 'inferno'; import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; import { CSS_COLORS } from '../constants'; -export interface BoxProps { +export type BoxProps = { [key: string]: any; as?: string; className?: string | BooleanLike; @@ -35,7 +35,6 @@ export interface BoxProps { textAlign?: string | BooleanLike; verticalAlign?: string | BooleanLike; textTransform?: string | BooleanLike; // VOREStation Addition - unselectable?: string | BooleanLike; // VOREStation Addition inline?: BooleanLike; bold?: BooleanLike; italic?: BooleanLike; @@ -60,20 +59,13 @@ export interface BoxProps { backgroundColor?: string | BooleanLike; // VOREStation Addition Start // Flex props - order?: string | BooleanLike; - flexDirection?: string | BooleanLike; flexGrow?: string | BooleanLike; - flexShrink?: string | BooleanLike; flexWrap?: string | BooleanLike; - flexFlow?: string | BooleanLike; flexBasis?: string | BooleanLike; flex?: string | BooleanLike; - alignItems?: string | BooleanLike; - justifyContent?: string | BooleanLike; - alignSelf?: string | BooleanLike; // VOREStation Addition End fillPositionedParent?: boolean; -} +}; /** * Coverts our rem-like spacing unit into a CSS unit. @@ -173,7 +165,6 @@ const styleMapperByPropName = { textAlign: mapRawPropTo('text-align'), verticalAlign: mapRawPropTo('vertical-align'), textTransform: mapRawPropTo('text-transform'), // VOREStation Addition - unselectable: mapRawPropTo('unselectable'), // VOREStation Addition // Boolean props inline: mapBooleanPropTo('display', 'inline-block'), bold: mapBooleanPropTo('font-weight', 'bold'), @@ -181,7 +172,12 @@ const styleMapperByPropName = { nowrap: mapBooleanPropTo('white-space', 'nowrap'), preserveWhitespace: mapBooleanPropTo('white-space', 'pre-wrap'), // Margins - m: mapDirectionalUnitPropTo('margin', halfUnit, ['top', 'bottom', 'left', 'right']), + m: mapDirectionalUnitPropTo('margin', halfUnit, [ + 'top', + 'bottom', + 'left', + 'right', + ]), mx: mapDirectionalUnitPropTo('margin', halfUnit, ['left', 'right']), my: mapDirectionalUnitPropTo('margin', halfUnit, ['top', 'bottom']), mt: mapUnitPropTo('margin-top', halfUnit), @@ -189,7 +185,12 @@ const styleMapperByPropName = { ml: mapUnitPropTo('margin-left', halfUnit), mr: mapUnitPropTo('margin-right', halfUnit), // Margins - p: mapDirectionalUnitPropTo('padding', halfUnit, ['top', 'bottom', 'left', 'right']), + p: mapDirectionalUnitPropTo('padding', halfUnit, [ + 'top', + 'bottom', + 'left', + 'right', + ]), px: mapDirectionalUnitPropTo('padding', halfUnit, ['left', 'right']), py: mapDirectionalUnitPropTo('padding', halfUnit, ['top', 'bottom']), pt: mapUnitPropTo('padding-top', halfUnit), @@ -202,17 +203,10 @@ const styleMapperByPropName = { backgroundColor: mapColorPropTo('background-color'), // VOREStation Addition Start // Flex props - order: mapRawPropTo('order'), - flexDirection: mapRawPropTo('flex-direction'), flexGrow: mapRawPropTo('flex-grow'), - flexShrink: mapRawPropTo('flex-shrink'), flexWrap: mapRawPropTo('flex-wrap'), - flexFlow: mapRawPropTo('flex-flow'), flexBasis: mapRawPropTo('flex-basis'), flex: mapRawPropTo('flex'), - alignItems: mapRawPropTo('align-items'), - justifyContent: mapRawPropTo('justify-content'), - alignSelf: mapRawPropTo('align-self'), // VOREStation Addition End // Utility props fillPositionedParent: (style, value) => { @@ -281,7 +275,9 @@ export const Box: SFC = (props: BoxProps) => { return children(computeBoxProps(props)); } const computedClassName = - typeof className === 'string' ? className + ' ' + computeBoxClassName(rest) : computeBoxClassName(rest); + typeof className === 'string' + ? className + ' ' + computeBoxClassName(rest) + : computeBoxClassName(rest); const computedProps = computeBoxProps(rest); // Render a wrapper element return createVNode( diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.js index 05abfc39ee..58d879d228 100644 --- a/tgui/packages/tgui/components/Button.js +++ b/tgui/packages/tgui/components/Button.js @@ -36,6 +36,7 @@ export const Button = (props) => { children, onclick, onClick, + verticalAlignContent, ...rest } = props; const hasContent = !!(content || children); @@ -69,7 +70,13 @@ export const Button = (props) => { circular && 'Button--circular', compact && 'Button--compact', iconPosition && 'Button--iconPosition--' + iconPosition, - color && typeof color === 'string' ? 'Button--color--' + color : 'Button--color--default', + verticalAlignContent && 'Button--flex', + verticalAlignContent && fluid && 'Button--flex--fluid', + verticalAlignContent && + 'Button--verticalAlignContent--' + verticalAlignContent, + color && typeof color === 'string' + ? 'Button--color--' + color + : 'Button--color--default', className, computeBoxClassName(rest), ])} @@ -78,7 +85,6 @@ export const Button = (props) => { if (props.captureKeys === false) { return; } - const keyCode = window.event ? e.which : e.keyCode; // Simulate a click when pressing space or enter. if (keyCode === KEY_SPACE || keyCode === KEY_ENTER) { @@ -95,20 +101,27 @@ export const Button = (props) => { } }} {...computeBoxProps(rest)}> - {icon && iconPosition !== 'right' && ( - - )} - {content} - {children} - {icon && iconPosition === 'right' && ( - - )} +
    + {icon && iconPosition !== 'right' && ( + + )} + {content} + {children} + {icon && iconPosition === 'right' && ( + + )} +
    ); @@ -127,7 +140,14 @@ Button.defaultHooks = pureComponentHooks; export const ButtonCheckbox = (props) => { const { checked, ...rest } = props; - return - {buttons &&
    {buttons}
    } + {buttons && ( +
    {buttons}
    + )} {open && {children}} diff --git a/tgui/packages/tgui/components/ColorBox.js b/tgui/packages/tgui/components/ColorBox.js index 641e5fa751..a6203ca469 100644 --- a/tgui/packages/tgui/components/ColorBox.js +++ b/tgui/packages/tgui/components/ColorBox.js @@ -8,11 +8,21 @@ import { classes, pureComponentHooks } from 'common/react'; import { computeBoxClassName, computeBoxProps } from './Box'; export const ColorBox = (props) => { - const { content, children, className, color, backgroundColor, ...rest } = props; + // prettier-ignore + const { + content, + children, + className, + color, + backgroundColor, + ...rest + } = props; rest.color = content ? null : 'transparent'; rest.backgroundColor = color || backgroundColor; return ( -
    +
    {content || '.'}
    ); diff --git a/tgui/packages/tgui/components/Dialog.tsx b/tgui/packages/tgui/components/Dialog.tsx new file mode 100644 index 0000000000..277a03b284 --- /dev/null +++ b/tgui/packages/tgui/components/Dialog.tsx @@ -0,0 +1,84 @@ +/** + * @file + * @copyright 2022 raffclar + * @license MIT + */ +import { Box } from './Box'; +import { Button } from './Button'; + +type DialogProps = { + title: any; + onClose: () => void; + children: any; + width?: string; + height?: string; +}; + +export const Dialog = (props: DialogProps) => { + const { title, onClose, children, width, height } = props; + return ( +
    + +
    +
    {title}
    + +
    + {children} +
    +
    + ); +}; + +type DialogButtonProps = { + onClick: () => void; + children: any; +}; + +const DialogButton = (props: DialogButtonProps) => { + const { onClick, children } = props; + return ( + + ); +}; + +Dialog.Button = DialogButton; + +type UnsavedChangesDialogProps = { + documentName: string; + onSave: () => void; + onDiscard: () => void; + onClose: () => void; +}; + +export const UnsavedChangesDialog = (props: UnsavedChangesDialogProps) => { + const { documentName, onSave, onDiscard, onClose } = props; + return ( + +
    + Do you want to save changes to {documentName}? +
    +
    + Save + Don't Save + Cancel +
    +
    + ); +}; diff --git a/tgui/packages/tgui/components/DraggableControl.js b/tgui/packages/tgui/components/DraggableControl.js index fffd0cc254..8ada6f2fa4 100644 --- a/tgui/packages/tgui/components/DraggableControl.js +++ b/tgui/packages/tgui/components/DraggableControl.js @@ -40,13 +40,11 @@ export class DraggableControl extends Component { suppressingFlicker: true, }); clearTimeout(this.flickerTimer); - this.flickerTimer = setTimeout( - () => - this.setState({ - suppressingFlicker: false, - }), - suppressFlicker - ); + this.flickerTimer = setTimeout(() => { + this.setState({ + suppressingFlicker: false, + }); + }, suppressFlicker); } }; @@ -81,7 +79,14 @@ export class DraggableControl extends Component { }; this.handleDragMove = (e) => { - const { minValue, maxValue, step, stepPixelSize, dragMatrix } = this.props; + // prettier-ignore + const { + minValue, + maxValue, + step, + stepPixelSize, + dragMatrix, + } = this.props; this.setState((prevState) => { const state = { ...prevState }; const offset = getScalarScreenOffset(e, dragMatrix) - state.origin; @@ -95,7 +100,11 @@ export class DraggableControl extends Component { maxValue + step ); // Clamp the final value - state.value = clamp(state.internalValue - (state.internalValue % step) + stepOffset, minValue, maxValue); + state.value = clamp( + state.internalValue - (state.internalValue % step) + stepOffset, + minValue, + maxValue + ); state.origin = getScalarScreenOffset(e, dragMatrix); } else if (Math.abs(offset) > 4) { state.dragging = true; @@ -139,7 +148,12 @@ export class DraggableControl extends Component { } render() { - const { dragging, editing, value: intermediateValue, suppressingFlicker } = this.state; + const { + dragging, + editing, + value: intermediateValue, + suppressingFlicker, + } = this.state; const { animated, value, @@ -160,17 +174,19 @@ export class DraggableControl extends Component { if (dragging || suppressingFlicker) { displayValue = intermediateValue; } - // Setup a display element - // Shows a formatted number based on what we are currently doing - // with the draggable surface. - const renderDisplayElement = (value) => value + (unit ? ' ' + unit : ''); - const displayElement = - (animated && !dragging && !suppressingFlicker && ( - - {renderDisplayElement} - - )) || - renderDisplayElement(format ? format(displayValue) : displayValue); + // prettier-ignore + const displayElement = ( + <> + { + (animated && !dragging && !suppressingFlicker) ? + () : + (format ? format(displayValue) : displayValue) + } + + { (unit ? ' ' + unit : '') } + + ); + // Setup an input element // Handles direct input via the keyboard const inputElement = ( diff --git a/tgui/packages/tgui/components/Dropdown.js b/tgui/packages/tgui/components/Dropdown.js deleted file mode 100644 index 1309df92b9..0000000000 --- a/tgui/packages/tgui/components/Dropdown.js +++ /dev/null @@ -1,145 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { classes } from 'common/react'; -import { Component } from 'inferno'; -import { Box } from './Box'; -import { Icon } from './Icon'; - -export class Dropdown extends Component { - constructor(props) { - super(props); - this.state = { - selected: props.selected, - open: false, - }; - this.handleClick = () => { - if (this.state.open) { - this.setOpen(false); - } - }; - } - - componentWillUnmount() { - window.removeEventListener('click', this.handleClick); - } - - setOpen(open) { - this.setState({ open: open }); - if (open) { - setTimeout(() => window.addEventListener('click', this.handleClick)); - this.menuRef.focus(); - } else { - window.removeEventListener('click', this.handleClick); - } - } - - setSelected(selected) { - this.setState({ - selected: selected, - }); - this.setOpen(false); - this.props.onSelected(selected); - } - - buildMenu() { - const { options = [], placeholder } = this.props; // VOREStation edit - const ops = options.map((option) => ( - { - this.setSelected(option); - }}> - {option} - - )); - // VOREStation addition start - if (placeholder) { - ops.unshift( -
    { - this.setSelected(null); - }}> - -- {placeholder} -- -
    - ); - } - // VOREStation addition end - return ops.length ? ops : 'No Options Found'; - } - - render() { - const { props } = this; - const { - icon, - iconRotation, - iconSpin, - color = 'default', - over, - noscroll, - nochevron, - width, - onClick, - selected, - disabled, - displayText, - placeholder, // VOREStation Addition - ...boxProps - } = props; - const { className, ...rest } = boxProps; - - const adjustedOpen = over ? !this.state.open : this.state.open; - - const menu = this.state.open ? ( -
    { - this.menuRef = menu; - }} - tabIndex="-1" - style={{ - 'width': width, - }} - className={classes([(noscroll && 'Dropdown__menu-noscroll') || 'Dropdown__menu', over && 'Dropdown__over'])}> - {this.buildMenu()} -
    - ) : null; - - return ( -
    - { - if (disabled && !this.state.open) { - return; - } - this.setOpen(!this.state.open); - }}> - {icon && } - - {displayText ? displayText : this.state.selected || placeholder /* VOREStation Edit */} - - {!!nochevron || ( - - - - )} - - {menu} -
    - ); - } -} diff --git a/tgui/packages/tgui/components/Dropdown.tsx b/tgui/packages/tgui/components/Dropdown.tsx new file mode 100644 index 0000000000..0d417af459 --- /dev/null +++ b/tgui/packages/tgui/components/Dropdown.tsx @@ -0,0 +1,395 @@ +import { createPopper, VirtualElement } from '@popperjs/core'; +import { classes } from 'common/react'; +import { Component, findDOMfromVNode, InfernoNode, render } from 'inferno'; +import { Box, BoxProps } from './Box'; +import { Button } from './Button'; +import { Icon } from './Icon'; +import { Stack } from './Stack'; + +export interface DropdownEntry { + displayText: string | number | InfernoNode; + value: string | number | Enumerator; +} + +type DropdownUniqueProps = { + options: string[] | DropdownEntry[]; + icon?: string; + iconRotation?: number; + clipSelectedText?: boolean; + width?: string; + menuWidth?: string; + over?: boolean; + color?: string; + nochevron?: boolean; + displayText?: string | number | InfernoNode; + onClick?: (event) => void; + // you freaks really are just doing anything with this shit + selected?: any; + onSelected?: (selected: any) => void; + buttons?: boolean; +}; + +export type DropdownProps = BoxProps & DropdownUniqueProps; + +const DEFAULT_OPTIONS = { + placement: 'left-start', + modifiers: [ + { + name: 'eventListeners', + enabled: false, + }, + ], +}; +const NULL_RECT: DOMRect = { + width: 0, + height: 0, + top: 0, + right: 0, + bottom: 0, + left: 0, + x: 0, + y: 0, + toJSON: () => null, +} as const; + +type DropdownState = { + selected?: string; + open: boolean; +}; + +const DROPDOWN_DEFAULT_CLASSNAMES = 'Layout Dropdown__menu'; +const DROPDOWN_SCROLL_CLASSNAMES = 'Layout Dropdown__menu-scroll'; + +export class Dropdown extends Component { + static renderedMenu: HTMLDivElement | undefined; + static singletonPopper: ReturnType | undefined; + static currentOpenMenu: Element | undefined; + static virtualElement: VirtualElement = { + getBoundingClientRect: () => + Dropdown.currentOpenMenu?.getBoundingClientRect() ?? NULL_RECT, + }; + menuContents: any; + state: DropdownState = { + open: false, + selected: this.props.selected, + }; + + handleClick = () => { + if (this.state.open) { + this.setOpen(false); + } + }; + + getDOMNode() { + return findDOMfromVNode(this.$LI, true); + } + + componentDidMount() { + const domNode = this.getDOMNode(); + + if (!domNode) { + return; + } + } + + openMenu() { + let renderedMenu = Dropdown.renderedMenu; + if (renderedMenu === undefined) { + renderedMenu = document.createElement('div'); + renderedMenu.className = DROPDOWN_DEFAULT_CLASSNAMES; + document.body.appendChild(renderedMenu); + Dropdown.renderedMenu = renderedMenu; + } + + const domNode = this.getDOMNode()!; + Dropdown.currentOpenMenu = domNode; + + renderedMenu.scrollTop = 0; + renderedMenu.style.width = + this.props.menuWidth || + // Hack, but domNode should *always* be the parent control meaning it will have width + // @ts-ignore + `${domNode.offsetWidth}px`; + renderedMenu.style.opacity = '1'; + renderedMenu.style.pointerEvents = 'auto'; + + // ie hack + // ie has this bizarre behavior where focus just silently fails if the + // element being targeted "isn't ready" + // 400 is probably way too high, but the lack of hotloading is testing my + // patience on tuning it + // I'm beyond giving a shit at this point it fucking works whatever + setTimeout(() => { + Dropdown.renderedMenu?.focus(); + }, 400); + this.renderMenuContent(); + } + + closeMenu() { + if (Dropdown.currentOpenMenu !== this.getDOMNode()) { + return; + } + + Dropdown.currentOpenMenu = undefined; + Dropdown.renderedMenu!.style.opacity = '0'; + Dropdown.renderedMenu!.style.pointerEvents = 'none'; + } + + componentWillUnmount() { + this.closeMenu(); + this.setOpen(false); + } + + renderMenuContent() { + const renderedMenu = Dropdown.renderedMenu; + if (!renderedMenu) { + return; + } + if (renderedMenu.offsetHeight > 200) { + renderedMenu.className = DROPDOWN_SCROLL_CLASSNAMES; + } else { + renderedMenu.className = DROPDOWN_DEFAULT_CLASSNAMES; + } + + const { options = [] } = this.props; + const ops = options.map((option) => { + let value, displayText; + + if (typeof option === 'string') { + displayText = option; + value = option; + } else if (option !== null) { + displayText = option.displayText; + value = option.value; + } + + return ( +
    { + this.setSelected(value); + }}> + {displayText} +
    + ); + }); + + const to_render = ops.length ? ops : 'No Options Found'; + + render( +
    {to_render}
    , + renderedMenu, + () => { + let singletonPopper = Dropdown.singletonPopper; + if (singletonPopper === undefined) { + singletonPopper = createPopper( + Dropdown.virtualElement, + renderedMenu!, + { + ...DEFAULT_OPTIONS, + placement: 'bottom-start', + } + ); + + Dropdown.singletonPopper = singletonPopper; + } else { + singletonPopper.setOptions({ + ...DEFAULT_OPTIONS, + placement: 'bottom-start', + }); + + singletonPopper.update(); + } + }, + this.context + ); + } + + setOpen(open: boolean) { + this.setState((state) => ({ + ...state, + open, + })); + if (open) { + setTimeout(() => { + this.openMenu(); + window.addEventListener('click', this.handleClick); + }); + } else { + this.closeMenu(); + window.removeEventListener('click', this.handleClick); + } + } + + setSelected(selected: string) { + this.setState((state) => ({ + ...state, + selected, + })); + this.setOpen(false); + if (this.props.onSelected) { + this.props.onSelected(selected); + } + } + + getOptionValue(option): string { + return typeof option === 'string' ? option : option.value; + } + + getSelectedIndex(): number { + const selected = this.state.selected || this.props.selected; + const { options = [] } = this.props; + + return options.findIndex((option) => { + return this.getOptionValue(option) === selected; + }); + } + + toPrevious(): void { + if (this.props.options.length < 1) { + return; + } + + let selectedIndex = this.getSelectedIndex(); + const startIndex = 0; + const endIndex = this.props.options.length - 1; + + const hasSelected = selectedIndex >= 0; + if (!hasSelected) { + selectedIndex = startIndex; + } + + const previousIndex = + selectedIndex === startIndex ? endIndex : selectedIndex - 1; + + this.setSelected(this.getOptionValue(this.props.options[previousIndex])); + } + + toNext(): void { + if (this.props.options.length < 1) { + return; + } + + let selectedIndex = this.getSelectedIndex(); + const startIndex = 0; + const endIndex = this.props.options.length - 1; + + const hasSelected = selectedIndex >= 0; + if (!hasSelected) { + selectedIndex = endIndex; + } + + const nextIndex = + selectedIndex === endIndex ? startIndex : selectedIndex + 1; + + this.setSelected(this.getOptionValue(this.props.options[nextIndex])); + } + + render() { + const { props } = this; + const { + icon, + iconRotation, + iconSpin, + clipSelectedText = true, + color = 'default', + dropdownStyle, + over, + nochevron, + width, + onClick, + onSelected, + selected, + disabled, + displayText, + buttons, + ...boxProps + } = props; + const { className, ...rest } = boxProps; + + const adjustedOpen = over ? !this.state.open : this.state.open; + + return ( + + + { + if (disabled && !this.state.open) { + return; + } + this.setOpen(!this.state.open); + if (onClick) { + onClick(event); + } + }} + {...rest}> + {icon && ( + + )} + + {displayText || this.state.selected} + + {nochevron || ( + + + + )} + + + {buttons && ( + <> + +
    diff --git a/tgui/packages/tgui/components/Input.js b/tgui/packages/tgui/components/Input.js index 92f654f241..ac7ce6eef3 100644 --- a/tgui/packages/tgui/components/Input.js +++ b/tgui/packages/tgui/components/Input.js @@ -4,12 +4,17 @@ * @license MIT */ +import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes'; import { classes } from 'common/react'; import { Component, createRef } from 'inferno'; import { Box } from './Box'; -import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes'; -export const toInputValue = (value) => (typeof value !== 'number' && typeof value !== 'string' ? '' : String(value)); +// prettier-ignore +export const toInputValue = value => ( + typeof value !== 'number' && typeof value !== 'string' + ? '' + : String(value) +); export class Input extends Component { constructor() { @@ -30,13 +35,9 @@ export class Input extends Component { }; this.handleFocus = (e) => { const { editing } = this.state; - const { autoSelect } = this.props; if (!editing) { this.setEditing(true); } - if (autoSelect) { - e.target.select(); - } }; this.handleBlur = (e) => { const { editing } = this.state; @@ -117,12 +118,26 @@ export class Input extends Component { render() { const { props } = this; // Input only props - const { selfClear, onInput, onChange, onEnter, value, maxLength, placeholder, ...boxProps } = props; + const { + selfClear, + onInput, + onChange, + onEnter, + value, + maxLength, + placeholder, + ...boxProps + } = props; // Box props const { className, fluid, monospace, ...rest } = boxProps; return (
    .
    { value, }}> {(control) => { - const { dragging, editing, value, displayValue, displayElement, inputElement, handleDragStart } = control; - const scaledFillValue = scale(fillValue ?? displayValue, minValue, maxValue); + const { + dragging, + editing, + value, + displayValue, + displayElement, + inputElement, + handleDragStart, + } = control; + const scaledFillValue = scale( + fillValue ?? displayValue, + minValue, + maxValue + ); const scaledDisplayValue = scale(displayValue, minValue, maxValue); - const effectiveColor = color || keyOfMatchingRange(fillValue ?? value, ranges) || 'default'; + const effectiveColor = + color || keyOfMatchingRange(fillValue ?? value, ranges) || 'default'; const rotation = Math.min((scaledDisplayValue - 0.5) * 270, 225); return (
    {
    - {dragging &&
    {displayElement}
    } - + {dragging && ( +
    {displayElement}
    + )} + - + { const { children, wrap, ...rest } = props; return ( - + {children} ); @@ -19,7 +24,13 @@ const LabeledControlsItem = (props) => { const { label, children, mx = 1, ...rest } = props; return ( - + {children} {label} diff --git a/tgui/packages/tgui/components/LabeledList.tsx b/tgui/packages/tgui/components/LabeledList.tsx index 0a06916ee0..283c0a2b91 100644 --- a/tgui/packages/tgui/components/LabeledList.tsx +++ b/tgui/packages/tgui/components/LabeledList.tsx @@ -22,15 +22,16 @@ LabeledList.defaultHooks = pureComponentHooks; type LabeledListItemProps = { className?: string | BooleanLike; - label?: string | BooleanLike; + label?: string | InfernoNode | BooleanLike; labelColor?: string | BooleanLike; + labelWrap?: boolean; color?: string | BooleanLike; textAlign?: string | BooleanLike; - verticalAlign?: string | BooleanLike; // VOREStation Addition buttons?: InfernoNode; /** @deprecated */ content?: any; children?: InfernoNode; + verticalAlign?: string; }; const LabeledListItem = (props: LabeledListItemProps) => { @@ -38,36 +39,40 @@ const LabeledListItem = (props: LabeledListItemProps) => { className, label, labelColor = 'label', + labelWrap, color, textAlign, - verticalAlign, // VOREStation Addition buttons, content, children, - ...rest // VOREStation Addition + verticalAlign = 'baseline', } = props; return (
    - {label ? label + ':' : null} + className={classes([ + 'LabeledList__cell', + // Kinda flipped because we want nowrap as default. Cleaner CSS this way though. + !labelWrap && 'LabeledList__label--nowrap', + ])} + verticalAlign={verticalAlign}> + {label ? (typeof label === 'string' ? label + ':' : label) : null} + verticalAlign={verticalAlign}> {content} {children} - {buttons && {buttons}} + {buttons && ( + {buttons} + )}
    ); }; diff --git a/tgui/packages/tgui/components/MenuBar.tsx b/tgui/packages/tgui/components/MenuBar.tsx new file mode 100644 index 0000000000..35de61ec9c --- /dev/null +++ b/tgui/packages/tgui/components/MenuBar.tsx @@ -0,0 +1,231 @@ +/** + * @file + * @copyright 2022 Aleksej Komarov + * @license MIT + */ + +import { classes } from 'common/react'; +import { Component, createRef, InfernoNode, RefObject } from 'inferno'; +import { Box } from './Box'; +import { logger } from '../logging'; +import { Icon } from './Icon'; + +type MenuProps = { + children: any; + width: string; + menuRef: RefObject; + onOutsideClick: () => void; +}; + +class Menu extends Component { + private readonly handleClick: (event) => void; + + constructor(props) { + super(props); + this.handleClick = (event) => { + if (!this.props.menuRef.current) { + logger.log(`Menu.handleClick(): No ref`); + return; + } + + if (this.props.menuRef.current.contains(event.target)) { + logger.log(`Menu.handleClick(): Inside`); + } else { + logger.log(`Menu.handleClick(): Outside`); + this.props.onOutsideClick(); + } + }; + } + + // eslint-disable-next-line react/no-deprecated + componentWillMount() { + window.addEventListener('click', this.handleClick); + } + + componentWillUnmount() { + window.removeEventListener('click', this.handleClick); + } + + render() { + const { width, children } = this.props; + return ( +
    + {children} +
    + ); + } +} + +type MenuBarDropdownProps = { + open: boolean; + openWidth: string; + children: any; + disabled?: boolean; + display: any; + onMouseOver: () => void; + onClick: () => void; + onOutsideClick: () => void; + className?: string; +}; + +class MenuBarButton extends Component { + private readonly menuRef: RefObject; + + constructor(props) { + super(props); + this.menuRef = createRef(); + } + + render() { + const { props } = this; + const { + open, + openWidth, + children, + disabled, + display, + onMouseOver, + onClick, + onOutsideClick, + ...boxProps + } = props; + const { className, ...rest } = boxProps; + + return ( +
    + + {display} + + {open && ( + + {children} + + )} +
    + ); + } +} + +type MenuBarItemProps = { + entry: string; + children: any; + openWidth: string; + display: InfernoNode; + setOpenMenuBar: (entry: string | null) => void; + openMenuBar: string | null; + setOpenOnHover: (flag: boolean) => void; + openOnHover: boolean; + disabled?: boolean; + className?: string; +}; + +export const Dropdown = (props: MenuBarItemProps) => { + const { + entry, + children, + openWidth, + display, + setOpenMenuBar, + openMenuBar, + setOpenOnHover, + openOnHover, + disabled, + className, + } = props; + + return ( + { + const open = openMenuBar === entry ? null : entry; + setOpenMenuBar(open); + setOpenOnHover(!openOnHover); + }} + onOutsideClick={() => { + setOpenMenuBar(null); + setOpenOnHover(false); + }} + onMouseOver={() => { + if (openOnHover) { + setOpenMenuBar(entry); + } + }}> + {children} + + ); +}; + +const MenuItemToggle = (props) => { + const { value, displayText, onClick, checked } = props; + return ( + onClick(value)}> +
    + {checked && } +
    + {displayText} +
    + ); +}; + +Dropdown.MenuItemToggle = MenuItemToggle; + +const MenuItem = (props) => { + const { value, displayText, onClick } = props; + return ( + onClick(value)}> + {displayText} + + ); +}; + +Dropdown.MenuItem = MenuItem; + +const Separator = () => { + return
    ; +}; + +Dropdown.Separator = Separator; + +type MenuBarProps = { + children: any; +}; + +export const MenuBar = (props: MenuBarProps) => { + const { children } = props; + return {children}; +}; + +MenuBar.Dropdown = Dropdown; diff --git a/tgui/packages/tgui/components/Modal.js b/tgui/packages/tgui/components/Modal.js index 72e65cdb13..54c8c090ec 100644 --- a/tgui/packages/tgui/components/Modal.js +++ b/tgui/packages/tgui/components/Modal.js @@ -9,13 +9,8 @@ import { computeBoxClassName, computeBoxProps } from './Box'; import { Dimmer } from './Dimmer'; export const Modal = (props) => { - const { - className, - children, - onEnter, // VOREStation Addition - ...rest - } = props; - // VOREStation Addition Start + const { className, children, onEnter, ...rest } = props; + // VOREStation Addition start let handleKeyDown; if (onEnter) { handleKeyDown = (e) => { @@ -25,10 +20,12 @@ export const Modal = (props) => { } }; } - // VOREStation Addition End + // VOREStation Addition end return ( - -
    + +
    {children}
    diff --git a/tgui/packages/tgui/components/NanoMap.js b/tgui/packages/tgui/components/NanoMap.js index 6bb4c49592..4ee5199119 100644 --- a/tgui/packages/tgui/components/NanoMap.js +++ b/tgui/packages/tgui/components/NanoMap.js @@ -143,7 +143,11 @@ export class NanoMap extends Component { return ( - + {children} diff --git a/tgui/packages/tgui/components/NumberInput.js b/tgui/packages/tgui/components/NumberInput.js index 74929778a4..e264d811d3 100644 --- a/tgui/packages/tgui/components/NumberInput.js +++ b/tgui/packages/tgui/components/NumberInput.js @@ -90,7 +90,11 @@ export class NumberInput extends Component { maxValue + step ); // Clamp the final value - state.value = clamp(state.internalValue - (state.internalValue % step) + stepOffset, minValue, maxValue); + state.value = clamp( + state.internalValue - (state.internalValue % step) + stepOffset, + minValue, + maxValue + ); state.origin = e.screenY; } else if (Math.abs(offset) > 4) { state.dragging = true; @@ -134,7 +138,12 @@ export class NumberInput extends Component { } render() { - const { dragging, editing, value: intermediateValue, suppressingFlicker } = this.state; + const { + dragging, + editing, + value: intermediateValue, + suppressingFlicker, + } = this.state; const { className, fluid, @@ -155,22 +164,27 @@ export class NumberInput extends Component { if (dragging || suppressingFlicker) { displayValue = intermediateValue; } - // IE8: Use an "unselectable" prop because "user-select" doesn't work. - const renderContentElement = (value) => ( + + // prettier-ignore + const contentElement = (
    - {value + (unit ? ' ' + unit : '')} + { + (animated && !dragging && !suppressingFlicker) ? + () : + (format ? format(displayValue) : displayValue) + } + + {unit ? ' ' + unit : ''}
    ); - const contentElement = - (animated && !dragging && !suppressingFlicker && ( - - {renderContentElement} - - )) || - renderContentElement(format ? format(displayValue) : displayValue); + return (
    @@ -219,7 +236,12 @@ export class NumberInput extends Component { }} onKeyDown={(e) => { if (e.keyCode === 13) { - const value = clamp(parseFloat(e.target.value), minValue, maxValue); + // prettier-ignore + const value = clamp( + parseFloat(e.target.value), + minValue, + maxValue + ); if (Number.isNaN(value)) { this.setState({ editing: false, diff --git a/tgui/packages/tgui/components/Popper.tsx b/tgui/packages/tgui/components/Popper.tsx index 1f025fe63b..1d6c4a73a7 100644 --- a/tgui/packages/tgui/components/Popper.tsx +++ b/tgui/packages/tgui/components/Popper.tsx @@ -24,6 +24,7 @@ export class Popper extends Component { const { additionalStyles, options } = this.props; this.renderedContent = document.createElement('div'); + if (additionalStyles) { for (const [attribute, value] of Object.entries(additionalStyles)) { this.renderedContent.style[attribute] = value; @@ -47,7 +48,11 @@ export class Popper extends Component { return; } - this.popperInstance = createPopper(domNode, this.renderedContent, options); + this.popperInstance = createPopper( + domNode, + this.renderedContent, + options + ); }); } @@ -65,7 +70,12 @@ export class Popper extends Component { renderPopperContent(callback: () => void) { // `render` errors when given false, so we convert it to `null`, // which is supported. - render(this.props.popperContent || null, this.renderedContent, callback, this.context); + render( + this.props.popperContent || null, + this.renderedContent, + callback, + this.context + ); } render() { diff --git a/tgui/packages/tgui/components/ProgressBar.js b/tgui/packages/tgui/components/ProgressBar.js index 5b026f2506..86116732c3 100644 --- a/tgui/packages/tgui/components/ProgressBar.js +++ b/tgui/packages/tgui/components/ProgressBar.js @@ -7,28 +7,58 @@ import { clamp01, scale, keyOfMatchingRange, toFixed } from 'common/math'; import { classes, pureComponentHooks } from 'common/react'; import { computeBoxClassName, computeBoxProps } from './Box'; +import { CSS_COLORS } from '../constants'; export const ProgressBar = (props) => { - const { className, value, minValue = 0, maxValue = 1, color, ranges = {}, children, ...rest } = props; + const { + className, + value, + minValue = 0, + maxValue = 1, + color, + ranges = {}, + children, + ...rest + } = props; const scaledValue = scale(value, minValue, maxValue); const hasContent = children !== undefined; - const effectiveColor = color || keyOfMatchingRange(value, ranges) || 'default'; + // prettier-ignore + const effectiveColor = color + || keyOfMatchingRange(value, ranges) + || 'default'; + + // We permit colors to be in hex format, rgb()/rgba() format, + // a name for a color- class, or a base CSS class. + const outerProps = computeBoxProps(rest); + // prettier-ignore + const outerClasses = [ + 'ProgressBar', + className, + computeBoxClassName(rest), + ]; + const fillStyles = { + 'width': clamp01(scaledValue) * 100 + '%', + }; + if (CSS_COLORS.includes(effectiveColor) || effectiveColor === 'default') { + // If the color is a color- class, just use that. + outerClasses.push('ProgressBar--color--' + effectiveColor); + } else { + // Otherwise, set styles directly. + // prettier-ignore + outerProps.style = (outerProps.style || "") + + `border-color: ${effectiveColor};`; + fillStyles['background-color'] = effectiveColor; + } + return ( -
    +
    -
    {hasContent ? children : toFixed(scaledValue * 100) + '%'}
    +
    + {hasContent ? children : toFixed(scaledValue * 100) + '%'} +
    ); }; diff --git a/tgui/packages/tgui/components/RestrictedInput.js b/tgui/packages/tgui/components/RestrictedInput.js index 32293f61a5..1b082296ca 100644 --- a/tgui/packages/tgui/components/RestrictedInput.js +++ b/tgui/packages/tgui/components/RestrictedInput.js @@ -8,18 +8,19 @@ const DEFAULT_MIN = 0; const DEFAULT_MAX = 10000; /** - * Takes a string input and parses integers from it. + * Takes a string input and parses integers or floats from it. * If none: Minimum is set. * Else: Clamps it to the given range. */ -const getClampedNumber = (value, minValue, maxValue) => { +const getClampedNumber = (value, minValue, maxValue, allowFloats) => { const minimum = minValue || DEFAULT_MIN; const maximum = maxValue || maxValue === 0 ? maxValue : DEFAULT_MAX; if (!value || !value.length) { return String(minimum); } - // let parsedValue = parseInt(value.replace(/\D/g, ''), 10); - let parsedValue = parseFloat(value); + let parsedValue = allowFloats + ? parseFloat(value.replace(/[^\-\d.]/g, '')) + : parseInt(value.replace(/[^\-\d]/g, ''), 10); if (isNaN(parsedValue)) { return String(minimum); } else { @@ -41,8 +42,13 @@ export class RestrictedInput extends Component { } }; this.handleChange = (e) => { - const { maxValue, minValue, onChange } = this.props; - e.target.value = getClampedNumber(e.target.value, minValue, maxValue); + const { maxValue, minValue, onChange, allowFloats } = this.props; + e.target.value = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); if (onChange) { onChange(e, +e.target.value); } @@ -64,9 +70,14 @@ export class RestrictedInput extends Component { } }; this.handleKeyDown = (e) => { - const { maxValue, minValue, onChange, onEnter } = this.props; + const { maxValue, minValue, onChange, onEnter, allowFloats } = this.props; if (e.keyCode === KEY_ENTER) { - const safeNum = getClampedNumber(e.target.value, minValue, maxValue); + const safeNum = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); this.setEditing(false); if (onChange) { onChange(e, +safeNum); @@ -91,11 +102,16 @@ export class RestrictedInput extends Component { } componentDidMount() { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } if (this.props.autoFocus || this.props.autoSelect) { setTimeout(() => { @@ -109,14 +125,19 @@ export class RestrictedInput extends Component { } componentDidUpdate(prevProps, _) { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const { editing } = this.state; const prevValue = prevProps.value?.toString(); const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input && !editing) { if (nextValue !== prevValue && nextValue !== input.value) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } } } @@ -131,7 +152,12 @@ export class RestrictedInput extends Component { const { className, fluid, monospace, ...rest } = boxProps; return (
    .
    { return ; } - const { value, minValue = 1, maxValue = 1, ranges, alertAfter, format, size = 1, className, style, ...rest } = props; + const { + value, + minValue = 1, + maxValue = 1, + ranges, + alertAfter, + alertBefore, + format, + size = 1, + className, + style, + ...rest + } = props; const scaledValue = scale(value, minValue, maxValue); const clampedValue = clamp01(scaledValue); - let scaledRanges = ranges ? {} : { 'primary': [0, 1] }; + const scaledRanges = ranges ? {} : { 'primary': [0, 1] }; if (ranges) { Object.keys(ranges).forEach((x) => { const range = ranges[x]; - scaledRanges[x] = [scale(range[0], minValue, maxValue), scale(range[1], minValue, maxValue)]; + scaledRanges[x] = [ + scale(range[0], minValue, maxValue), + scale(range[1], minValue, maxValue), + ]; }); } - let alertColor = null; - if (alertAfter < value) { - alertColor = keyOfMatchingRange(clampedValue, scaledRanges); - } + const shouldShowAlert = () => { + // If both after and before alert props are set, attempt to interpret both + // in a helpful way. + if (alertAfter && alertBefore && alertAfter < alertBefore) { + // If alertAfter is before alertBefore, only display an alert if + // we're between them. + if (alertAfter < value && alertBefore > value) { + return true; + } + } else if (alertAfter < value || alertBefore > value) { + // Otherwise, we have distint ranges, or only one or neither are set. + // Either way, being on the active side of either is sufficient. + return true; + } + return false; + }; + + // prettier-ignore + const alertColor = shouldShowAlert() + && keyOfMatchingRange(clampedValue, scaledRanges); return (
    { ...rest, })}> - {alertAfter && ( - + {(alertAfter || alertBefore) && ( + )} @@ -60,7 +99,10 @@ export const RoundGauge = (props) => { className={`RoundGauge__ringFill RoundGauge--color--${x}`} key={i} style={{ - 'stroke-dashoffset': Math.max((2.0 - (col_ranges[1] - col_ranges[0])) * Math.PI * 50, 0), + 'stroke-dashoffset': Math.max( + (2.0 - (col_ranges[1] - col_ranges[0])) * Math.PI * 50, + 0 + ), }} transform={`rotate(${180 + 180 * col_ranges[0]} 50 50)`} cx="50" @@ -70,9 +112,19 @@ export const RoundGauge = (props) => { ); })} - - - + + +
    diff --git a/tgui/packages/tgui/components/Section.tsx b/tgui/packages/tgui/components/Section.tsx index 82d5f95d67..27fa899887 100644 --- a/tgui/packages/tgui/components/Section.tsx +++ b/tgui/packages/tgui/components/Section.tsx @@ -16,41 +16,46 @@ interface SectionProps extends BoxProps { fill?: boolean; fitted?: boolean; scrollable?: boolean; + scrollableHorizontal?: boolean; flexGrow?: boolean; // VOREStation Addition noTopPadding?: boolean; // VOREStation Addition stretchContents?: boolean; // VOREStation Addition /** @deprecated This property no longer works, please remove it. */ - level?: boolean; + level?: never; /** @deprecated Please use `scrollable` property */ - overflowY?: any; + overflowY?: never; + /** @member Allows external control of scrolling. */ + scrollableRef?: RefObject; + /** @member Callback function for the `scroll` event */ + onScroll?: (this: GlobalEventHandlers, ev: Event) => any; } export class Section extends Component { scrollableRef: RefObject; scrollable: boolean; + onScroll?: (this: GlobalEventHandlers, ev: Event) => any; + scrollableHorizontal: boolean; constructor(props) { super(props); - this.scrollableRef = createRef(); + this.scrollableRef = props.scrollableRef || createRef(); this.scrollable = props.scrollable; + this.onScroll = props.onScroll; + this.scrollableHorizontal = props.scrollableHorizontal; } componentDidMount() { - if (this.scrollable) { - addScrollableNode(this.scrollableRef.current); - } - if (this.props.autoFocus) { - setTimeout(() => { - if (this.scrollableRef.current) { - return this.scrollableRef.current.focus(); - } - }, 1); + if (this.scrollable || this.scrollableHorizontal) { + addScrollableNode(this.scrollableRef.current as HTMLElement); + if (this.onScroll && this.scrollableRef.current) { + this.scrollableRef.current.onscroll = this.onScroll; + } } } componentWillUnmount() { - if (this.scrollable) { - removeScrollableNode(this.scrollableRef.current); + if (this.scrollable || this.scrollableHorizontal) { + removeScrollableNode(this.scrollableRef.current as HTMLElement); } } @@ -62,10 +67,12 @@ export class Section extends Component { fill, fitted, scrollable, + scrollableHorizontal, flexGrow, // VOREStation Addition noTopPadding, // VOREStation Addition stretchContents, // VOREStation Addition children, + onScroll, ...rest } = this.props; const hasTitle = canRender(title) || canRender(buttons); @@ -77,6 +84,7 @@ export class Section extends Component { fill && 'Section--fill', fitted && 'Section--fitted', scrollable && 'Section--scrollable', + scrollableHorizontal && 'Section--scrollableHorizontal', flexGrow && 'Section--flex', // VOREStation Addition className, computeBoxClassName(rest), diff --git a/tgui/packages/tgui/components/Slider.js b/tgui/packages/tgui/components/Slider.js index 31b47bb0f3..84ee8421a9 100644 --- a/tgui/packages/tgui/components/Slider.js +++ b/tgui/packages/tgui/components/Slider.js @@ -54,12 +54,26 @@ export const Slider = (props) => { value, }}> {(control) => { - const { dragging, editing, value, displayValue, displayElement, inputElement, handleDragStart } = control; + const { + dragging, + editing, + value, + displayValue, + displayElement, + inputElement, + handleDragStart, + } = control; const hasFillValue = fillValue !== undefined && fillValue !== null; const scaledValue = scale(value, minValue, maxValue); - const scaledFillValue = scale(fillValue ?? displayValue, minValue, maxValue); + const scaledFillValue = scale( + fillValue ?? displayValue, + minValue, + maxValue + ); const scaledDisplayValue = scale(displayValue, minValue, maxValue); - const effectiveColor = color || keyOfMatchingRange(fillValue ?? value, ranges) || 'default'; + // prettier-ignore + const effectiveColor = color + || keyOfMatchingRange(fillValue ?? value, ranges) || 'default'; return (
    { {...computeBoxProps(rest)} onMouseDown={handleDragStart}>
    {
    { }}>
    - {dragging &&
    {displayElement}
    } + {dragging && ( +
    {displayElement}
    + )} +
    +
    + {hasContent ? children : displayElement}
    -
    {hasContent ? children : displayElement}
    {inputElement}
    ); diff --git a/tgui/packages/tgui/components/Stack.tsx b/tgui/packages/tgui/components/Stack.tsx index f399e97a45..9abf13e651 100644 --- a/tgui/packages/tgui/components/Stack.tsx +++ b/tgui/packages/tgui/components/Stack.tsx @@ -6,25 +6,28 @@ import { classes } from 'common/react'; import { RefObject } from 'inferno'; -import { Flex, FlexItemProps, FlexProps } from './Flex'; +import { computeFlexClassName, computeFlexItemClassName, computeFlexItemProps, computeFlexProps, FlexItemProps, FlexProps } from './Flex'; -interface StackProps extends FlexProps { +type StackProps = FlexProps & { vertical?: boolean; fill?: boolean; -} +}; export const Stack = (props: StackProps) => { const { className, vertical, fill, ...rest } = props; return ( - ); }; @@ -35,21 +38,37 @@ type StackItemProps = FlexProps & { const StackItem = (props: StackItemProps) => { const { className, innerRef, ...rest } = props; - return ; + return ( +
    + ); }; Stack.Item = StackItem; -interface StackDividerProps extends FlexItemProps { +type StackDividerProps = FlexItemProps & { hidden?: boolean; -} +}; const StackDivider = (props: StackDividerProps) => { const { className, hidden, ...rest } = props; return ( -